Al mio lavoro abbiamo una regola molto semplice: le modifiche devono essere esaminate da almeno un altro sviluppatore prima di un'unione o un commit al trunk . Nel nostro caso ciò significa che l'altra persona si trova fisicamente con te al computer e passa attraverso la lista delle modifiche. Questo non è un sistema perfetto, ma ha nondimeno migliorato la qualità del codice.
Se sai che il tuo codice verrà sottoposto a una revisione che ti costringe a cercarlo prima. Molti problemi diventano evidenti allora. Sotto il nostro sistema, devi spiegare cosa hai fatto al revisore, il che ti fa ancora notare problemi che potresti aver perso prima. Inoltre, se qualcosa nel codice non è immediatamente chiaro al revisore, è una buona indicazione che è richiesto un nome migliore, un commento o un refactoring. E, naturalmente, anche il revisore potrebbe trovare dei problemi. Inoltre, oltre a esaminare la modifica, il revisore potrebbe notare problemi nel codice nelle vicinanze.
Ci sono due principali svantaggi per questo sistema. Quando il cambiamento è banale, non ha molto senso farlo rivedere. Tuttavia, dobbiamo assolutamente attenerci alle regole, per evitare la scivolosa inclinazione di dichiarare le modifiche "banali" quando non lo sono. D'altra parte, questo non è un ottimo modo per rivedere le modifiche significative al sistema o l'aggiunta di nuovi componenti di grandi dimensioni.
Abbiamo provato recensioni più formali prima, quando uno sviluppatore avrebbe inviato il codice email per essere esaminato al resto del team, quindi l'intero team si riunirebbe e discuterà. Questo 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. L '"altra persona esamina le modifiche prima del commit" ha funzionato molto meglio per noi.