La programación de pares es bastante famosa hoy en día.
Tiene varias ventajas como:
- Programas con menos errores.
- El costo de mantenimiento posterior a la producción es mucho menor.
- Las prácticas establecidas son desafiadas, lo que resulta en la aparición de nuevas ideas.
- Los programadores aprenden unos de otros.
- Los programadores desarrollan habilidades blandas.
¿Pero cuáles son las desventajas de la programación de pares?
design
programming-practices
pair-programming
pájaro libre
fuente
fuente
Respuestas:
Aunque la programación de pares ha ganado una reputación considerable, también tiene varias dificultades.
Algunos de ellos son los siguientes:
fuente
Intenté programar en parejas varias veces, incluso en una organización que (brevemente) consideró implementarlo como un proceso obligatorio para todos los ingenieros (se puede adivinar qué tan bien surgió esa idea). Personalmente, lo odiaba.
Las razones que enumero a continuación son solo mis experiencias subjetivas, y no puedo 'medir' su impacto en términos concretos. Pero aquí son todos iguales:
1 - Tener un 'navegador' y un 'conductor' solo ayuda si el primero es vocal y el segundo escuchará.
Todos hemos conocido desarrolladores que son tercos, celosos de alguna preocupación teórica o patológicamente incapaces, psicológicamente, de 'tirar' el trabajo viejo cuando alguien sugiere un problema con él. Y todos conocemos a personas demasiado tímidas o confusas para plantear inquietudes o sugerir casos esquimales.
Cuando este tipo de desarrolladores están emparejados, el navegador rápidamente toma un rol pasivo, y lo que termina es la programación única con una revisión automática de código. Este es un monumental desperdicio de recursos.
2 - El emparejamiento impide la creatividad.
Contrariamente a lo que se sentía anteriormente sobre el valor de la "lluvia de ideas grupal", el consenso en estos días es que el trabajo de conocimiento creativo requiere independencia y autonomía . Cuando trabajas solo, puedes hackear rápidamente alguna idea loca para ver si es realmente factible. Puedes armar sin palabras algún prototipo extraño, y si fallas, no importa, porque nadie lo sabe .
Compare eso con el emparejamiento: cuando quiero probar un nuevo concepto, tengo que convencer a mi compañero, hablar sobre la implementación, paso a paso, y esperar que no me juzguen si falla. Ese tipo de ambiente es tóxico para crear nuevas ideas.
3 - Diseño de mínimo común denominador.
Cuando un par no puede generar nuevas ideas, como se indicó anteriormente, o cuando los individuos no pueden ponerse de acuerdo sobre algún principio fundamental de cómo se debe diseñar una característica, lo que sale es un diseño confuso que intenta comprometer y no satisface a nadie.
Si emparejas a un desarrollador que construye abstracciones de programación funcionales maravillosas, elocuentes y hacia el cielo con un fenómeno de rendimiento rápido y sucio, el código que producirán juntos generalmente no será terriblemente elegante ni particularmente rápido.
4 - Falta de autonomía y transparencia violenta.
La transparencia violenta es una frase que saqué de una polémica moderadamente famosa (y bastante controvertida) contra la metodología Scrum. Describe la forma en que algunas organizaciones infantilizan a los desarrolladores y los tratan con la sospecha normalmente reservada para los trabajadores no profesionales.
Independientemente de lo que piense acerca de los "daños" de hacer que el trabajo de los desarrolladores sea completamente transparente (y puede que no esté de acuerdo en que es realmente un daño), muchas personas valoran su autonomía y su capacidad para trabajar solos, confiando en hacer lo correcto. Es una necesidad psicológica importante, y obligar a los desarrolladores a emparejarse (como he visto suceder en al menos una tienda) dejará a los empleados consternados, molestos y alienados.
5 - Algunos desarrolladores simplemente no juegan muy bien en parejas.
Algunas personas no pueden o no pueden comportarse adecuadamente en un entorno emparejado. Pueden tener mala higiene, malos hábitos de trabajo, una personalidad abrasiva, una manera "ruidosa" e "intensa", o una gran cantidad de otros atributos que los hacen buenos trabajadores individuales, pero pobres programadores de parejas.
¿Puedes resolver esto? Realmente no. Cambiar el comportamiento personal es difícil. Una tienda de programación de pares debe tener mucho cuidado con la contratación e invertir mucho tiempo para ver cómo alguien trabaja y si podrán trabajar bien con sus compañeros. Sin embargo, discriminar más a la personalidad significa que la contratación llevará más tiempo a menos que afloje sus estándares de habilidades y experiencia.
fuente
Depende de su situación o perspectiva.
La programación en pareja es buena para la organización. ¿Pero es bueno para el individuo?
Después de todo, es un método de ahorro de costos (retroalimentación temprana) y productividad; No se trata de usted, sino del proyecto, producto, empresa ($$).
Aunque puede tener beneficios personales, no son la razón o el fin de ninguna metodología de desarrollo. La programación de pares (a tiempo completo), por ejemplo, también evita que te relajes, navegues, etc., debes justificar tus pausas ante tu pareja.
Su compañero (rotativo) será la mejor cámara de vigilancia: la intensidad del trabajo aumenta.
O, al distribuir el conocimiento, el individuo se vuelve menos riesgoso para la empresa (por ejemplo, no puede abandonar la empresa con el conocimiento esencial) y tiene menos "fichas de negociación".
Estoy seguro de que encontrará más puntos al leer artículos afirmativos de manera más crítica desde SU situación / punto de vista real en la empresa en lugar de desde la perspectiva de su gerente.
Casi todas las metodologías están escritas desde la perspectiva del gerente.
fuente
De repente, ahora tiene que decirle a alguien cuándo quiere ir al baño o tomar un café. Al menos no hay necesidad de pedir permiso.
Tienes que hacer frente a las normas de higiene de la otra persona.
fuente
Además de otras respuestas:
Muchas empresas para las que he trabajado emiten sus programadores con computadoras portátiles (basadas en el sitio de los clientes; es más fácil mantener el equipo seguro si se lo llevan a casa después del trabajo, poder hacer un trabajo extraño desde casa en VPN en un apuro, etc.) Muchos años Hace ya tuve problemas para ver en la pantalla de la computadora portátil de otra persona (el "conductor") desde la perspectiva de navegación del hombro: la edad no mejorará esto (y algunas pantallas se vuelven difíciles de leer fuera del ángulo de visión ideal en cualquier caso).
Por lo tanto, los programadores de pares necesitarán pantallas suficientemente grandes, lo que aumentará el costo del hardware y limitará la adaptabilidad a la ubicación. Puede que no sea un problema para algunos, en otros casos será un problema.
Anécdotas para tu diversión:
fuente
Creo que la programación de pares falla por razones sociales y prácticas. Esencialmente, le está pidiendo a una persona que trabaje bajo vigilancia constante y a la otra que no haga nada más que hacer agujeros.
Lo que inevitablemente sucede después de un tiempo es que la pareja se separó para 'revisar correos electrónicos' o 'usted continúa revisando ese problema en vivo', etc.
En lugar de mejorar la salida del código, el volumen disminuye. Tanto por razones prácticas 'Necesito ir al almuerzo / reunión fuera de sincronía con usted' y social 'Solo esperaré a que Bob termine lo que está haciendo antes de preguntar acerca de emparejarse nuevamente, no quiero que me vean molestando'
En cuanto a las ventajas alardeadas, hay muchas prácticas comunes que las logran de manera más simple y efectiva
fuente
Decirle a dos desarrolladores senior que hagan una "programación dolorosa" si están seguros de que uno puede hacer el trabajo es la mayor desventaja.
fuente