¿Qué es el pair programming?

El pair programming es la práctica de programación por la cual dos desarrolladores escriben código conjuntamente, usando un solo teclado y ratón. Se habla de mob programming cuando más de dos programadores hacen pairing.

En cada pair o pareja, existen dos roles. El compañero que escribe código piensa en su mejor implementación en ese instante. El otro compañero ha de pensar de una forma más estratégica: ¿Estamos omitiendo ciertos casos de uso? ¿Funcionará el enfoque adoptado? ¿Hay alguna forma de simplificar el diseño?

En cambio, no hay pair progamming cuando uno de los desarrolladores programa mientras que el otro simplemente mira. Pair programming es una conversación entre dos desarrolladores que intentan programar simultáneamente, abordando decisiones de diseño y testeo.

Algunos autores como Mike Cohn* recomiendan hacer pair programming no siempre, pero a tiempo parcial, en especial para desarrollar las partes de la aplicación que tengan más riesgo. Que todo el código que va a producción haya sido escrito mediante pair programming no es demasiado realista.

 

Beneficios del pair programming

Algunas de las principales ventajas asociadas al pair programming son las siguientes:

  • Reduce la tasa de errores y las malas decisiones de diseño, y aumenta la calidad del código. Es decir, la necesidad de mantenimiento futuro del código así programado será menor.
  • Apoya el seguimiento de otras buenas prácticas de programación.
  • Facilita la transmisión de conocimiento entre desarrolladores; por ejemplo, cuando unos conocen la aplicación en cuestión y otros no.
  • Puede que el pair programming implique un aumento de las horas invertidas en un proyecto, pero acorta el time to market, más relevante que la cantidad de horas en sí cuando hay fechas de lanzamiento que cumplir.

 

Objeciones habituales al pair programming y cómo combatirlas

Puede que haya distintas voces que cuestionen el uso del pair programming. A veces, los mismos programadores serán reticentes al cambio. A continuación, mencionamos algunas de las objeciones más comunes.

  • “Pagar a dos programadores para que hagan el trabajo de uno es mucho más caro”. A corto plazo, efectivamente, el pair programming será más costoso. Sin embargo, nos permitirá entregar antes y reducir el coste de mantenimiento futuro.
  • “Tenemos mucha prisa, no podemos tener a dos developers trabajando en la misma tarea”. Este tipo de situaciones de presión nos dan una gran oportunidad para hacer pairing, puesto que el pair programming posibilita recortar los plazos de entrega.
  • “Estoy trabajando en un problema complejo y necesito más tiempo de concentración individual”. No hay problema en hacer pausas durante las sesiones de pairing. En todo caso, el intercambio de ideas respecto a problemas complejos es otro de sus beneficios.

 

Pair programming y Agile

Pair programming es una de las prácticas de programación que propone Extreme programming. Scrum nada prescribe sobre su uso, aunque su aplicación cabe perfectamente. De hecho, debe ser una técnica conocida por el Scrum Master y cuya utilización podría sugerir al Equipo Scrum.

 

*Mike Cohn (2009). Succeeding with Agile: Software Development using Scrum.

Foto principal: Vector de Tecnología creado por stories – www.freepik.es

Cuando estés listo, podemos ayudarte de 3 formas:

  1. 1. Únete a nuestra Newsletter, Líderes de Producto: recibe contenidos exclusivos sobre Agile y Product Management.
  2. 2. Apúntate a una de nuestras formaciones: cursos intensivos para Product Owners/Managers y Scrum Master/Agile Coaches, en directo e impartidos por nuestros especialistas.
  3. 3. ¿Quieres formar a tu equipo? Hacemos formaciones “privadas” para empresas, con las que transformar vuestra forma de trabajar. Somos especialistas en Scrum y Product Management.
Comparte este post

Publicado por Sergio Rodríguez

Especialista en producto y Professional Scrum Trainer acreditado por Scrum.org. He sido Product Manager, Head of Product y consultor de producto en empresas como Liftshare, Cardmarket o Wave.

Subscríbete a nuestro Newsletter

Únete a cientos de lectores de Líderes de Producto para recibir historias, consejos y recursos sobre Product Management y Scrum.