Nel mio lavoro abbiamo una regola molto semplice: le modifiche devono essere riviste da almeno un altro sviluppatore prima di unire o eseguire il commit nel trunk . Nel nostro caso ciò significa che l'altra persona si siede fisicamente con te sul tuo computer e passa attraverso l'elenco delle modifiche. Questo non è un sistema perfetto, ma ha notevolmente migliorato la qualità del codice.
Se sai che il tuo codice verrà rivisto, ti costringerà a esaminarlo prima. Molti problemi diventano evidenti allora. Sotto il nostro sistema, devi spiegare cosa hai fatto al revisore, il che ti fa notare nuovamente problemi che potresti aver perso prima. Inoltre, se qualcosa nel tuo codice non è immediatamente chiaro al revisore, questa è una buona indicazione della necessità di un nome migliore, un commento o un refactoring. E, naturalmente, anche il recensore potrebbe riscontrare problemi. Inoltre, oltre a esaminare la modifica, il revisore può anche notare problemi nel codice vicino.
Ci sono due principali svantaggi di questo sistema. Quando il cambiamento è banale, ha poco senso rivederlo. Tuttavia, dobbiamo assolutamente attenerci alle regole, per evitare la pendenza scivolosa di dichiarare le modifiche "banali" quando non lo sono. D'altra parte, questo non è un ottimo modo per rivedere modifiche significative al sistema o l'aggiunta di nuovi grandi componenti.
In precedenza abbiamo provato revisioni più formali, quando uno sviluppatore inviava il codice e-mail per essere esaminato dal resto del team, quindi l'intero team si riuniva e ne discuteva. Ciò ha richiesto molto tempo a tutti, e di conseguenza queste recensioni erano poche e lontane tra loro, e solo una piccola percentuale della base di codice è stata rivista. "Un'altra persona che esamina le modifiche prima del commit" ha funzionato molto meglio per noi.