La practica de “Programación en pares” o “Pair programming” es algo que no había practicado en su totalidad, esta semana estuve practicando y de verdad creo que es una gran idea.
Por un lado, es complicado no tener el “control” del teclado, esto puede ser complicado o incluso molesto si eres muy posesivo con el teclado. Otra cosa interesante es que es muy útil usar un par de monitores, así como de teclados y ratones. Es requisito indispensable que los desarrolladores se pongan de acuerdo sobre quien hace que cosa, de lo contrario puede ser también molesto.
Lo que mas me ha gustado de “Pair programming” es que se favorece la comunicación entre desarrolladores, pues mientras uno teclea “su” código, el otro observa; esto permite que se intercambien ideas, experiencias, razonamientos; lo que se traduce en mejor código, maduro, estable. Esta experiencia para mi ha sido fabulosa, me agrada muchisimo la sensación que te queda al final de día cuando vez los resultados del trabajo. El rol de “observador” de código pretende que se pueda opinar y/o sugerir mejoras, intercambiar ideas con el “codificador”, al intercambiarse los roles la perspectiva cambia totalmente. Es muy recomendable, si no es que mandatorio, acompañar Pair Programing con TDD, pero TDD en serio.
A primera vista pareciera que el “Pair Programming” es muy costoso, dado que tienes a dos desarrolladores haciendo lo “mismo”, pero hay muchos beneficios adicionales a los que he mencionado. Lo que mas me ha impresionado es que se reduce la perdida de tiempo en otras cosas diferentes a lo que se debe hacer, se evita la procastinación. El tener a los desarralladores cada quien en su lado y aislado puede generar demasiada procastinación.
Me he sentido muy cómodo trabajando así, me he sentido productivo escribiendo código y mejorando el que mi compañero escribe, es rico irse a la cama sintiendose satisfecho y con ganas de ir a trabajar al otro día.
No he tenido la oportunidad de experimentarlo y menos con las presiones de terminar los proyectos que uno tiene encima asignados, no creo que sea tan fácil convencer a los líderes de intentarlo cuando estamos con los tiempos de entrega correteandonos – no obstante, seguro que algún día me daré la oportunidad y ya platicaremos de mi perspectiva con esa futura experiencia, mientras tanto, tu post me ha dado + ánimos para intentarlo.
Saludos!
Es una excelente practica, desgraciadamente la industria esta muy viciada con ciertos pensamientos retrogradas, pero creeme, con PAirProgramming se evitan las “presiones” y “prisas” ya habituales en los proyectos. Desde enero no hago mas que PairProgramming,pronto espero escribir una actualización de mis experiencias.
Saludos
Esta tecnica me recuerda a lo que una vez leí en ‘Hackers, heroes of the computer revolution’ de Steven Levy. En el se narra como Guy Steele y Richard Stallman solían sentarse a programar en una manera que bien podría calificarse de programación por pares. Un extracto del relato aquí: http://www.maitrella.com/?p=647
Nada nuevo bajo el sol, solo hay que aplicar bien las practicas. Muy buena referencia, gracias.