Mi equipo ha realizado programación de pares desde su inicio, mucho antes de que trabajara allí, como parte de una tienda de estilo de "programación extrema". La programación de pares es el estado predeterminado ; las personas solo se vuelven solteras si hay un número impar, o de vez en cuando para investigaciones, especialmente aquellas que implicarán jugar con equipos hostiles e intentar que funcionen.
"Junior / senior" no es el único camino a seguir. "Intermedio / junior" es útil; ayuda al chico de nivel intermedio a sintetizar el conocimiento que ha obtenido al obligarlo a comunicarlo a otra persona. "Intermedio / Intermedio" desafía a dos personas a trabajar juntas para compartir sus conocimientos, comunicarse y trabajar como parte de un equipo. E incluso si tiene dos tipos realmente mayores, es probable que tengan diferentes áreas de experiencia y puedan proponer enfoques diferentes. Los aspectos de intercambio de conocimientos no terminan una vez que alguien vagamente "al día" en un proyecto. Más bien, la programación en pareja es el epítome de una organización de aprendizaje . Nuevas técnicas y mejores prácticas se extendieron rápidamente.
La programación de pares también ayuda a mantener la calidad del código (menos defectos) y la cordura del código (no solo hace lo que pretende, sino que hace lo que debería ... idealmente sin caer en un conejo de varias semanas) agujero haciendo lo incorrecto, o dos cosas correctas diferentes que entrarán en conflicto salvajemente). Ayuda a los programadores a mantener su enfoque: aquí, en el corazón de Silicon Valley, hogar de la semana laboral de 80 horas, podemos trabajar solo 40 horas a la semana porque estamos haciendo una codificación intensa durante ocho horas al día, cambiando las cosas fuera el uno con el otro. (Además, si pasaras más tiempo haciendo la programación de pares, probablemente te volcarías. O al menos te quemarías). Esto es excelente para el equilibrio entre el trabajo y la vida, y también ayuda a su organización cuando es importante tener una respuesta rápida (respuesta de baja latencia, en particular).
No es todo, completamente, 100% duraznos y crema; Encuentro que la programación de pares ocasionalmente es un obstáculo para mi aplicación de procesos cerebrales intuitivos que son útiles en ciertos problemas. Más recientemente, en una tarea de pérdida de memoria, pasé algún tiempo con y sin pares; sin uno, me sentí más libre para perder el tiempo y probar experimentos sin realmente saber exactamente cómo explicar lo que estaba haciendo en cualquier momento. También hay algunas ventajas en trabajar singleton, poder ir por una tangente y hacer ciertas refactorizaciones salvajes (valoradas en la metodología XP) por capricho.
Pero en general, los beneficios superan con creces los costos, y el emparejamiento ha funcionado espectacularmente bien para nosotros: desde la etapa inicial hasta la adquisición por parte de una empresa más grande y nuestra posterior integración. (Hablando de eso, la programación en pareja nos ha ayudado a mantener una continuidad de la cultura a través de la expansión y a pesar de una pequeña rotación).
(Desarrollamos un dispositivo de software en Perl, ~ $ 4,000- $ 40,000 precio de lista).