¿Quién debería ser evaluado?
Todos los que envían código a un repositorio compartido.
¿Quién debería hacer la revisión?
Un mentor o ingeniero superior que mirar hacia fuera para los malos olores y los errores en la corrección de arquitectura del código.
Peers en el equipo o pod que trabajan en la misma área de código, es decir, si está trabajando en representación 3D en un juego de computadora, todos los demás programadores de gráficos deberían revisar el código.
Cualquier otra persona cuyos módulos se interconectan o dependen del código que se envía.
¿Qué código debe revisarse? (todo el código? ¿Grandes cambios? Etc)
Según mi experiencia, todo el código va a ser trabajado por más de una persona (y eso es casi todo el código).
¿Dónde debe realizarse la revisión? (¿Tiene que realizarse en persona?)
Las revisiones son más beneficiosas cuando son interactivas y en tiempo real. Habiendo dicho eso, creo que es importante tener un sistema como CodeReviewer para permitir una distribución sencilla de los diffs, de modo que los revisores puedan estudiar los cambios de manera más eficiente y más cómoda dentro de su propio entorno de desarrollo, antes de realizar la revisión cara a cara.
No estoy de ninguna manera asociado con CodeBear, pero siempre he encontrado que mis revisiones de código son más efectivas cuando he podido ver los cambios en mi propia máquina ya que tengo el IDE y las herramientas y todo lo demás configurado de la manera que necesito para deletrear efectivamente el código para ver qué impacto tendrán los cambios de código y eso es algo que no puedo hacer si mi revisión es de 15 minutos en la PC de otra persona mirándolos desplazarse sus cambios
¿Cuándo deben realizarse las revisiones? (¿Incrementalmente? ¿Antes del check-in?)
Antes de realizar el check in. He estado en situaciones en las que la revisión de código incremental me ha costado escribir el código de la persona "incrementalmente" durante cada revisión. :(
¿Por qué debería ser revisado Código?
Dos razones principales vienen a la mente.
El primero de ellos es el de preservar la calidad y la consistencia de la base de código. Para cualquier base de código del mundo real lo más probable es que tengan programadores de diferentes niveles y se unan al equipo que es responsable de mantener esa base de código y las revisiones intentan minimizar la base de códigos convirtiéndose en un reflejo de la dinámica de los equipos. Por ejemplo, 2 programadores deshonestos se unieron al equipo la semana pasada y ahora 20 archivos fuente tener basura en ellos.
La segunda razón es eliminar las suposiciones de visión de túnel en el código. En algún punto, una base de código se volverá demasiado grande para que un programador lo entienda todo. Y a partir de ese momento, todos los que trabajen en el código tendrán su propia "parte de la realidad" sobre lo que hace el código y cómo funciona el sistema, lo que a menudo llevará a la creación de un código basado en suposiciones ingenuas o incorrectas. Por lo tanto, hacer que otras personas traigan su visión de la realidad a su código durante la revisión ayuda a reducir este problema de miopía basada en códigos.