Armando Halbinger

Sunday, March 28, 2004

Pair Programming: Qué es, Lo bueno, Lo malo y Buenas Prácticas

¿Qúe es?
Pair Programming es una de las prácticas dentro de eXtreme Programming y consiste en que dos desarrolladores trabajen juntos para crear software. Puede ser aplicado a cualquier artefacto del proceso de desarrollo (casos de prueba, código, esquema de bd, etc) y el punto importante es que trabajen compartiendo recursos tanto físicos (hw, sw) como mentales.

Lo bueno
El uso de esta práctica incrementa la calidad del software y la productividad, pero además existen algunas ventajas adicionales que hay que mencionar:

Compartiendo Conocimiento.
Cada desarrollador comparte sus tips/trucos que aplica dentro de su ambiente de desarrollo (i.e. VS .NET) y la forma en que resuelve problemas (algoritmos, prácticas para estructurar código, abstracción para plantear problemas, etc). Por lo tanto, se puede dar un alto enriquecimiento de conocimiento aún en sesiones cortas de trabajo.

Solución de problemas de mayor Complejidad.
Debido a que dos mentes piensan más que una, el resultado es que el "Par" puede resolver problemas más complejos en un tiempo menor y de esta forma dar soluciones de negocio más interesantes para los clientes.

Lo malo
La implementación de esta práctica es complicada dentro de escenarios reales por diversas razones, entre las que se encuentran:
1. No siempre existen los recursos económicos para asignar dos personas a una misma tarea
2. Muchas de las tareas son simples y/o repetitivas
3. El supuesto teórico es que cada persona dentro del "Par" se considera que está involucrada al mismo nivel y tienen un conocimiento equivalente o existe un interés por nivelar el conocimiento de las dos partes
4. Las personalidades de los desarrolladores no se prestan para esta práctica
5. El ritmo del negocio no ayuda a que se dé esta práctica (i.e. en una relación Experto-Novato de Pair Programming el Experto disminuye su velocidad para que el Novato mejore su curva de aprendizaje, pero el proyecto tiene fechas apretadas, y la meta es que salga el proyecto, no que el Novato se vuelva experto)

Buenas Prácticas
Considerando Lo Bueno y Lo Malo, queda claro que esta técnica es una buena recomendación dentro de un proyecto de software, aunque si la queremos aplicar de forma "purista" seguramente no será posible, así que a continuación se presentan algunas consideraciones interesantes para implementar Pair Programming con éxito dentro de un proyecto. Si no se cumplen es probable que el resultado no sea tan tangible.
1. Considerar que Pair Programming no es "Todo o Nada", es decir, una buena implementación promedio consiste en usar Pair Programming en el 25% del tiempo de desarrollo (i.e. en situaciones críticas como diseño, arquitectura, problemas técnicos, etc).
2. Los desarrolladores deben querer trabajar en pares
3. No deben existir desarrolladores con gran ego sobre su trabajo
4. Cada desarrollador, sin importar su condición, debe tener el tacto para decir comentarios a su par de forma bien intencionada
5. Ningun desarrollador tiene la razón todo el tiempo
6. Debe existir Comunicación Efectiva
7. Deben saber Escuchar
8. Deben compartir el Compromiso y la Propiedad del artefacto en cuestión

NOTA: Este post es el resultado de lecturas, ideas y pruebas dentro de proyectos sobre el tema por lo que representa la opinión personal del autor sobre el mismo.

1 Comments:

  • gracias por contar tu opinión y tu experiencia. Me parece muy interesante y acertado lo que dices.

    Un saludo

    By Blogger davis, at May 29, 2008 at 6:38 AM  

Post a Comment

<< Home