Menú Cerrar

Ingeniería de Software en la Era de la IAG: Navegando la Productividad y la Evolución Profesional

La Inteligencia Artificial (IA), y en especial la Inteligencia Artificial Generativa (IAG), han emergido como una fuerza transformadora en múltiples industrias, y la industria del desarrollo de software no es una excepción. La pregunta que surge es si la IAG en este campo es una realidad tangible o todavía está dando sus primeros pasos. Haciendo un poco de spoiler, la IAG en el desarrollo de software es una realidad muy presente, aunque con ciertos matices a tener en cuenta.

Leyendo cualquier artículo/post en internet y prensa especializada podemos ver que el ámbito de aplicación de la IAG está siendo muy amplio e impacta en distintos ámbitos del desarrollo de software, con especial énfasis en:

  • Generación de código, donde la IA asiste con el autocompletado inteligente, acelerando el proceso de creación de software. Herramientas como Github copilot, PolyCoder, Mutable.ai.
  • Depuración automatizada es otra área donde la IA destaca, permitiendo la detección rápida y precisa de errores, lo que mejora la calidad del código. Herramientas como Sonarqube, Tabnine,
  • Optimización de algoritmos, mejorando el rendimiento y la eficiencia del software mediante la optimización automática. Herramientas como Optuna, Google Vizier.
  • Pruebas automatizadas. La IAG puede generar casos de prueba de manera autónoma, basándose en patrones y datos históricos, lo que garantiza una cobertura de pruebas más amplia y eficiente. Estas pruebas generadas automáticamente se adaptan a los cambios en el código, reduciendo el esfuerzo manual y asegurando que las aplicaciones sean robustas y estén libres de errores antes de su despliegue. Herramientas como Testim.io, Mabl, Applitools.

Estas capacidades levantan pasiones y miedos, especialmente en torno a su impacto en el empleo. Recientemente “el CEO de Anthropic (Dario Amodei) predijo que, en 3 a 6 meses, la IA escribirá el 90% del código que tradicionalmente redactan los desarrolladores de software” (bastante exagerado a mi modo de ver).  Si bien es cierto que todas las revoluciones industriales han destruido empleos en el pasado, también han supuesto la generación de nuevas oportunidades. La clave para la supervivencia laboral en la era de la IAG es la adaptabilidad y la capacidad de aprovechar las nuevas herramientas. La realidad, es que serán aquellos que no logren adaptarse, y aprovechar las capacidades que ofrecen las herramientas de IAG, los que corran el riesgo de ser desplazados.  

Es difícil encontrar una tecnología que esté teniendo la repercusión e impacto que supone y supondrá la IAG en cualquier ámbito. La mayoría de los CEOs consideran que la IA es la tecnología que tendrá el impacto más significativo en sus industrias en los próximos tres años. Pero no debemos olvidar que no todo son grandes empresas, sobre todo en un país como España, y el uso de la IA sigue siendo un reto para las PYMEs y microempresas. Los datos del Instituto Nacional de Estadística muestran que el porcentaje de empresas que utilizan IA varía significativamente según el tamaño, siendo menor en las empresas más pequeñas, por debajo del 10%.

% empresas x tamaño que utiliza IA (2021-2023). Fuente: Instituto Nacional de Estadística

En él ámbito de desarrollo de software, al igual que pasa en otros sectores, la IAG es un arma de doble filo, aportando tanto ventajas como inconvenientes. Entre las ventajas se encuentran la aceleración del proceso de desarrollo, la detección temprana de errores, las sugerencias de optimización y el análisis de grandes volúmenes de datos. Sin embargo, también existen inconvenientes, como la falta de transparencia y explicabilidad, el riesgo asociado a la calidad de los datos (GIGO-«basura que entra, basura que sale»), la atrofia de capacidades por dependencia excesiva, los riesgos de seguridad, los problemas de calidad y fiabilidad del código, y los desafíos éticos y legales.

Ratios de Uso y Productividad de la IA Generativa por Desarrolladores

Los desarrolladores están adoptando la IA Generativa en sus procesos de desarrollo. Se estima que la IA Generativa puede acelerar el desarrollo de software entre un 35% y un 45%, y la refactorización y documentación también se benefician de aumentos de velocidad (fuente: estudio McKinsey 2024). Sin embargo, existen opiniones divididas sobre la IAG para la generación de código, y algunos desarrolladores reportan encontrar errores al usar IAG. En términos de productividad, algunos desarrolladores reportan incrementos significativos, mientras que otros no perciben un aumento. En general, si analizamos las estadísticas encontramos algunos datos contradictorios: si bien el 72% de los ingenieros usan IAG en su proceso de desarrollo, de los cuales 48% lo usan todos los días, esos mismos desarrolladores indican que la IAG no es buena para la generación de código (un 20%), que introduce errores (un 47%) y que no les la liberado tiempo (un40%) [datos de encuesta interna de BairesDev encuesta sobre 500 ingenieros. 2024]

No sólo en el ámbito de los programadores, sino que también a nivel directivo, los líderes empresariales, como los CEOs y CIOs, reconocen el gran impacto potencial de la IA, aunque también remarcan que existe una preocupación sobre si la IA está cumpliendo con el retorno de inversión (ROI) esperado. Un porcentaje significativo de CIOs (47%) afirma que la IA no ha cumplido el ROI esperado, lo que plantea interrogantes sobre la mejora real de la productividad (Fuente: Encuestas IA Gartner 2024).

¿A qué se debe esta situación? Realmente en el pasado ya se ha dado esta dicotomía entre expectativas y realidad en otros ámbitos. De hecho, en 1987 Robert Solow, escribió en el New York Times lo que acabamos conociendo como la paradoja de Solow: «Se pueden ver computadoras en todas partes, excepto en las estadísticas de productividad”, donde básicamente plantea que la productividad no se incrementa al ritmo esperado a pesar de las innovaciones tecnológicas. Esta paradoja se refleja también en el contexto de la IA Generativa, donde existe un exceso de expectativas no cumplidas. Los desafíos técnicos y organizacionales en la integración de la IA Generativa limitan su potencial y hacen que el valor realizable sea menor que el valor esperado.

En el ámbito del desarrollo de software, son varios los desafíos que afectan la productividad:

  • Problemas de medición. El desarrollo de software es una actividad intangible y compleja. Las métricas tradicionales como «líneas de código por día» o «puntos de historia completados» no reflejan completamente la productividad real y muchas métricas (como puntos función, historias de usuario, etc…) tienen un alto grado de subjetividad. Además, con la creciente importancia de la calidad del código, mantenibilidad y seguridad, medir la productividad únicamente en términos de cantidad es inadecuado.
  • Curva de aprendizaje. Las nuevas tecnologías y herramientas suelen requerir tiempo para ser adoptadas de manera efectiva. A corto plazo, la productividad puede incluso disminuir debido a la curva de aprendizaje y la necesidad de cambiar procesos.
  • Factores organizativos y culturales. La productividad en software no depende solo de la tecnología, sino también de la estructura organizativa, la colaboración entre equipos y la cultura corporativa. Muchas empresas implementan herramientas sin realizar cambios en la forma de trabajar, lo que limita, e incluso llega a impedir, los beneficios.
  • Ley de los rendimientos decrecientes. Algunas tareas del desarrollo de software pueden beneficiarse enormemente de la automatización (ejemplo: pruebas unitarias generadas por IA), pero otras siguen dependiendo del pensamiento humano, como el diseño de arquitectura, la toma de decisiones estratégicas o la resolución de problemas complejos.
  • Cambios en la naturaleza del trabajo. Las herramientas avanzadas pueden hacer que los desarrolladores se enfoquen más en la resolución de problemas complejos en lugar de escribir código repetitivo. Esto significa que el tiempo invertido en tareas visibles como «escribir código» disminuye, mientras que crece el esfuerzo en diseño, validación y coordinación.

Estos desafíos, y algunos otros, complican la mejora de la productividad y explican por qué las expectativas a menudo no se cumplen.

Otro aspecto muy a tener en cuenta es que la productividad con la IA Generativa está condicionada por la experiencia del trabajador y la complejidad de la tarea. Generalmente la IAG supone un incremento de productividad cuando es usada por perfiles junior en tareas simples. Los primeros estudios han demostrado que GenAI puede cerrar la brecha de productividad y permitir que los trabajadores con poca experiencia se vuelvan casi tan productivos como los trabajadores con mucha experiencia en la misma tarea o rol en un período de tiempo muy corto. Sin embargo, en tareas más complejas, es en los perfiles con más experiencia donde se puede experimentar un aumento de la productividad, mientras que los que tienen menos experiencia no perciben ese incremento. Cuando GenAI crea bloques importantes de código en el desarrollo de software, una persona debe revisar ese código y probablemente hacer cambios sin introducir nuevos fallos. Aquí es donde entra en juego la necesidad de una gran experiencia para aumentar la productividad.

Esta aproximación experiencia-complejidad lleva a que la IA Generativa tenga diferentes impactos en los desarrolladores según su nivel de experiencia. Los desarrolladores senior pueden mejorar su calidad y productividad al utilizar eficazmente las herramientas de IA, aunque corren el riesgo de fatiga y desconexión de la función, al convertirse en editores más que en escritores de código. Mientras que los desarrolladores junior pueden tener una mejora limitada y corren el riesgo de depender demasiado de la IA, lo que inhibe su desarrollo de habilidades, inhibiendo su capacidad de aprendizaje y limitando sus capacidades para convertirse en ingenieros senior.

El Futuro de los Ingenieros de Software con IA

El futuro de los ingenieros de software con IA implica una evolución continua. La experiencia humana sigue siendo fundamental, pero se requiere una mejora constante de habilidades para adaptarse a los cambios impulsados por la IA.

  • A corto plazo, la IA Generativa generará aumentos modestos de productividad, principalmente para desarrolladores senior.
  • A medio plazo, los agentes de IA transformarán los patrones de trabajo, dando lugar a la ingeniería de software nativa de IA.
  • A largo plazo, se necesitarán desarrolladores aún más capacitados para liderar la ingeniería de IA.

El despliegue exitoso de la IA Generativa en equipos de desarrollo requiere un enfoque en las personas, la adaptación de estructuras organizativas, y la necesidad de que los desarrolladores adquieran nuevas competencias digitales para gestionar eficazmente las herramientas de IA. Es crucial considerar la relación entre la experiencia y la complejidad de las tareas, y adaptar las estructuras organizativas y los programas de desarrollo profesional en consecuencia. Pero tampoco debemos olvidarnos de retos como la confianza en la calidad y precisión de los datos, la privacidad y seguridad de la información, la ética y responsabilidad en el uso de la IA.

En todo caso, también cabe recordar, a la hora de evaluar las mejoras de eficiencia que toda nueva tecnología supone que, según la paradoja de Jevons, “una mayor eficiencia conduce a una mayor demanda”. En el contexto del uso de la IAG en el desarrollo de software, es muy probable que la mayor eficiencia impulsada por la IA genere una mayor demanda de software y de ingenieros de software, en lugar de una menor (tal y como refleja diversas encuestas, como la del World Economic Forum Future of Works, donde se indica que los trabajos de “Software and Applications Developers” tendrán un crecimiento de más 5 millones de empleos en los próximos 5 años a nivel mundial).

Fuente: World Economic Forum. Future of jobs Report 2025. Fastest-growing jobs 205-2030

En conclusión, la IA en el desarrollo de software es una realidad con un enorme potencial, pero también plantea desafíos y requiere una adaptación continua. El futuro del desarrollo de software estará marcado por la colaboración entre humanos e IA, donde la experiencia humana seguirá siendo fundamental, pero se necesitarán nuevas habilidades y enfoques para aprovechar al máximo las capacidades de la IA.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *