Programación en Pareja (Pair Programming)
Muchas de mis conversaciones me han llevado a hablar sobre diversos axiomas o principios del Agile. Siempre intento seguir el DRY (Don't repeat yourself) y el YAGNI (You ain't gonna need it). Otro buen principio es el Pair Programming. En que consiste la programación en Pareja?, pues bien consiste en que 2 programadores combinas sus esfuerzos de desarrollo en un mismo sitio de trabajo. Por lo tanto, cada uno realiza una acción que otro no está haciendo: mientras uno codifica, el otro prueba unidades o piensa en ejemplos. La persona que pica el código es el "Driver" y el que revisa el código es el "Observer". Los 2 programadores deben intercambiar roles cada x tiempo. Diversos estudios demuestran que la programación en pareja es un 15% más lenta que la programación normal, pero que genera un 15% menos de errores.
Conseguir el éxito:
Extreme programming and Agile methods.
Favourite Jokes.
- Beneficios de la programación en pareja:
- Mejores Ideas - brainstorming continuo, conocimiento más amplio del problema y menos lagunas en la comprensión y mejores habilidades para resolver problemas de diseño.
- Mejor Calidad - menos errores, validación instantánea de ideas, enfoque coherente y una adhesión más estricta a las convenciones del equipo.
- Mejor Conocimiento - compartir experiencia y conocimiento, mayor entendimiento del porqué, cómo y que fue hecho.
- Incremento de la Productividad - mejor enfoque y mayor intensidad, impulsando y motivando a los demás para lograr mejores resultados y perder menos el tiempo.
- Mayor disfrute - a la mayoría de las personas les gusta trabajar en grupo y resolver conjuntamente problemas de interés..
- Cuándo se vuelve efectivo?
Conseguir el éxito:
- Modo Flujo - dos programadores trabajando en un difícil e interesante problema. Pueden tener diferentes habilidades y desafíos, pero ambos son capaces de encontrar una buena solución. Se puede obtener mediante el flujo de trabajo la resolución de una tarea compleja que combina su capital intelectual, conocimiento y experiencia para crear la mejor solución.
- Modo Coaching - Un programador experto con experiencia y conocimientos para resolver el problema los comparte con otros programadores que no puede resolver el problema por sí solo. Este programador junior tiene más fundamentos para entender la solución y aplicación. Se aprende y se crece para poder convertirse en un mejor programador.
- Desperdiciar el tiempo de los expertos - el problema es demasiado simple que hace que la participación de expertos sea ineficaz.
- Novato Abrumado - el problema es demasiado complejo o requiere de nuevos conocimientos que impiden que el programador aprenda algo útil.
- Referencias de interés:
Extreme programming and Agile methods.
Favourite Jokes.
:o)
ReplyDeleteSimple y concreto nos gustó