martes, marzo 11, 2025

De lo Complejo a lo Simple: Cómo la IA Está Reinventando el Desarrollo de Software

Marco Cynefin

Hola a todos,

Hace unos días, hablando con mi compañero de trabajo, Roberto Moraga, surgió una reflexión interesante: el desarrollo de software ha pasado de ser un proceso altamente complejo a volverse más simple, en gran parte gracias a la inteligencia artificial. Sin embargo, si bien las herramientas han evolucionado, el mercado (usuarios, consumidores, empresas y negocios) sigue siendo dinámico, incierto y cada vez más complejo. Entender las necesidades y traducirlas en soluciones sigue siendo un desafío estratégico, que marcos como Scrum y metodologías como XP buscan reducir a la interacción con una sola voz.

Después de conversar un rato, llegamos a la misma conclusión: el software ya no se construye de la misma manera que antes. Scrum fue diseñado para gestionar la complejidad del desarrollo de software inicialmente, permitiendo a los equipos adaptarse de manera iterativa y generar soluciones en entornos de incertidumbre y luego su alcance se amplió hacia soliciones en entornos complejos, sin importar si incluían software o no. Sin embargo, hoy en día, el proceso software es mucho más predecible, gracias a la inteligencia artificial, las mejoras en los procesos han aumentado entre un 40% y un 60%, o incluso más, en la generación de código, la validación y la utilización del talento en los equipos.

Esto nos llevó a unas preguntas clave: ¿qué va a pasar con Scrum en el desarrollo de sofware? Si este se ha vuelto más automatizado y eficiente,  ¿Cómo afecta la IA a los marcos ágiles, metodologías ágiles?¿El escalamiento (es decir muchos equipos ágiles) seguirá igual o cambiará al emplear estas nueva tecnología?. Una aproximación para responder a estas preguntas, se plantearán en este artículo.


El desarrollo de software antes de la IA

El desarrollo de software siempre ha sido un ejercicio de lidiar con la complejidad. Antes de la llegada de la Inteligencia Artificial (IA) generativa, la construcción de software requería múltiples iteraciones, idas y venidas con el cliente, reuniones de refinamiento y planificación, pruebas constantes y ajustes sobre la marcha. Era un proceso artesanal en el que cada pieza de código debía encajar perfectamente en un entramado ya existente, con una complejidad que crecía exponencialmente con cada nueva funcionalidad.

Con la llegada de los marcos ágiles, esta complejidad se empezó a gestionar de manera más efectiva. En Scrum y XP por ejemplo, los equipos reducían la incertidumbre fragmentando el trabajo en historias de usuario pequeñas, cada una encapsulada dentro de un timebox de dos semanas (1). Por otro lado, Kanban ofrecía flujos de trabajo más cortos y continuos para optimizar la entrega (2). La clave estaba en la descomposición y la priorización: si algo no llegaba a desarrollarse, al menos lo más valioso ya estaba en producción.


¿Por qué el desarrollo de software es complejo?

El software no es solo líneas de código. Es una red interconectada de dependencias, reglas de negocio, infraestructura, bases de datos y lógica distribuida. Su complejidad crece con cada nueva funcionalidad porque:

  • La cantidad de código crece exponencialmente: Cada nueva línea interactúa con muchas otras, lo que hace que el sistema se vuelva más difícil de comprender y modificar (3).
  • Las dependencias se multiplican: Los sistemas modernos no son aplicaciones monolíticas; dependen de APIs, microservicios y plataformas en la nube (4).
  • Las reglas de negocio son cambiantes: Lo que hoy es válido, mañana puede cambiar por una nueva regulación, requerimiento de usuario o innovación del mercado.
  • Las expectativas de los usuarios evolucionan: Lo que antes tomaba meses ahora se espera en semanas o días.

Dave Snowden, con su marco Cynefin, nos dice que un problema puede estar en distintos dominios: simple, complicado, complejo o caótico (5). Durante décadas, el desarrollo de software ha habitado en la zona de lo complejo, donde la relación causa-efecto solo se entiende en retrospectiva, y donde la experimentación y la iteración eran la única forma de avanzar.


¿Cómo la IA ha simplificado el desarrollo de software?

La IA generativa está moviendo el desarrollo de software del espacio de lo complejo al de lo complicado e incluso a la frontera con lo simple. ¿Cómo?

  • Generación automática de código: Hoy en día, un desarrollador puede describir en lenguaje natural qué necesita y herramientas como Copilot o ChatGPT pueden generar código funcional en segundos (6).
  • Automatización de pruebas: La IA puede crear, ejecutar y ajustar pruebas unitarias y de integración sin intervención humana (7).
  • Refactorización asistida: Lo que antes requería semanas de análisis, hoy se puede hacer en minutos con IA sugiriendo mejoras y optimizando código (8).
  • Mayor velocidad en el desarrollo: Ahora es posible generar prototipos funcionales en horas, lo que antes tomaba semanas.

Esto ha cambiado radicalmente el flujo de trabajo. Antes, un equipo de desarrollo tenía que construir cada pieza de código manualmente y validarla en iteraciones cortas. Hoy, la IA permite automatizar gran parte de ese trabajo, transformando el proceso en algo más cercano a un modelo de entrega continua, donde Kanban empieza a ser una herramienta de gestión más efectiva que Scrum (9).


¿Qué pasa con el escalamiento?

El desarrollo de software no solo se ha vuelto más rápido con la IA, sino que también ha impactado la forma en que las organizaciones gestionan el escalamiento. Antes, uno de los mayores desafíos en la escalabilidad era la gestión de dependencias entre equipos: ¿Quién trabaja en qué? ¿Qué bloquea a quién? ¿Cuándo estará disponible una funcionalidad que otro equipo necesita?

Con ciclos de desarrollo más cortos gracias a la IA, los equipos están generando software a una velocidad nunca antes vista. Esto significa que los cuellos de botella ya no están en la escritura del código, sino en la coordinación entre equipos.

La nueva gestión de dependencias

Cuando la generación de código deja de ser un problema, la conversación cambia:

  • Los equipos hablarán más de dependencias y lo harán más rápido, porque llegarán a ellas en menos tiempo.
  • La gestión proactiva de dependencias es clave, porque ahora los bloqueos pueden detener desarrollos que, de otro modo, habrían estado listos en cuestión de horas.
  • Los gestores de flujo de trabajo (Scrum Masters, Agile Coaches, facilitadores) deberán anticipar y resolver estas dependencias con más rapidez que nunca.

Esto tendrá un impacto directo en los marcos de escalamiento ágiles como SAFe, LeSS, Nexus y Spotify Model. Tradicionalmente, estos marcos han tratado las dependencias con eventos de sincronización como el PI Planning (SAFe) o los eventos de coordinación en LeSS. Pero en un entorno donde los equipos avanzan más rápido, estas cadencias predefinidas pueden volverse insuficientes. Y es allí donde toma valor la gestión impecable de las dependencias, que es la forma como trabaja Amazon, que logra escalar sientos de equipos sin necesidad de eventos de coordinación.


Cerrando: De la complejidad a la simplicidad

El desarrollo de software ya no es un proceso 100% artesanal. Las historias de usuario siguen funcionando como método de comunicación con el cliente, pero la ejecución es más ágil que nunca. Algunas funcionalidades pueden construirse de manera casi instantánea, moviendo el desarrollo del espacio complejo al complicado, o incluso a lo simple, cuando la IA puede resolverlo sin intervención humana.

La IA ha cambiado el juego. Ahora, la clave no es escribir código más rápido, sino enforcarnos en en entender mejor el negocio y remover bloqueos con la misma o más velocidad que con la que producimos software.


Saludos ágiles,

Jorge Abad


Referencias

  1. Schwaber, Ken, and Jeff Sutherland. The Scrum Guide. Scrum.org, 2020.
  2. Anderson, David J. Kanban: Successful Evolutionary Change for Your Technology Business. Blue Hole Press, 2010.
  3. McConnell, Steve. Code Complete: A Practical Handbook of Software Construction. Microsoft Press, 2004.
  4. Lewis, James. Microservices: The Journey to Cloud Native. O'Reilly Media, 2019.
  5. Snowden, Dave. Cynefin: Weaving Sense-Making into the Fabric of Our World. Cognitive Edge, 2020.
  6. GitHub. "Introducing GitHub Copilot." GitHub Blog, 2021.
  7. Agile Alliance. "Dependency Management in Agile Teams." Agile Alliance, 2022.

 

No hay comentarios.:

Publicar un comentario