numero 2 en mosaicoLa Programación en Pareja es una de las técnicas más importantes de XP, y hay varios enfoques sobre cómo hacer que funcione mejor para las personas.

Mark Needham, después de investigar y compartir opiniones con varios colegas, resume algunos de los puntos en donde más consenso parece haber.

Mantenelo productivo

Este es el punto sobre el que más se escribe, quizás porque sea el más visible para los demás.

Es importante conocer el IDE con el que se trabaja, sus atajos de teclado, ir avanzando de a muchos pequeños pasos, usar TDD, asegurarse que amabas personas pasen tiempo usando el teclado, mantener una lista de pequeñas tareas, y varios consejos más son útiles para trabajar de manera más efectiva con nuestra pareja.

Además, también es importante no gastar el tiempo discutiendo cuando tu pareja no hace exactamente lo que quisieras que haga. Dejá que tu pareja haga lo que quiera. La mayoría de los desarrolladores experimentados no obtienen siempre lo que quieran. Si vas a programar en pareja esperando esto, no vas a disfrutar la experiencia.

Este punto es válido incluso si es sobre algún tema que pensas que es realmente importante. Por ejemplo, si hacés tests pero tu pareja no quiere escribirlos. ¿Por qué no intentar no escribir los tests? Pronto van a querer empezar a escribir pruebas cuando todo empiece a romperse, y te van a respetar más por haber dejado que aprendan el error por su cuenta.

Por otro lado, cuando queremos que algo ocurra debemos esforzanos más nosotros mismos, y va a ocurrir naturalmente. Entonces, si sentimos que nuestra pareja no escucha nuestras ideas, debemos pasar más tiempo asegurándonos escuchar sus ideas primero - es dificil de seguir, pero suele funcionar.

También es muy util rotar las parejas con frecuencia, para asegurar que las parejas no se aburran y se quieran matar entre ellas! En general se deben rotar al menos cada un par de días, sino incluso con más frecuencia.

Hacelo divertido

Tómense pequeños momentos para divertirse aunque parezca que están impactando en su productividad. Trabajar en un ambiente relajado es importante para el éxito a largo plazo.

Disfruten el trabajo que hacen y tengan pasión, van a aprender mucho más y, por lo tanto, mejorar.

Por ejemplo, algunas formas de crear un ambiente divertido estando en pareja podría ser haciendo chistes sobre algún nombre estúpido de variable que se les pueda ocurrir, o tener una conversación de cualquier cosa mientras están esperando que ocurra algún evento - como ser, esperando a que corran las pruebas.

Algo que ayuda es tener un enfoque más relajado y no tomarse las cosas demasiado en serio. Es bueno poder reirse del código mal escrito y luego buscar formas de mejorarlo. Esto es una experiencia de aprendizaje divertida cuando lo hacen junto a una pareja en la cual confian.

Obviamente hay que buscar el balance ideal entre divertirse y poder avanzar con el trabajo, y este punto lo tiene que encontrar la misma pareja.

Seguí aprendiendo

Al trabajar en parejas se pasa mucho tiempo compartiendo conocimientos a través de todo el equipo, y siempre se tiene a dos ojos atendiendo los problemas, lo que resulta en que se logran soluciones de mejor calidad en menos tiempo. Pero también es importante la técnica de enseñarle a nuestra pareja.

Una buena forma de juzgar el éxito de un Lider de Proyecto es mirar a los miembros del equipo y comprobar si son mejores por haber trabajado en el proyecto que antes de hacerlo. Si lo son, entonces el Lider del Proyecto tuvo éxito desde el punto de vista de las personas.

Quizás podemos aplicar esta misma lógica cuando trabajamos en pareja - en cada sesión de programación por parejas siempre debemos intentar enseñarle a nuestra pareja algo que no conozca. Ni siquiera tiene que ser algo completamente relacionado con la historia en la que se está trabajando, aunque pueda ser más efectivo si así es.

Puede ser algo tan simple como señalar algunos libros o blogs que hayas leído recientemente que pueda interesarle a esta persona. También podemos compartir conocimientos generales del dominio que pueden no tener una aplicación inmediata.

Mejorá siempre

Estoy seguro que hay muchas más ventajas de trabajar en parejas, pero creo que lo más importante es buscar constantemente formas de mejorar el trabajo en parejas.

Por ejemplo, una idea podría ser de trabajar en parejas en máquinas opuestas compartiendo la pantalla. La idea de este enfoque es que ambas personas puedan ver más facilmente el lenguaje corporal de su par.

Resumen

Tengo un montón de cosas más que aprender de la programación de a pares, y estas fueron mis observaciones hasta el momento. Queremos intentar llegar a una etapa donde podamos demostrar que el trabajar en parejas otorga mucho más valor al negocio que si trabajáramos individualmente.

Y sólo podemos lograr esto si evaluamos contínuamente lo que hacemos, y buscamos formas de mejorarlo.

Basado en Pair programming: what works for me.

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw