lunes, mayo 13, 2024

¿La IA decretó el fin del Pair Programming y el Pair Review?

 



El mundo del desarrollo de software está en ebullición gracias a la inteligencia artificial (IA). Herramientas como Copilot, Gemini, ChatGPT o las integraciones de IA en IDEs como GitHub, reportan mejoras en tiempos, calidad y productividad de hasta un 40% o más (1)(2). Esto sugiere que la IA puede potenciar nuestra capacidad para crear código de calidad, transformando equipos de 8 personas (como propone Scrum) en parejas hiperproductivas (3). Un ejemplo: un arquitecto de software en una fintech comentaba que la IA le permite crear funciones complejas con solo solicitarlas, realizando luego pequeñas modificaciones si es necesario. Esto ha reducido significativamente su carga de trabajo, su forma de colaborar y la calidad de su código.


Un cambio radical en las reglas del juego

Este cambio radical en las prácticas de desarrollo nos lleva a preguntarnos: ¿marca el fin de la programación en pareja (pair programming) y la revisión de código (pair review)?


¿El fin de la pair programming?

La IA puede realizar: la detección de errores, la revisión de código y la optimización (refactorización) de funciones; lo que implica el pareto del valor de esta práctica, hiriendo casi de muerte a la pair programming, pues su parte vital se automatizó completamente.

Siendo honestos, la programación en pareja es de difícil adopción por parte de los equipos, muchos gerentes y programadores la veían como desperdicio, ahora con esta innovación, emergerá a lo sumo, como un momento específico, más que algo procedimental o de acuerdo de equipo.


Lo irremplazable (por ahora):

Lo que la IA aún no pordrá reemplazar (por ahora), son otros beneficios clave del pair programming:

  • Integración rápida de nuevos miembros al equipo a través de la colaboración con miembros experimentados.
  • Mejora del enfoque del programador al evitar distracciones gracias a la presencia de un compañero.
  • Mentoría (tutoría) que facilita el intercambio de conocimiento entre programadores de diferentes niveles.
  • Mejora en la toma de decisiones (por ahora). La programación en pareja, al tener un contexto más amplio, genera mejores decisiones sistémicas a medida que los desarrolladores conocen más el producto y su arquitectura. Esta capacidad puede ser absorbida por la IA en el futuro a medida que gane importancia en el desarrollo del producto.


El pair review aún tiene futuro

La revisión de código (pair review) tiene un papel crucial que la IA no puede reemplazar. Si bien la IA puede identificar errores en el código, no puede sustituir la discusión y el intercambio de ideas que se produce en un pair review. Además, esta práctica es una excelente manera de compartir conocimientos y experiencia entre los miembros del equipo, y de mejorar la arquitectura del producto.


Riesgos y desafíos

Un riesgo asociado a la IA es la generación de grandes volúmenes de código sin supervisión, lo que puede crear brechas de seguridad y rendimiento. Si la cantidad de código es demasiado grande para que un humano lo revise a fondo, se podrían generar riesgos que no se detectan.

Otro riesgo es la reducción de la mentoría y la gestión del conocimiento. Al "delegar" en la IA, los nuevos desarrolladores pueden no comprender el porqué de ciertas decisiones y se reduce la interacción y el intercambio de conocimiento entre los miembros del equipo.


El futuro de la colaboración en el desarrollo de software

En el futuro, indiscutiblemente veremos una combinación de IA y colaboración humana en el desarrollo de software. La IA se utilizará para automatizar tareas repetitivas, detectar errores, mejorar código, elaborar módulos o fuciones similares, mientras que los humanos, por su parte, se centrarán en tareas más creativas y estratégicas, asumiendo la responsabilidad de revisar grandes volúmenes de código, manteniendo la comunicación y la mentoría para los nuevos miembros del equipo.


¿Que opinan? Bienvenidos sus comentarios.


Saludos ágiles,

Jorge Abad.


Notas y Referencias

  1. AI impact in software development - Jeff Sutherland linkedin post: https://www.linkedin.com/feed/update/urn:li:activity:7184280772273434625/ .
  2. How People Can Create—and Destroy—Value with Generative AI. BCG Sep 2023. https://www.bcg.com/publications/2023/how-people-create-and-destroy-value-with-gen-ai
  3. Agile in the Age of AI - Henrik Kniberg. https://hups.com/blog/agile-in-the-age-of-ai?trk=public_post_embed_feed-article-content
  4. (Este artículo fue ideado por mí y luego curado con inteligencia artificial, también se encuentra publicado en linkedin en: https://www.linkedin.com/pulse/la-ia-decret%2525C3%2525B3-el-fin-del-pair-programming-y-review-jorge-abad-43hze/ )