Dan.
Tutti i post

Debugging alle 3 di notte

C'è una particolare forma di follia che si insinua dopo la mezzanotte. Il tuo bug tracker ha tre schede aperte, il caffè è freddo, e in qualche modo — in qualche modo — sei ancora convinto di essere sul punto di risolverlo.

Tutto inizia in modo innocente. Avresti dovuto smettere alle 22. Te lo eri promesso. Lo avevi persino detto ad alta voce: "Sistema solo questa cosa." Famose ultime parole. Quella cosa ne ha generate altre due, e ora sono le 3 di notte e stai leggendo un thread di Stack Overflow di sei anni fa scritto da qualcuno che nel frattempo ha lasciato il settore.

Il Cervello delle 3 di Notte È un'Altra Bestia

Ecco la cosa che nessuno ti dice: il tuo cervello alle 3 di notte è strano. È abbastanza stanco da smettere di dubitare di sé stesso, il che significa che inizi a provare idee che a mezzogiorno avresti scartato come stupide. E a volte — esasperante — funzionano.

Una volta ho passato quattro ore a fare il debug di una race condition, ho provato tutto il ragionevole, ho rinunciato, ho fissato il soffitto, e poi ho digitato una correzione talmente maledetta da ridere a voce alta nel mio appartamento vuoto. Ha funzionato perfettamente. L'ho committata con il messaggio please don't ask e sono andato a letto.

"Le migliori sessioni di debug avvengono quando sei troppo stanco per aver paura di sembrare stupido."

I Rituali

Ogni programmatore notturno ha i suoi rituali. I miei sono più o meno questi:

Il console.log("WHY") è portante. Non saltarlo.

Il Momento

E poi accade. Il momento. Lo vedi — un punto e virgola mancante, un errore di uno, una variabile chiamata data che oscura un'altra variabile anch'essa chiamata data — e tutto crolla in un'imbarazzante semplicità. Il bug che ti ha divorato la serata era lungo tre caratteri.

Lo correggi. Esegui i test. Verde. Tutto verde. Esulti nel buio come se avessi appena segnato il gol della vittoria in uno stadio pieno di nessuno.

Il messaggio del commit è poetico alle 3 di notte. "fix: risolve la cosa". Il te del futuro avrà delle domande.

Perché Lo Facciamo

Ci ho pensato molto. Perché restiamo svegli? La scadenza non è sempre reale. Il bug ci sarà ancora al mattino, probabilmente più ovvio dopo aver dormito.

Penso sia per il silenzio. Il mondo fuori si è addormentato e ci sei solo tu e la macchina, a trattare. Nessun ping su Slack, nessuna riunione, nessun cambio di contesto. Solo un flusso puro, strano e concentrato — anche se quel flusso è per lo più disperazione.

C'è anche qualcosa di profondamente personale nel codice che scrivi alle 3 di notte. È più grezzo e più onesto di qualsiasi cosa spediresti alla luce del giorno. Ha le tue impronte digitali.

Quindi un brindisi alle notti tarde, al caffè freddo, alle correzioni maledette e ai commit che nessuno metterà mai in discussione. Che i tuoi bug siano superficiali e il tuo sonno, alla fine, profondo.