O Babbà e a Pazienza
O Babbà e a Pazienza
Un racconto di Giovanni ‘O Cuoco
Napule è o babbà, dice la canzone. Napoli è il babbà.
E in effetti, se dovessi scegliere un dolce che rappresenta il carattere napoletano — quella miscela inconfondibile di morbidezza e intensità, di dolcezza apparente e struttura sottostante — sceglierei il babbà. Non la pastiera, troppo legata alla Pasqua. Non la sfogliatella, troppo legata alla colazione. Il babbà: quel cilindro dorato inzuppato di rum, morbido dentro e compatto fuori, presente in ogni pasticceria degna di questo nome dalle sette di mattina alle undici di sera.
Ma il babbà nasconde un segreto che non si vede nel prodotto finito. Un segreto che richiede tempo, disciplina, e quella qualità rara che i napoletani chiamano a pazienza — non la pazienza rassegnata di chi aspetta passivamente, ma la pazienza attiva di chi sa che il processo richiede tempo e lo rispetta.
La Prima Lievitazione: Scrivere i Test
Per fare un babbà, si comincia dall’impasto. Farina, uova, burro, lievito, un pizzico di zucchero. Si impasta a lungo — molto più a lungo di quanto sembri necessario — fino a quando la pasta non smette di essere appiccicosa e diventa seta. Liscia, elastica, brillante.
Poi si aspetta.
La prima lievitazione dura due ore, a temperatura ambiente.
L’impasto in questo momento è silenzioso. Non succede niente di visibile. Ma dentro — dentro è in fermento. I lieviti stanno lavorando, consumando gli zuccheri, producendo anidride carbonica che crea le piccole bolle che daranno al babbà la sua struttura alveolata, quella leggerezza che permette al rum di penetrare in ogni fibra senza che il dolce si sfaldi.
Questo è il momento in cui si scrivono i test.
Non ho sempre creduto nel Test-Driven Development. Da giovane sviluppatore, lo ammetto, saltavo i test. O li scrivevo dopo, come documentazione a posteriori di codice già scritto. Li consideravo burocrazia — tempo sottratto alla “vera” programmazione.
Ho sbagliato.
Scrivere i test prima dell’implementazione è come la prima lievitazione del babbà. Non si vede niente di concreto. L’impasto è ancora lì, apparentemente immobile. Ma si sta costruendo la struttura che permetterà a tutto il resto di funzionare. I test che falliscono — quei test rossi che sembrano un fallimento ma sono in realtà una specifica — sono le bolle di anidride carbonica che creeranno la trama interna del sistema.
“Perché mi fai aspettare? Sta lievitando, sto.”
— Mia nonna Rosa, risposta standard a ogni domanda sul perché non si potesse mangiare l’impasto subito.
La Seconda Lievitazione: Aspettare la CI
Dopo la prima lievitazione, il babbà entra negli stampi. Ogni stampo viene riempito per metà — perché il babbà crescerà ancora, e questa volta la crescita è drammatica e visibile.
La seconda lievitazione: l’impasto deve raggiungere il bordo degli stampi. Può richiedere da un’ora a tre, dipende dalla temperatura, dall’umidità, dalla vitalità del lievito.
Non si può affrettare. Non si può mettere in forno prima che l’impasto abbia raggiunto il bordo. Se lo fai, ottieni un babbà denso, compatto, gommoso — qualcosa che tecnicamente si chiama ancora babbà ma che ha perso la sua anima.
Questa è l’attesa della CI.
Avete mai avuto quella sensazione, quando premete il tasto di push e aspettate i risultati del continuous integration? Quella mezz’ora — a volte di più — in cui la pipeline esegue i test, controlla la coverage, verifica la formattazione, compila il codice? Quella mezz’ora in cui potreste fare altro, ma vi trovate a fissare il monitor aspettando il check verde?
Quella mezz’ora è necessaria. Non è tempo sprecato. È la seconda lievitazione.
La CI sta facendo qualcosa che non potete vedere direttamente: sta verificando che il codice funzioni in un ambiente pulito, senza le assunzioni locali del vostro laptop, senza le dipendenze globali che avete installato senza ricordarvi, senza i file di configurazione che date per scontati. La CI è un testimone imparziale. La CI non mente.
Aspettate la CI. Non saltate la seconda lievitazione.
La Terza Lievitazione: Aspettare il Consensus
Il babbà cotto deve raffreddarsi. Poi viene inzuppato nel rum — quello vero, profumato, generoso. E poi deve riposare ancora.
La terza attesa: ore in frigorifero, a volte tutta la notte.
Il rum deve penetrare uniformemente in tutto il babbà. Non solo in superficie — in profondità, fino al cuore. Questo richiede tempo, richiede che il babbà sia abbastanza freddo da assorbire il liquido senza sfaldarsi, richiede pazienza.
Se lo servite subito dopo l’inzuppo, la superficie è zuppa di rum e l’interno è asciutto. Il babbà è impresentabile. Non è ancora babbà.
Questa è l’attesa del consensus.
Nei team distribuiti — quelli dove le decisioni architetturali vengono prese collettivamente, dove le proposte passano per una fase di review e discussione prima di diventare standard — c’è una terza attesa. Non la prima lievitazione dei test, non la seconda lievitazione della CI. C’è il momento in cui avete proposto una soluzione, la avete presentata, avete risposto alle domande, e adesso aspettate.
Aspettate che il rum penetri fino al cuore.
Aspettate che i colleghi abbiano il tempo di digerire la proposta, di dormirci sopra, di tornare con i dubbi che non avevano subito. Aspettate che il senior engineer che era in ferie torni e dia il suo parere. Aspettate che chi aveva riserve le articoli in modo costruttivo.
Questa attesa è la più difficile. Perché siete convinti della vostra soluzione. Perché vorreste andare avanti. Perché la finestra di lancio si avvicina e il tempo stringe.
Ma i sistemi costruiti senza consensus si sfalda come il babbà servito subito — bagnati in superficie e aridi all’interno. Sembrano funzionare. Ma non hanno assorbito uniformemente la saggezza del team. E prima o poi, quella disomogeneità si manifesta.
L’Amore per l’Attesa
La pazienza non è debolezza.
È la forma più alta di fiducia nel processo.
Fidarsi della lievitazione. Fidarsi della CI. Fidarsi del processo di consensus. Sono atti di fede — non fede cieca, ma fede informata, fede costruita sull’esperienza di aver visto il processo funzionare abbastanza volte da capire perché esiste.
Il babbà che ho mangiato ieri sera era perfetto. Lo so perché aveva quella consistenza — morbidissima ma non sfatta, inzuppata di rum ma non molliccia — che si ottiene solo rispettando tutte e tre le lievitazioni. Lo so perché il pasticciere che lo ha fatto probabilmente si alza alle tre di notte, impasta alle quattro, aspetta, aspetta ancora, aspetta di nuovo.
E quando porta il vassoio sul bancone alle sette del mattino, è già stanco. Ma il babbà è perfetto.
Questo è il mestiere. Questo è il codice ben fatto. Questo è ciò che vuol dire essere artigiani.
“O babbà nun s’affannà. Vene quanno è pronto.”
— Il babbà non si agita. Viene quando è pronto.
Mio nonno Carmine, che lo diceva del babbà ma lo intendeva di tutto.
Postscriptum: Le Tre Virtù
Tre lievitazioni. Tre virtù.
La prima — la pazienza di scrivere i test prima — è la virtù dell’umiltà. Riconoscere che il codice che scrivi potrebbe sbagliare, e costruire il sistema per accorgersene prima che faccia danno.
La seconda — la pazienza di aspettare la CI — è la virtù della fiducia. Fidarsi del processo automatizzato, non pensare che “questa volta va bene anche senza”.
La terza — la pazienza di aspettare il consensus — è la virtù del rispetto. Rispettare le persone con cui lavori abbastanza da volere che siano veramente con te, non solo formalmente d’accordo.
Umiltà, fiducia, rispetto.
Tre ingredienti per un babbà perfetto. Tre ingredienti per un team che funziona.
— Giovanni, con amore e con rum