La idea general que propugnan la mayoría de los teóricos de Agile / XP parece ser que los pares deberían intercambiarse regularmente. Por ejemplo, cada programador debe intercambiar pares una vez al día; la mitad de las personas intercambian al comienzo del día, la mitad de las personas intercambian después del almuerzo: debido a factores externos como reuniones, días festivos y similares, la mayoría de las personas tenderán a cambiar sus tiempos de intercambio una o dos veces por semana para que las configuraciones de par se distribuyan bastante uniforme en todo el equipo.
Una razón detrás del intercambio frecuente es que el conocimiento se difunde entre el equipo de manera rápida y uniforme, en lugar de tener habilidades y conocimientos específicos que se concentran en individuos particulares, lo que implica que el trabajo puede continuar sin problemas si las personas están lejos o abandonan la empresa. Otro razonamiento, que es una especie de corolario del dogma que rodea a la programación de pares en sí, es que cada vez que alguien intercambia información sobre usted obtiene una nueva revisión de código por un par de ojos nuevos, por lo que solo puede mejorar la calidad del código.
Ambas afirmaciones suenan razonables; desde el punto de vista de la administración, parece que obtienes un aumento tanto en la estabilidad como en la calidad, y como tal el intercambio frecuente es una teoría estándar en la mayoría de los libros de Agile / XP que he visto.
Entonces, cuando realmente se pone en práctica, ¿qué piensan las personas sobre el intercambio de parejas?
- ¿El punto de vista de un programador?
- ¿El punto de vista de un gerente?
Y
- ¿Qué debería determinar cuándo alguien cambia de / a un par?
Respuestas:
La programación en pareja es difícil.
Es difícil porque funciona mejor cuando las 2 personas involucradas tienen un nivel de habilidad cercano y eso puede ser difícil en algunos entornos de trabajo. Puede ser más difícil cuando cambias porque necesitas encontrar a otra persona con el nivel de habilidad adecuado y luego ponerlos al día sobre el problema actual. El beneficio es que más personas están expuestas a cualquier código dado que haya sido emparejado. Esto debería llevar menos veces en que el código no se pueda arreglar porque nadie sabe lo suficiente sobre él. También debe propagar la propiedad del grupo y la capacidad de cualquiera de recoger cualquier trabajo.
He descubierto que incluso en entornos donde se realiza el emparejamiento, el intercambio de pares no vale la pena. Sin embargo, esto puede deberse a que nuestras tareas nunca demoran más de ~ 1.5 días. Encontramos un gran beneficio al desglosar las tareas para que no sea más grande que ~ 1.5 días de trabajo. El intercambio de pares puede tener más sentido en el contexto de tareas más largas.
fuente
Soy tanto programador como gerente. Aquí está mi opinión:
El intercambio regular es genial. Estoy a favor de cambiar de 2 a 4 veces por día, que es casi tan rápido como creo que puedes ir. Para nosotros, eso viene en puntos de ruptura naturales: generalmente almuerzo y media tarde. Cambiar todos los días o dos probablemente esté bien, pero me preocuparía ir mucho más tiempo que eso. (He oído hablar de un lugar que cambia cada seis semanas, lo que creo que es una locura; después de tanto tiempo juntos, estarían listos para apuñalar a un santo).
Como programador, me encanta porque obtengo nuevas perspectivas, puedo ver otras áreas del código y puedo seguir o pasar de algo como prefiera. Recientemente, pasé de la codificación en solitario al emparejamiento, y estoy emocionado: aprendo más, me divierto más y hago más.
Como gerente, creo que es genial porque resuelve muchos problemas de factor de camión y cuello de botella. Por ejemplo, este fin de semana me tomaré un largo fin de semana para la boda de un amigo, y no me preocupa en absoluto: todo lo que he trabajado también ha sido trabajado por otras personas. También creo que realmente ayuda a los miembros del equipo a apreciar las fortalezas y debilidades de los demás, y a fomentar la propiedad del código colectivo.
En cuanto a quién se queda con el trabajo actual, siento que depende principalmente de las personas involucradas. A veces quieres ver algo, y a veces estás listo para un cambio. A veces también intercambiamos para aportar experiencia, o para que alguien pueda aprender algo que le interesa. Intentamos mantener nuestras unidades de trabajo bastante pequeñas (0.5-2.0 pares de días), por lo que no es un gran problema, sin embargo, el intercambio continúa .
fuente
Okie, aquí va la respuesta de un autoproclamado programador pragmático ágil / xp. Llevo más de dos años programando en pareja. Si la programación de pares es buena, intercambie pares con frecuencia (idealmente cada dos horas, si no cada medio día). En la ubicación de nuestra oficina, hacemos un punto para intercambiar pares todos los días (generalmente) o cada dos días (en el peor de los casos). Hacer esto en sí mismo podría darnos mucha confianza en la calidad del código que comprometemos y en los aprendizajes o eliminaciones que tenemos con cada rotación de pares (sabemos que la revisión del código es buena, cuanto más mejor y más pronto mejor. Esto es lo que logra la "programación de pares, incluida la práctica de intercambio de pares" ).
¿Por qué no cambiamos pares cada dos / cuatro horas? Bueno, en realidad he estado en equipos que también practican esto. Ciertamente es mucho más fresco y más productivo. Pero aquí está el trato, el intervalo de tiempo de intercambio de pares no debería ser una regla, debería suceder por sí solo; solo entonces el gerente o la empresa pueden ver sus beneficios.
He sido testigo y experimentado esto. Ahora soy su evangelista. No es una teoría. Más bien es completamente pragmático :) Feliz emparejamiento de ping-pong e intercambio de parejas.
fuente