Google ha le migliori pratiche di revisione del codice di qualsiasi luogo che abbia mai visto. Tutti quelli che ho incontrato sono in completo accordo su come fare le revisioni del codice. Il mantra è "rivedere presto e spesso".
Supponiamo che tu usi un processo che assomigli a quello suggerito da Graham Lee. (Il che è un processo che in precedenza avevo usato io stesso.) Il problema è che ai revisori viene chiesto di guardare grossi pezzi di codice. Questo è uno sforzo molto più grande ed è più difficile convincere i revisori a farlo. E quando lo fanno, è più difficile convincerli a fare un lavoro approfondito. Inoltre, quando notano problemi di progettazione, è più difficile convincere gli sviluppatori a tornare indietro e ripetere tutto il loro codice di lavoro per migliorarlo. Stai ancora catturando cose, ed è ancora prezioso, ma non ti accorgi che ti manca più del 90% del vantaggio.
Al contrario, Google ha la revisione del codice su ogni singolo commit prima che possa entrare nel controllo del codice sorgente. Ingenuamente molte persone pensano che questo sarebbe un processo pesante. Ma in pratica non funziona così. Risulta molto più semplice rivedere piccoli pezzi di codice in isolamento. Quando vengono trovati dei problemi, è molto meno lavoro cambiare il progetto perché non hai ancora scritto un mucchio di codice attorno a quel progetto. Il risultato è che è molto più semplice eseguire un'accurata revisione del codice e molto più facile da correggere i problemi.
Se desideri fare una revisione del codice come fa Google (che consiglio davvero, davvero), c'è un software che ti aiuta a farlo. Google ha rilasciato il suo strumento integrato con Subversion come Rietveld . Go (il linguaggio) è sviluppato con una versione di Rietveld che è stata modificata per essere utilizzata con Mercurial. C'è una riscrittura per le persone che usano git con il nome Gerrit . Ho anche visto due strumenti commerciali consigliati per questo, Crucible e Review Board .
L'unico che ho usato è la versione interna di Rietveld di Google, e ne sono rimasto molto soddisfatto.