Mamma, fix my bug
Monday, February 4th, 2008L’utopia di un programmatore è quella di credere che un giorno riuscirà a scrivere codice perfetto, senza la presenza di un singolo bug. Ma questo non sarà mai possibile, almeno non su questo pianeta, e voi lo sapete bene. E sembra che non sia nemmeno una questione economica, altrimenti non mi spiego com’è possibile che Microsoft sia riuscita a partorire alcuni dei suoi prodotti (vedi Windows Vista).
Nonostante questa consapevolezza, ogni volta che viene trovato un mio bug su un software in produzione (o, come in questo caso, in beta) è come se il mio orgoglio venisse ferito. Ritengo di scrivere del buon codice, sono abbastanza metodico nei miei test, eppure c’è sempre un errore (più o meno banale) del quale non mi accorgo prima di rilasciare una versione.
Ma non ho scritto questo post per annoiarvi con i miei sensi di colpa, quindi veniamo al dunque!
Fix my bug

Sabato pomeriggio.
Sono lontano un’ora e mezza di auto da casa, non ho il portattile con me e ricevo una chiamata da Bask, il mio capo: “Ho installato youPeople al <locale> di <città>, ma non riesco ad inviare messaggi dal mio Sony Ericsson”.
Lasciamo da parte il mio sconforto. Ho un problema che devo risolvere, ma non ho il portattile e nemmeno tanta voglia di farmi 3 ore di auto per “passare” da casa a lavorarci. Ho bisogno di una soluzione.
Ho la possibilità di accedere ad Internet da dove mi trovo, ma non posso accedere al server in ufficio perchè (in realtà, non so bene perchè) chi ha configurato il firewall non ha lasciato l’accesso SSH dall’esterno. Fortunatamente ho l’accesso HTTPS a Trac, il software di gestione dei progetti che usiamo, il quale ha una vista (in lettura) sul repository subversion.
Dopo aver downlodato alcuni sorgenti e trovato il bug, resta il problema di come correggerlo. Avrei bisogno di collegarmi alla VPN aziendale, ma non ho le chiavi di accesso con me. Chiamo un collega, ma nemmeno lui ha il portattile al seguito, quindi rimane una sola soluzione: chiamare la mamma!
Avete capito bene. La brillante idea che ho avuto è stata quella di chiamare mia mamma a casa, farle accendere il mio computer, aprire l’IDE, correggere il bug (per fortuna, ha dovuto modificare una singola linea di codice) e committare nel repository.
Tempo impiegato: 40 minuti. Non male.
Fortunatamente, diversi mesi fa ho creato uno script cron che ad ogni ora crea una build del nostro progetto, a partire dal repository subversion. In questo modo, nel server di sviluppo (utilizzato anche per la beta) il progetto viene aggiornato ogni ora. Questo significa che è bastato committare la modifica ed attendere lo scoccare dell’ora successiva affinchè venisse aggiornato il nostro beta-server.
The end
P.S. Sono fiero del logo in stile “Pimp My Ride” che sono riuscito a creare in pochi minuti. Nonostante io non sia un grafico e non abbia nessuna intenzione di diventarlo.
