[[Nombre de la institución]] Guía respecto a la Programación por Pares [[fecha]] Versión 1.0 [[Nombre del proyecto]] 1 1.1 Introducción Propósito del documento <Insertar los propósitos particulares del documento para la institución> Todo el código que formará parte del plan, debe ser desarrollado por dos personas que trabajarán en forma conjunta en un computador. ¿Cómo realizamos lo anterior? ¿Aumentará la calidad del software esta manera de trabajar?, esta herramienta responde estas preguntas y presenta, además, las actividades que deben ser llevadas a cabo para la correcta implantación de la práctica. Si desea profundizar en el tema se sugiere leer el documento completo disponible en: Guía_Programacion_Pares.doc 2 Programación por pares En programación extrema todo el código fuente que vaya a ser puesto en producción debe ser codificado por dos personas pertenecientes a [[institución]], trabajando juntas en un solo computador, esto no significa que un miembro del equipo desarrollador programe mientras el otro observa. La programación en parejas es un diálogo entre dos personas que intentan simultáneamente programar, además de analizar, diseñar, probar y comprender juntos como programar mejor. Lo anterior es una conversación a muchos niveles, ayudados y concentrados sobre un computador. La metodología permite que todos los miembros del equipo tengan el mismo conocimiento sobre el sistema sin pérdida de productividad o continuidad. Para potenciar este conocimiento colectivo es preciso que las parejas de desarrolladores se intercambien con cierta frecuencia. El mejor modo para programar en pareja es que ambas personas se sienten una al lado de la otra enfrente al monitor de una estación de trabajo. La persona que está manejando el teclado piensa de un modo táctico en la tarea que realiza, mientras que el acompañante lo hace de un modo estratégico y global. Cada cierto tiempo la pareja de desarrolladores debe intercambiar sus papeles de forma natural, de modo que ambos piensen de modo táctico y estratégico. Aunque una tarea de programación se desarrolle en parejas, el dueño de la misma es el desarrollador que la aceptó en el plan de liberación. Esto genera un gran dinamismo en el grupo de trabajo porque la pareja del dueño de la tarea puede cambiar varias veces durante un día, según el problema que se aborde en cada momento. Como toda técnica, se recomienda a [[institución]] la implantación de la práctica de forma gradual, ya que pueden existir miembros del equipo de desarrollo que se rehúsen a emparejarse, por lo tanto se sugiere avanzar de a poco, por ejemplo que lo intenten durante una hora, si no funciona, que intenten comprender por qué no funcionó e intentarlo nuevamente durante otra hora. 3 Los costos y los beneficios de la programación por pares [[Nombre del Proyecto]] [[Nombre de la institución]] Página 1 de 2 Guía respecto a la Programación por Pares Versión 1.0 [[Autor]] A continuación se plantean diferentes aspectos basados en los beneficios y los costos que involucra el aceptar como propia la técnica: 1. Economía: Al agregar una persona al equipo se reflejará un pequeño aumento en el costo de desarrollo. Sin embargo, el código resultante debe tener menos defectos. Los ahorros al eliminar los defectos deberían ser mayores que el aumento en el costo de desarrollo. 2. Satisfacción. Las personas que trabajan en pares encuentran la experiencia más agradable que el trabajar de forma individual. 3. Diseño de calidad. Los pares producen programas más cortos que los que los hacen solos, presentando por lo tanto diseños superiores. 4. Revisiones continuas. La técnica del codo a codo de la programación por pares sirve como un continuo diseño y revisión del código, haciendo más eficaz la remoción de defectos. 5. Aprendiendo. Programadores por pares citan reiteradamente cuánto ellos aprenden de los otros. 6. Comunicación del equipo. Las personas aprenden a discutir y a trabajar juntos. Esto mejora la comunicación del equipo y por consiguiente su efectividad. 7. Personal y Dirección del Proyecto. Puesto que múltiples personas tienen familiaridad con cada pedazo de código, la programación por pares reduce el riesgo de pérdida de personal. [[Nombre del Proyecto]] [[Nombre de la institución]] Página 2 de 2