La Programación en parejas y las Revisiones de código son prácticas que aumentan la calidad del software, así como promover la difusión del conocimiento. Si bien los debates Ágil vs Lean, Scrum vs XP, vi vs Emacs andan a baja velocidad, los desarrolladores son conocidos por discutir los méritos de la programación en parejas versus las revisiones de código.
Theodore-Nguyen Cao describió las revisores de código como gallinas, y los programadores en parejas como cerdos.
La historia de la gallina y del cerdo es generalmente discutida en el círculo de la agilidad. Al hacer un desayuno con bacon y huevos, la gallina está involucrada pero el cerdo está comprometido.
Así pues, el término "cerdo" se ha utilizado para describir aquellos que están plenamente comprometidos con un determinado emprendimiento. El término "gallina" se utiliza para describir aquellos que están involucrados, pero cuya responsabilidad es menor.
En las revisiones de código, las personas se sientan a revisar el código de otra persona. Todo el mundo tiene una opinión, pero no todos trabajan con el código en diariamente. En algún punto, todos parecen estar implicados, pero no es un interés real. Sólo están buscando en un montón de código y preguntan "será que este código es bueno y correcto?" Es una visión muy pasiva. Además, los desarrolladores en parejas están completamente interesados (comprometidos?) En la tarea. Ellos simplemente están utilizando el código que están escribiendo juntos y comparten sus ideas sobre el diseño, layout de código, etc. Ambos desarrolladores están tomando un papel activo y están emocionalmente involucrados en la tarea del momento y están atacando el mismo problema juntos.
Theodore también tomó nota de que el ciclo de retroalimentación es mucho mejor durante la programación en parejas, mas que durante la revisión de código. Durante la programación en parejas, los desarrolladores escriben, inspeccionan y modifican continuamente el código. En una revisión de código, en cambio, implica inspeccionar el código posteriormente, generalmente cuando el autor piensa que está listo para su despliegue.
En general se acepta que el costo de un error de software suba drásticamente, tal vez exponencialmente, conforme el tiempo entre la introducción y el arreglo. Por este indicador, los errores capturados durante una sesión de programación en parejas cuestan mucho menos que los capturados durante una revisión de código. Es evidente que para cualquiera de los dos el costos es mucho menor permitiendo que el error se libere antes de que sea capturado. Quizás vale la pena hacer las dos cosas.
Que prefiere la programación en parejas, la revisión de código, ambos, o ninguno de los dos? Deje un comentario y comparta ideas.