Dos pares de ojos siempre son mejor que uno, o eso dice el refrán. Dicho esto, en este post hablaremos de la programación por parejas, que sigue siendo una práctica controvertida del desarrollo ágil de software. Su controversia radica en la premisa de que dos programadores trabajando en el mismo código, en el mismo ordenador, no pueden producir tanto código como los programadores trabajando individualmente.
Veamos cómo, en un entorno ágil, como se explica en nuestro Informe Experiencia Ágilpublicado en Sitio web de la Alianza Ágilprogramación en parejas puede ser bastante beneficioso.
Muchos piensan que si dos programadores están trabajando en el mismo código, en el mismo ordenador y con un solo teclado, uno debe estar trabajando y el otro perdiendo el tiempo. Al fin y al cabo, los dos no pueden escribir al mismo tiempo. Nada más erróneo. En primer lugar, escribir código no es cuestión de cantidad. Se trata de calidad. En segundo lugar, la cantidad de código que hay que escribir no es tanta como algunos esperan. Nadie puede codificar aplicaciones reales como hacen los hackers en las películas de éxito. El acto de escribir, de pulsar físicamente las teclas, es la parte más sencilla y menos exigente de la programación. Conociendo qué escribir es el secreto del éxito del diseño y la arquitectura. Y esto es difícil; muy difícil.
"Esta práctica ha sido nominada varias veces en las últimas décadas como una forma mejorada de desarrollar software".
- Alistair A.R. Cockburn - Informe técnico sobre seres humanos y tecnología - 2000
Por sí sola, la programación es una actividad muy propensa a errores. Esta es una de las razones por las que tenemos complejos marcos de pruebas automatizadas y grandes equipos de control de calidad. Después de que un programador solitario escriba el código él solo, hace falta un ejército de probadores para asegurarse de que el código funciona. Por supuesto, hay otras formas de mejorar la calidad del código. Formas como la revisión del código o la aplicación de normas restrictivas también funcionan. Pero ninguno de ellos implica que el esfuerzo de una segunda persona se dedique a producir el propio código. Todos los demás métodos implican una comprobación del código a posteriori.
Cuando el código lo escriben dos personas, ambas contribuyen a su elaboración. Combinan su esfuerzo mental colaborando, hablando, compartiendo ideas y, en ocasiones, peleándose para demostrar quién conoce una forma mejor de resolver el problema. Toda esta interacción es esencial para producir un código mejor, con menos errores. Nosotros, en Syneto practicamos la programación en parejas la mayor parte del tiempo. En algún momento incluso tuvimos la norma de que no se podía enviar código al sistema de control de versiones si no lo escribían dos personas. La programación en parejas es una de las muchas pequeñas cosas que llevaron a nuestro Un error al mes papel.