¿Cuáles son los beneficios y las compensaciones de la programación de pares?

Compensaciones:

  1. Agotador. Según mi experiencia práctica, codificar 1 hora en pareja es tan intensivo como codificar 3 horas solo. Se necesita más descanso entre las sesiones de programación en pareja. Y mas cafe.
  2. Cuando surge un problema, dos personas están atrapadas en él. Solo por esta razón, a veces sugiero dejar la programación de pares hasta que encontremos la solución.
  3. Dos personas son absorbidas por una tarea.
  4. Todos los desarrolladores deberían tener entornos de trabajo similares. No es demasiado fácil hacer la programación de pares, cuando el entorno es totalmente desconocido para un miembro del par. (Usar el mismo IDE es apenas suficiente, aunque a veces me siento incómodo con diferentes configuraciones de validación de código o diferentes esquemas de color.
  5. Cuando se forma un par malo. Hay buenos pares y malos pares. Por ejemplo, unirse a dos desarrolladores junior no tiene mucho sentido, pero unirse a dos profesionales también podría no ser la mejor opción porque discutirán interminablemente sobre las cosas más marginales.

Beneficios:

  1. Un intercambio de conocimientos más efectivo. Dos personas conocerán el código escrito y el entorno (técnico, funcional, histórico, comercial) de ese código. Es bastante importante en el desarrollo ágil, donde no hay tanta documentación escrita. También es una muy buena oportunidad para aprender sobre un módulo interno del software desarrollado o un marco de trabajo de terceros, cuando una persona de la pareja ya tiene algún conocimiento al respecto.
  2. “Más ojos ven más cosas”. Si una persona no detecta un error, la otra lo hará.
  3. Dos personas se inspiran mutuamente y refinan sus ideas.
  4. Si una persona tiene reclamos menores sobre la calidad del código, la otra lo obligará a ir al nivel superior.
  5. Solo se necesita una estación de trabajo. 🙂

Desventajas:

  1. Caro : puede lograr el mismo nivel de calidad de código con menos horas de trabajo al (a) tener buenos desarrolladores y (b) tener una buena revisión del código. Consulte también un metaanálisis de 2007 que muestra que no es rentable: http://www.sciencedirect.com/sci
  2. Invasivo : a muchos desarrolladores no les gusta verse obligados a codificar en un entorno de programación de pares. Es socialmente intensivo, no puedes escuchar tu música, no puedes morderte la nariz, no puedes revisar tus mensajes de texto, etc. con tanta libertad.

Beneficio:

  1. Código de alta calidad, rápido : la programación en pares es probablemente la forma más rápida de obtener código de alta calidad. (Antiguo dicho: “Rápido, barato, bueno: elige dos” … esto es rápido y bueno). Pero de manera realista, no es mucho más rápido que tener un sistema de revisión de código razonable.

Desde mi experiencia, la programación de pares es buena cuando el problema en cuestión es complejo y requiere más atención. Pero he visto personas que se emparejan para escribir etiquetas HTML simples, lo que creo que es un desperdicio.

El problema está en las compañías que piensan que la programación de pares es el único camino a seguir. Forzan a los empleados a emparejarse todo el tiempo. OMI, esto es altamente ineficiente. No me emparejaría durante las 8 horas. Emparéjalo por algún tiempo, entiende la idea y trabaja en solitario.

La programación de pares no es una bala de plata para todos los problemas. Es solo otra herramienta y úsala sabiamente.

Yo diría que uno de los principales beneficios de la programación de pares es evitar la dilación / atascarse en los detalles. Tan pronto como pierdas el enfoque, el otro podría darte una pista crucial o tomar el control. Además, no deambulas por quora mientras estás programando pares, ¿verdad? El otro beneficio es una reducción en los errores triviales. Los errores tipográficos y los pequeños errores lógicos a menudo son fácilmente detectados por la segunda persona, mientras los está creando. En lugar de tener que encontrarlos al final de una frustrante sesión de depuración.

Si se practica en una oficina de plan abierto, una compensación es que tiende a interrumpir a otros al alcance del oído, por lo que sus ganancias potenciales de productividad son bastante probables a expensas de la productividad de sus compañeros de trabajo.

Y sí, soy un programador gruñón que ha trabajado en un divisor de cubículo de los programadores de pares pair

En realidad existe tal cosa, se llama programación de pares.

Si bien tiene muchas ventajas, al menos en mi experiencia rara vez se usa porque el aumento de la productividad generalmente es inferior al 100%, pero debe invertir el 100% adicional de la mano de obra para hacer el trabajo. Y generalmente el dinero es un problema.

More Interesting

¿Qué tan importante es la gestión de proyectos en el desarrollo de software?

Al diseñar la arquitectura de datos para una nueva aplicación móvil, ¿cuáles son algunas de las mejores prácticas relacionadas con la escalabilidad?

¿Cómo se determina quién posee el código fuente?

¿Cuáles son sus principales desafíos como probador de control de calidad en software o desarrollo web?

Cómo convertirse en un buen desarrollador de software teniendo en cuenta que soy un desarrollador web junior

¿Cuánto cuesta desarrollar un software CRM?

¿Cómo compararía y contrastaría comenzar una carrera de Software Dev en Irvine vs San Fran o Seattle?

Cómo saltar a una carrera de DevOps de ser un control de calidad manual

¿Qué debo elegir para Computer Sc Engineering: Ajay Kumar Garg Engineering College, Ghaziabad; o la Universidad de Chandigarh, Gharuan, Punjab?

¿Qué secuencia de instrucciones de pila usarás para rotar el contenido de los registros R0, R1 y R2?

¿Cuál es un ejemplo famoso de algo que es confiable? Quiero algo que pueda diferenciar de la resiliencia.

Con tantas violaciones de seguridad y violaciones de privacidad, ¿el desarrollo de software y la ingeniería eventualmente se convertirán en una industria regulada?

¿Por qué debería uno elegir C ++ sobre C aparte de la programación orientada a objetos?

¿Cuál será la situación para los ingenieros de software para 2020, 2025, 2040? ¿La demanda aumentará o la IA escribirá mejor código que los humanos?

Cómo aprender C ++ y Python para que se conviertan en mi lengua materna