Mi ha appassionato il capitolo di Code Complete 2 sulle technical review, sul code reading ed affini. In breve, tutte pratiche che consentono ad una o più persone (reviewer) di leggere il codice altrui, di discutere assieme all'autore perchè è stato scritto in un modo o nell'altro, di migliorarlo alla caccia di bug o possibili bug, di avere un'idea degli errori più comuni che vengono commessi all'interno del team, etc. etc. il code reading in particolare è quello che mi ha interessato di più, perchè io in qualche modo l'ho subìto - e non sono stato il solo. Vi voglio raccontare questa mia esperienza.
Nel periodo 2003-2004 ho lavorato presso una software-house di Milano che creava software per gli enti pubblici (ASL, comuni, asili, società di trasporti comunali). Aveva clienti in tutta Italia, e capitava a volte che mi spedissero a Parma o a Perugia, per esempio. Ciò nonostante, passavo gran parte del tempo in sede, a sviluppare codice con Visual Basic 6. In questa azienda - quasi a conduzione familiare - eravamo in 4 developer, più un solo capo progetto che ci coordinava, con cui facevamo analisi, che seguiva insomma l'andamento del team e dei vari progetti. Poi c'era il capo vero (quello che pagava!), la segretaria ed un paio di commerciali.
Quasi ogni giorno questo capo progetto lanciava l'IDE di Visual Basic 6, apriva i progetti, leggeva le righe di codice committate durante la giornata, simulava l'esecuzione del programma nella sua testa, cercava bug, si chiedeva come mai avessimo scritto quel codice. All'epoca non sapevo dare un nome a questa pratica, oggi sì: semplicemente code reading. Nel mio caso il risultato è sempre stato devastante: appena arrivavo al lavoro - intorno alle 8:30 - mi trovavo la casella di posta interna intasata di e-mail di contestazione da questo capo progetto, mettendo costantemente in dubbio la qualità del codice. Questo si traduceva un giorno sì ed un giorno no in discussioni, litigate, in detrazioni economiche nella mia fattura! Non me ne vergogno a dirlo. Non mi vergogno nemmeno a dire però che ho sempre contestato a mia volta le sue conoscenze tecniche!
E' giusto praticare il code reading per scovare errori e per segnalarli all'autore, ma è anche giusto secondo me essere costruttivi e propositivi. Se avessi fatto lo stesso errore 10 volte, caro capo progetto, potrei essere d'accordo con te. Ma la cosa strana è che a lungo andare avevo raggiunto uno strano stato d'animo: avevo paura di scrivere codice, avevo davvero perso fiducia nelle mie capacità. Non sto sparando cazzxxx, ve lo assicuro. Dopo aver passato anni ed anni a programmare, ho cominciato a pensare di aver raggiunto il punto di fusione, tant'è che feci domanda al comune di Lodi per andare a fare il tassista, dato che mi piace guidare! Chiedetelo un po' alla mia amica Francy - che all'epoca lavorava come receptionist al "Luna Hotel" di Lodi, un hotel piuttosto grosso dove fanno congressi e simili. Se i taxi a Lodi non fossero stati in sovrannumero, probabilmente oggi non sarei qui, e magari UnAmico sarebbero più contento! ;-)
Non ho mai capito perchè quel capo progetto facesse così solo sul mio codice, quasi una persecuzione personale, perchè si ponesse certe domande che sembravano più sexhx mentali, perchè in VB6 mi imponesse di scrivere il nome della form invece della keyword Me, ad esempio, sull'evento Form_Load, perchè non esaminasse anche il codice dei miei colleghi. Ma, più in generale, non ho mai capito perchè fosse così eccessivamente rigoroso al di là di ogni limite.