Programación en pareja: ¿Cómo sacarle el máximo partido?
Artículo de Iván Fernández
Hace años, en Redsauce, una empresa de desarrollo de software, nos aventuramos en algunos proyectos que podríamos calificar como "locuras ingeniosas". Cometimos muchísimos fallos, pero también muchos aciertos. Es curioso cómo funciona la nostalgia: las vehementes discusiones telefónicas sobre la implementación de problemas que nos consumían se convierten en legendarias experiencias de análisis siempre que la solución obtenida supere la prueba del éxito a lo largo del paso del tiempo.
Y siempre, alrededor de este éxito, rondaba algo común, otrora inexplicable, a lo que eventualmente una búsqueda por internet puso nombre: pair programming.
El concepto de pair programming es muy simple: dos mentes, un solo programa. Uno controla el ratón y el teclado, la otra persona observa, pregunta y ofrece soluciones, cambiando roles cada 20 minutos.
Aquella búsqueda por internet terminó por afianzar lo que la experiencia ya adelantaba: ni con uno ni con tres funciona. Han de ser dos, y hay que seguir las reglas del pair programming.
Las reglas del pair programming
Como en una pareja o una relación, las reglas son:
Dedicar el tiempo correcto
Limita a 1-2 horas diarias con descansos, evitando agotar tu mente y la de tu pareja. A partir de 25 minutos, la atención cae drásticamente, por lo que recomiendo no hacer más de 30 minutos seguidos en una sesión de pair programming. Esta práctica es especialmente relevante en proyectos que involucran qa testing, pruebas de rendimiento o automatización web.
Elección de tu pareja
Escoger la pareja adecuada para pair programming es una de las cosas más complejas que hay en la vida. En empresas pequeñas es difícil, porque no hay mucho personal disponible, pero si tienes la suerte de poder elegir, busca niveles de experiencia similares para evitar desequilibrios y fomentar el aprendizaje mutuo, especialmente en áreas como javascript asíncrono o bdd (Behavior Driven Development) utilizando herramientas como gherkin cucumber.
Puntualidad
Sé puntual con tu pareja. A todos nos ha pasado que nos hemos preocupado por tener una cita y que nuestra pareja no llegue a tiempo o no avise. Sobre todo, evita escribir código sin la presencia de tu pareja, ya que esto puede romper la dinámica del pair programming.
Código existente
Si tu pareja ya ha escrito código, mejor atacar áreas nuevas o descartar ese código empezando de nuevo. Se trata de que el código tenga en cuenta las ideas de ambas personas en el pair programming, no de que una escriba el código y la otra reciba una explicación para entenderlo. Esto es esencial en la integración de API mediante un enfoque API first o en el uso de herramientas como postman para realizar pruebas de API.
Participación activa
Ambos debéis contribuir al código por igual en el pair programming. Si no es así, la pareja no funcionará.
Juntos hasta el final
De una u otra forma, el tiempo pone fin a todas las parejas. Pero mientras dure, nunca separéis el trabajo de pair programming. Tratad a vuestros algoritmos como a vuestro propio hijo/a. Limad sus aristas. Enorgulleceos cuando todo vaya bien. Ambos debéis participar en su desarrollo por igual.
El fruto prometido del pair programming
Es muy importante comprobar el resultado del pair programming en comparación con la programación en solitario. Puede hacerse, por ejemplo, contando los defectos encontrados en el código que ha sido escrito de cada manera, en las veces que una revisión de código pide cambios, o con la velocidad de implementación. En nuestro caso, el código que obteníamos era de mucha mayor calidad, estaba bien documentado, funcionaba bien en casos extremos, la experiencia de ambas personas aumentaba al aprender uno las técnicas del otro, y sobre todo lo anterior una reducción palpable de la tristeza inherente a la programación en solitario.
Con estas prácticas de pair programming, descubrimos que las soluciones a un problema son tan diversas como las personas que las implementan. Ninguna solución es perfecta por sí sola, pero al sumar todas, la incertidumbre se transformó en diversión, el aburrimiento en ingenio, y el resultado final solía ser espectacularmente bueno.
No todo es magia en el pair programming
No obstante, cuando una pareja de pair programming no funciona, el resultado es pésimo. Hay engaños, cada uno opera por su lado, nadie entiende nada, y el código quita las ganas de vivir sólo con leerlo. Es tan importante seguir las reglas del pair programming como detectar que la pareja no funciona y, en ese caso, lo mejor es probar con otra pareja. Desafortunadamente, sólo la experiencia nos va a permitir detectar esto rápidamente. De lo contrario, se formará una relación tóxica que no terminará bien. Pero eso no debe quitarnos las ganas de intentarlo una y otra vez, hasta que la jubilación, el finiquito o la parca nos encuentre.