Las metodologías ágiles hacen más rápido el proceso de desarrollo de software y permiten obtener resultados adecuados a entornos en cambio permanente. Una de sus técnicas es pair programming, en la cual dos programadores trabajan simultáneamente en el mismo código. Uno de ellos es el driver, que codifica, mientras que el otro es el observer, que se encarga de revisar cada línea que el otro escribe.
Es ideal aplicar pair programming en tareas pequeñas, que puedan completarse en menos de una hora. El driver debe programar con cierta velocidad, mientras que el observer debe limitarse a realizar sugerencias cuando nota algún defecto, pero sin «dictar» código. Cada períodos cortos puede ser necesario que el driver le informe al observer lo que está haciendo, para que no se pierda la sincronización entre los dos. Es ideal intercambiar roles cada media hora.
¿Cuáles son los beneficios de este enfoque?
- Mayor disciplina. La presencia del observer impide que el driver se distraiga de sus tareas y lo obliga a hacer las cosas bien.
- Mayor motivación. La programación en pares es más disfrutable que la programación en solitario, siendo una importante motivación para el equipo de trabajo.
- Mayor productividad a largo plazo. De acuerdo con un estudio, pair programming aumenta en un 15% el tiempo de desarrollo, pero a cambio brinda más calidad en el diseño, reduce los defectos y mejora la comunicación entre los miembros del equipo.
- Mejor aprendizaje. El driver puede ser acompañado por un observer más experimentado que él, o viceversa. Incluso es probable que tengan un nivel de habilidad similar en distintos campos. Como resultado, al menos uno de los dos aprenderá de la mejor manera: viendo a un experto trabajar.
- Reducción de riesgos. Como el código estará sometido a una revisión constante, se reducirá el riesgo de cometer errores que nos alejen de la solución deseada.
A pesar de sus beneficios, hay quienes piensan que el pair programming no puede ser aplicado a lo largo de toda la jornada: el programador puede necesitar tiempo para pensar a solas. Por eso, es conveniente alternar pair programming con enfoques en solitario.