Google tiene las mejores prácticas de revisión de código de cualquier lugar que haya visto. Todos los que conocí allí están totalmente de acuerdo sobre cómo hacer revisiones de código. El mantra es "revisar temprano y con frecuencia".
Suponga que usa un proceso que se parece a lo que sugirió Graham Lee. (Que es un proceso que yo mismo había utilizado anteriormente). El problema es que se les pide a los revisores que observen grandes fragmentos de código. Eso es mucho más esfuerzo y es más difícil lograr que los revisores lo hagan. Y cuando lo hacen, es más difícil lograr que hagan un trabajo completo. Además, cuando notan problemas de diseño, es más difícil lograr que los desarrolladores retrocedan y rehagan todo su código de trabajo para mejorarlo. Todavía atrapa cosas, y todavía es valioso, pero no notará que le falta más del 90% del beneficio.
Por el contrario, Google tiene una revisión de código en cada confirmación antes de que pueda pasar al control de fuente. Ingenuamente, muchas personas piensan que este sería un proceso pesado. Pero no funciona así en la práctica. Resulta enormemente más fácil revisar pequeños fragmentos de código de forma aislada. Cuando se encuentran problemas, es mucho menos trabajo cambiar el diseño porque todavía no ha escrito un montón de código en torno a ese diseño. El resultado es que es mucho más fácil hacer una revisión exhaustiva del código, y mucho más fácil solucionar los problemas modificados.
Si desea hacer una revisión de código como lo hace Google (lo cual realmente, realmente recomiendo), hay un software para ayudarlo a hacerlo. Google ha lanzado su herramienta integrada con Subversion como Rietveld . Go (el lenguaje) está desarrollado con una versión de Rietveld que se modifica para usar con Mercurial. Hay una reescritura para las personas que usan git llamado Gerrit . También he visto dos herramientas comerciales recomendadas para esto, Crucible y Review Board .
El único que he usado es la versión interna de Google de Rietveld, y quedé muy satisfecho.