Veamos ahora algunos argumentos convincentes sobre por qué podrías estar interesado en la programación en pareja en tus hábitos de equipo, así como también los contraargumentos. Hay muchas ventajas en la programación en pareja y estas variarán según las especificidades de tu organización. Sin embargo, aquí están algunos de los beneficios más comunes y buscados de la programación en pareja.
Al revisar minuciosamente el código y construirlo combinando el conocimiento de dos ingenieros, es probable que sea más fácil de mantener y menos propenso a causar errores y fallos. A medida que los desarrolladores pasan más tiempo compartiendo pensamientos y prácticas, así como presenciando las prácticas de sus compañeros de equipo, brindan oportunidades de crecimiento mutuo. Puede tener un impacto muy positivo en la moral, ya que los compañeros de equipo pasan más tiempo juntos y se unen a través de actividades profesionales. Puede implicar que un individuo intervenga en una parte del producto de la cual no es responsable, lo que le brinda la oportunidad de hacer preguntas y aprender al respecto. Por último, al analizar de manera integral la productividad, la programación en pareja tendrá frecuentemente un impacto positivo, y hablaremos de eso nuevamente más adelante en la presentación.
También existen desventajas y desafíos. Estos pueden tener un impacto importante en el resultado de tus sesiones de programación en pareja. El primer y, con mucho, el argumento más frecuente es que la programación en pareja no es rentable en términos de costos. Un estudio realizado por dos investigadores de Microsoft indica que había considerable escepticismo sobre si tener dos personas trabajando en una tarea es un buen uso de los recursos. Y más adelante, también se menciona que la aceptación de los gerentes también fue un desafío, con uno de los gerentes diciendo: si tengo opción, puedo contratar a un programador estrella en lugar de dos programadores que necesitan programar en pareja. Esto es algo de lo que hablaremos nuevamente más adelante en esta presentación, ya que puede ser discutible y hay diferentes cifras para analizar. Otro problema es encontrar socios que trabajen bien juntos. Los miembros del equipo pueden tener diferentes estilos de trabajo, preferencias, personalidades y culturas, lo que puede dificultar encontrar un socio compatible. La resistencia al cambio es otra. Algunos desarrolladores pueden resistirse al cambio a la programación en pareja y preferir trabajar solos. Esto puede ser un desafío significativo, especialmente si los miembros del equipo no están acostumbrados a colaborar estrechamente con otros. Por ejemplo, pueden sentir que están siendo observados o microgestionados cuando están en el asiento del conductor. Por último, la comunicación efectiva es crucial para la programación en pareja, por lo que también puede ser un desafío, especialmente si los miembros del equipo tienen diferentes estilos o preferencias de comunicación. Personalmente, he tenido experiencia con equipos multiculturales donde a veces aumenta el riesgo de no comunicarse correctamente, ya que es posible que no sean sensibles a las mismas palabras, significados y actitudes que la otra parte. Estos desafíos son argumentos válidos y más adelante en esta charla mencionaremos formas de abordarlos y tratar de mitigar su impacto.
Para agregar algo de contexto y cifras prácticas, aquí hay algunos comentarios recopilados en un estudio realizado en Microsoft en 2007. Estos son los 5 argumentos más mencionados a favor y en contra de la programación en pareja, con una puntuación que representa con qué frecuencia se mencionaron estos argumentos en el estudio. Este es, por supuesto, un solo estudio y otros pueden tener clasificaciones y elementos diferentes, pero creo que este te da una representación bastante precisa de cómo se sienten los desarrolladores en general acerca de la programación en pareja. Quiero dedicar un tiempo y abordar el argumento del costo. Como vimos que es, con mucho, la mayor preocupación. Primero, digamos que muy a menudo no se pasa un ciclo completo de desarrollo en una situación de programación en pareja.
Comments