Buscar en Gazafatonario IT

sábado, abril 12, 2025

¿El fin de la Ingeniería de Software como la conocemos?

🧠 ¿El fin de la Ingeniería de Software como la conocemos?


Hace unos días mi amigo Jorge Abad publicó en sus Lecciones Aprendidas un artículo premonitorio, se trata de su De lo complejo a lo simple: Cómo la IA está reinventando el desarrollo de software. En este, Jorge sostiene que la llegada de la inteligencia artificial ha transformado el proceso de desarrollo de software, llevando ciertas tareas de un entorno de alta complejidad –como era tradicionalmente– a un dominio en el que, gracias a la automatización, se puede hablar de mayor simplicidad. Invoca el marco de Cynefin, de Dave Snowden, para clasificar los problemas en simples, complicados, complejos o caóticos, y sugiere que, con la IA, el desarrollo se mueve hacia lo “simple” o al menos hacia lo “complicado” y predecible.

Pueden leer el artículo completo aquí:

Lecciones Aprendidas por Jorge Abad: De lo Complejo a lo Simple: Cómo la IA Está Reinventando el Desarrollo de Software

El artículo sirvió de base para una sesión de Castor sin filtro (del viernes 12 de abril de 2025) con Juan Andrés Ochoa y compañía, donde discutimos animadamente el asunto. Uno de mis puntos de debate fue otra presentación también de hace pocos días de Jan Bosch, director del Software Center, una colaboración estratégica financiada por socios entre más de 15 grandes empresas europeas (incluidas Ericsson, Volvo Cars, Volvo Trucks, Saab Defense, Scania, Siemens y Bosch) y cinco universidades centradas en la digitalización, que diera en The Future of Software Conference celebrada en Londres y donde expuso sus ideas sobre el estado actual y futuro de la ingeniería de software, destacando la rápida evolución de la ingeniería de software y del mundo en general.

Pueden ver la conferencia de Bosch en

The end of Software Engineering (as we know it) | Jan Bosch | Chalmers University of Technology

Pero antes de contarles en qué estoy de acuerdo con Bosch y en qué no, haré un resumen sucinto de su charla. Bosch contrasta el modelo tradicional de ingeniería de software —basado en requisitos, diseño, codificación y despliegue (que suena a cascada)— con una nueva dinámica donde los agentes de IA interpretan intenciones humanas, las traducen en requisitos, arquitecturas y código, reduciendo drásticamente el rol humano en la programación directa. Empresas como la alemana con la que Bosch trabajó ya han reemplazado desarrolladores por arquitectos de software que dirigen agentes de IA.

Bosch critica fuertemente la eficacia actual de la ingeniería de software. Con datos empíricos, aunque antiguos, afirma que entre el 50 % y 66 % de las funcionalidades desarrolladas nunca se usan, representando un despilfarro enorme. Esto era cierto hace más de dos décadas y una observación heurística nos puede mostrar que sigue siendo así o peor. Más grave aún: entre el 70 % y 90 % del presupuesto de I+D se destina a funcionalidades commodity que los clientes dan por sentadas. Bosch ilustra el problema con su modelo de tres capas: funcionalidad commodity, diferenciadora e innovadora. La mayor parte del esfuerzo se destina a la primera, con poco impacto en valor.

La causa central de esta ineficiencia, según Bosch, es la dependencia de "requisitos" en lugar de "resultados deseados". Propone una transición hacia un modelo basado en resultados cuantificables, donde cada funcionalidad se justifique por su impacto en KPI de negocio. Modelos como HYPEX y técnicas como el A/B testing permiten medir el impacto de pequeños incrementos funcionales antes de invertir completamente en ellos.

En paralelo, Bosch propone una madurez progresiva hacia organizaciones guiadas por IA. Describe cinco niveles: desde el uso puntual de herramientas como ChatGPT, pasando por la automatización de procesos, hasta organizaciones completamente rediseñadas con un enfoque "AI-first", donde agentes superan en productividad a equipos humanos enteros. En productos también se refleja esta transformación. Las etapas van desde el uso de IA como soporte, hasta productos completamente autónomos y autorregulados mediante aprendizaje por refuerzo.

Finalmente, concluye que la ingeniería de software actual es poco efectiva y necesita una reinvención radical. Reemplazar requisitos por resultados y adoptar la IA tanto en el producto como en el proceso de desarrollo son, para él, pasos imprescindibles. Más allá del entusiasmo técnico, Bosch hace un llamado a que ingenieros, Product Managers y líderes organizacionales asuman con responsabilidad esta transición urgente.

Puntos de acuerdo

1. El modelo tradicional está quedando atrás

Bosch argumenta que la cadena tradicional —donde se parte de los requisitos para llegar al despliegue— resulta insuficiente ante la velocidad y la incertidumbre del mercado actual.

Acuerdo: Es evidente que en muchos entornos, el enfoque lineal ya no permite responder de manera ágil a los cambios en los requerimientos del negocio ni a la complejidad de los sistemas modernos. De hecho, hace muchos años dejamos de hacerlo así en pro de un enfoque iterativo e incremental, de experimentación y prototipado rápido.

2. La revolución de la inteligencia artificial

La irrupción de herramientas y agentes inteligentes en el desarrollo de software abre la puerta a automatizar tareas que antes eran exclusivamente humanas.

Acuerdo: La utilización de LLM, agentes especializados y técnicas de aprendizaje por refuerzo ya está transformando la manera en la que concebimos el desarrollo, mejorando la eficiencia y permitiendo experimentar con nuevos modelos de negocio. En este sentido ver el artículo Experimentum Entre la eficiencia y el despojo: La inevitable mutación del desarrollo de software por la IA en el que analizo el más reciente reporte DORA sobre el impacto de la Gen AI en el desarrollo de software.

3. Desperdicio de funcionalidades

Según Bosch, una gran parte de las funcionalidades desarrolladas acaba siendo infrautilizada, lo que implica un desperdicio considerable de recursos.

Acuerdo: La realidad en muchas empresas respalda este punto: se invierte tiempo y dinero en features que, en última instancia, no aportan el valor esperado al cliente.

4. El cambio de requisitos a resultados

El enfoque en resultados de valor —o como les gusta a muchos: “outcomes”—, más allá de cumplir con un conjunto predefinido de requisitos, representa un cambio de paradigma fundamental.

Acuerdo: En un mundo donde la agilidad y la medición de impacto son esenciales, orientar el desarrollo hacia objetivos medibles permite alinear mejor las inversiones de I+D con los resultados de negocio.

5. La necesidad de una Ingeniería de Software madura

La transformación digital exige una mayor integración entre tecnología y negocio, elevando el rol de la ingeniería de software a un nivel estratégico.

Acuerdo: La apuesta por modelos iterativos, basados en la experimentación y en la medición de resultados clave, es una tendencia que ha demostrado su eficacia en empresas líderes.

Puntos de desacuerdo o matización

1. La desaparición del código humano

Bosch sugiere que pronto los agentes de IA podrían eliminar la necesidad de codificar manualmente.

Desacuerdo: Aunque la automatización avanza, los agentes aún carecen de un entendimiento profundo del contexto y las implicaciones éticas o sistémicas, por lo que el juicio humano sigue siendo crucial, especialmente en aplicaciones complejas y reguladas.

2. Transformación del rol del ingeniero

El discurso de Bosch tiende a minimizar el rol de los desarrolladores tradicionales.

Matización: Más que desaparecer, el rol del ingeniero se transformará. Los profesionales pasarán a actuar como orquestadores, validadores y supervisores de sistemas automatizados, aportando su criterio en áreas como la ética algorítmica y la experiencia de usuario.

3. Subestimación de los factores culturales y organizacionales

El cambio hacia modelos AI-first implica no solo una actualización tecnológica, sino también una revolución cultural en las empresas.

Desacuerdo: La resistencia al cambio y la necesidad de transformar estructuras organizativas son aspectos complejos que requieren una adaptación gradual y el compromiso de todos los niveles jerárquicos.

4. Enfoque exclusivamente económico

Medir el éxito de cada sprint en términos estrictamente económicos puede resultar reduccionista.

Matización: es muy importante cuantificar el retorno de inversión, pero también debemos tener en cuenta intangibles como la experiencia de usuario, la reducción de la deuda técnica y el aprendizaje continuo, que a largo plazo generan valor y competitividad.

5. Un discurso algo alarmista

La crítica a la “atrocidad” en la eficacia de la ingeniería actual puede resultar desalentadora para quienes trabajamos día a día en mejorar procesos y productos.

Desacuerdo: Aunque es vital reconocer las ineficiencias existentes, es igualmente necesario reconocer los avances que ya se han conseguido y fomentar una cultura de mejora continua, donde los retos se aborden de forma colaborativa y constructiva.

Mis conclusiones

Han pasado dos décadas desde que publiqué mis dos primeros libros Asuntos de la Ingeniería de Software Volumen I y Volumen II, pero tanto el artículo de Jorge, como la presentación de Bosch nos desafían a repensar la forma en que concebimos y practicamos la ingeniería de software. Sus propuestas, basadas en el aprovechamiento de la IA y en el enfoque en resultados, ofrecen una hoja de ruta para transformar radicalmente el sector. Sin embargo, la implementación de estos cambios debe considerar cuidadosamente la responsabilidad permanente del factor humano, la complejidad de las transformaciones culturales y la necesidad de una visión equilibrada que vaya más allá de los criterios económicos.

Comparto la urgencia de evolucionar hacia modelos más ágiles y eficientes, que resuelvan los problemas actuales y futuros de los usuarios (y clientes) y que solucionen de una vez por todas y para siempre los males del mundo, de lo contrario habremos fallado como humanidad; pero también reconozco que la innovación debe ir acompañada de un enfoque pragmático y humano, así que aún debemos afinar la integración de la IA en nuestra práctica diaria para convertirla en ese continuum que necesitamos y no solo reaccionar a los picos virales (“hype”) a los que nos tienen acostumbrados como este último de la “ghiblilización” o el anterior de DeepSeek.

Seguiré creyendo que el inminente final de la ingeniería de software tal como la conocemos no es un cierre, sino el amanecer de una era donde la perspicacia humana se fusionará con la inteligencia artificial: ya no escribiremos software, esculpiremos futuros, transformando lo imposible en nuestra nueva realidad digital. ¿Qué opinas? Déjamelo saber en el foro.