Software
Inteligencia artificial
IA generativa

10 formas en que la IA generativa transformará el desarrollo de 'software'

La generación de código y los copilotos son sólo el principio de nuevas formas de desarrollar, probar, desplegar y mantener software basados en IA.

software
Créditos: Fotopoulos (Unsplash).

En los años 90, codificar significaba seleccionar un editor, comprobar el código en los repositorios CVS o SVN y, a continuación, compilar el código en ejecutables. Los entornos de desarrollo integrados (IDE) como Eclipse y Visual Studio mejoraron la productividad al incluir la codificación, el desarrollo, la documentación, la creación, las pruebas, la implantación y otros pasos del ciclo de vida del desarrollo de software (SDLC). La computación en la nube y las herramientas de automatización DevSecOps trajeron la siguiente ola de capacidades de los desarrolladores, facilitando a más organizaciones el desarrollo, despliegue y mantenimiento de aplicaciones.

La IA generativa es el catalizador del próximo cambio de paradigma y promete cambiar la forma en que las organizaciones crean y mantienen el software, además de permitir nuevas herramientas y paradigmas de desarrollo. Muchos desarrolladores y responsables de TI se preguntan si la IA supondrá la desaparición de la codificación tal y como la conocemos. Otra cuestión relacionada es cómo afectará a la evolución de SDLC y DevSecOps durante la próxima década. Con estas dos preguntas en mente, me puse a buscar ideas y predicciones.

 

¿Es la IA generativa una nueva herramienta o una nueva forma de desarrollar?  

"Soy un gran creyente en el código, y he visto a mucha gente apostar contra el código en mis 25 años de carrera, y siempre han perdido", dice Joe Duffy, CEO de Pulumi. "La IA automatizará y aumentará la codificación, no la sustituirá, elevando así el nivel de abstracción al que operamos los humanos, acelerando considerablemente la productividad y el rendimiento".

Este es un punto de vista. Para considerar otros, volví a los clásicos. 

En el libro clásico de Frederick Brooks sobre el desarrollo de software, The Mythical Man-Month, comparte un estudio sobre la productividad en el desarrollo de software que muestra que "los ratios entre los mejores y los peores rendimientos promediaban alrededor de 10:1 en las mediciones de productividad y un sorprendente 5:1 en las mediciones de velocidad y espacio del programa". En la edición del 20 aniversario del libro, publicada en 1995, vuelve a publicar el artículo de 1986 No Silver Bullet: Essence and Accidents of Software Engineering, en el que predecía que "en una década no veríamos ninguna técnica de programación que por sí sola aportara una mejora del orden de magnitud en la productividad del software".

Aún no sabemos si los copilotos y otras capacidades de codificación de IA generativa superarán estos puntos de referencia. 

"El ciclo de vida de la entrega de software se está viendo alterado por la IA generativa", afirma Ashish Kakran, director de Thomvest Ventures. "Los equipos Dev y DevOps se volverán más productivos con un mayor porcentaje de miembros del equipo que potencialmente lograrán resultados similares que los de diez ingenieros".

Ese aumento de la productividad y la democratización del conjunto de habilidades de desarrollo de software pueden ser posibles a medida que las capacidades de IA generativa maduren y los desarrolladores realineen sus responsabilidades. "Los copilotos en su forma actual son realmente sobre la productividad del desarrollador y la eliminación de ese trabajo manual", dice Ed Thompson, CTO de Matillion. "Aquellos que asumen que los copilotos ya han cambiado fundamentalmente el trabajo están trabajando en el supuesto incorrecto de que el trabajo de un desarrollador es escribir código: es resolver problemas".

 

10 formas en que la IA generativa transformará el desarrollo de software 

¿Cómo transformará la IA generativa el desarrollo de software en la próxima década? He aquí 10 predicciones: 

  1. La generación de código a partir de instrucciones en lenguaje natural será la norma
  2. La validación del código es una responsabilidad crítica del desarrollador
  3. La fabricación como nuevo paradigma de desarrollo 
  4. Menos codificación, pero mayores riesgos en la cadena de suministro de código 
  5. Los nuevos paradigmas aceleran la integración 
  6. Los desarrolladores como gestores de agentes de IA 
  7. La IA afecta a múltiples fases del SDLC 
  8. La IA generativa y el desarrollo humano se convierten en protagonistas
  9. La IA mejora las capacidades operativas en los procesos de desarrollo 
  10. Las organizaciones deben protegerse de los riesgos de la IA  

 

La generación de código a partir de instrucciones en lenguaje natural será la norma

 

Kaxil Naik, director de ingeniería de Airflow en Astronomer, afirma: "La codificación será más eficiente con código repetitivo generado por IA y copilotos asistidos por IA que traduzcan el lenguaje natural en código funcional, simplificando la comprensión de bases de código complejas y garantizando el cumplimiento de las mejores prácticas". 

La encuesta para desarrolladores 2023 de StackOverflow muestra que el 70% de los desarrolladores utilizan o tienen previsto utilizar herramientas de IA en su proceso de desarrollo. De los que ya utilizan IA en el desarrollo, más del 82% la utilizan para escribir código. Estas cifras sugieren un cambio de paradigma en la forma en que los desarrolladores crearán código, reutilizarán el código existente y construirán componentes. 

 

La validación del código es una responsabilidad crítica del desarrollador 

 

La posibilidad de hacer prompts para código añade riesgos si el código generado tiene problemas de seguridad, defectos o introduce problemas de rendimiento. La esperanza es que si la codificación es más fácil y rápida, los desarrolladores dispondrán de más tiempo, responsabilidad y mejores herramientas para validar el código antes de incorporarlo a las aplicaciones. Pero, ¿sucederá esto?

"A medida que los desarrolladores adoptan la inteligencia artificial para aumentar su productividad, se les exige la responsabilidad de comprobar minuciosamente lo que produce", afirma Peter McKee, responsable de relaciones con los desarrolladores de Sonar. "Clean as you code garantiza que, mediante la realización de comprobaciones y la supervisión continua durante el proceso de entrega, los desarrolladores puedan dedicar más tiempo a nuevas tareas en lugar de remediar errores en el código creado por humanos o generado por IA". 

Los CIO y CISO esperarán que los desarrolladores realicen más validación de código, especialmente si el código generado por IA introduce vulnerabilidades significativas. "Si los desarrolladores no implementan la automatización para escanear y monitorear el código generado por IA, significa exponencialmente más código para arreglar y más deuda tecnológica", agrega McKee.

 

La fabricación como nuevo paradigma de desarrollo 

 

Una cuestión sobre el uso de herramientas de IA generativa para desarrollar código es cómo afectará a las herramientas y estándares de las grandes organizaciones con muchos equipos de desarrollo que dan soporte a miles de aplicaciones. ¿Cómo será el desarrollo en las grandes organizaciones si los desarrolladores escriben menos código pero integran más código desarrollado con IA generativa? 

"La mezcla de herramientas entre equipos da como resultado una falta de estándares y una incorporación compleja, por no mencionar que aumenta la carga cognitiva de los desarrolladores", afirma Markus Eisele, estratega y evangelista de herramientas para desarrolladores en Red Hat. "Una mezcla de buenas prácticas combinada con un acceso sencillo a través de portales centralizados para desarrolladores está aquí para cambiar esta situación. Si a esto se añaden las capacidades enriquecidas de una plataforma de aplicaciones, se puede eliminar la fricción y ayudar a aplicar las mejores prácticas más allá de los límites del equipo".

La consecuencia es que los entornos de desarrollo integrados (IDE, por sus siglas en inglés) pueden convertirse en plataformas de ensamblaje similares al diseño asistido por ordenador (CAD) en la fabricación o al modelado de información de edificios (BIM) en la construcción. Se pasa de construir componentes a medida a ensamblar otros preexistentes y aprovechar las herramientas integradas para validar el diseño.  

 

Menos codificación, pero mayores riesgos en la cadena de suministro de código 

 

Otra implicación del código desarrollado con IA generativa afecta al modo en que los responsables de las empresas desarrollan políticas y supervisan la cadena de suministro del código que se incorpora a las aplicaciones empresariales. Hasta ahora, las organizaciones estaban más preocupadas por el seguimiento de los componentes de software comercial y de código abierto, pero la IA generativa añade nuevas dimensiones. 

"Los profesionales de DevOps desempeñarán un papel importante en el mantenimiento y la gestión de la cadena de suministro de la IA: la seguridad, la autenticidad y los orígenes de los modelos basados en IA se someterán a un mayor escrutinio en las operaciones diarias de una empresa", afirma Ilkka Turunen, Field CTO de Sonatype. "Implementar una estrategia que evalúe el riesgo de IA y gestione adecuadamente la lista de materiales de un modelo de IA ayudará a garantizar una higiene y gestión adecuadas de la IA en toda la infraestructura DevOps de cualquier organización". 

Espere que SAST, DAST y otras herramientas de seguridad y gestión de código aumenten las capacidades de automatización de escaneo de código y ayuden a validar si el código de IA generativa cumple con las políticas antes de que los desarrolladores integren el código en los repositorios empresariales. 

 

Los nuevos paradigmas aceleran la integración 

 

Los desarrolladores pueden esperar nuevas capacidades en las integraciones, que ya han visto órdenes de magnitud de capacidades mejoradas en la última década a través de API, plataformas de integración SaaS IFTTT, plataformas de integración como servicio (iPaaS) y otras tecnologías del ecosistema. Dicho esto, los desarrolladores siguen realizando mucho trabajo para mapear los campos de datos, codificar la lógica de transformación, garantizar la fiabilidad y ajustarse a las consideraciones de rendimiento. 

Emmanuel Cassimatis, del equipo de IA e Innovación de SAP, afirma: "Cuando se trata de integración, el ciclo de vida del desarrollo ha estado históricamente bastante fragmentado en sus diferentes pasos, desde el diseño, la construcción, las pruebas, la integración, el despliegue, la entrega y la revisión. La IA puede permitir la unificación mediante la obtención de una imagen a partir de datos de diferentes aplicaciones, lo que se traduce en una mayor colaboración entre desarrolladores".  

Es sólo cuestión de tiempo que los desarrolladores utilicen la IA generativa para construir integraciones sin código y autorreparables, con requisitos en lenguaje natural y flujos visuales autogenerados. 

 

Los desarrolladores como gestores de agentes de IA 

 

Phillip Carter, principal responsable de producto de Honeycomb, cree que la IA generativa transformará las tareas que los desarrolladores y los ingenieros de control de calidad realizarán en el futuro. "En un futuro potencialmente lejano, es probable que el lenguaje natural guíe más la generación de código y las pruebas que verifican el código generado. Si vemos otro cambio masivo en las capacidades de la IA como el transformador, podemos esperar que los agentes de la IA hagan la mayor parte de este trabajo, con los desarrolladores programando objetivos y restricciones para que estos agentes los sigan". 

Carter continúa con una audaz predicción: "Con una nueva transformación que ponga a la IA al timón, es posible que los agentes programados puedan analizar el comportamiento del tiempo de ejecución para tareas de control de calidad, observabilidad y seguridad con el fin de comprobar incógnitas conocidas, algo en lo que a menudo se atascan los desarrolladores".

Esta predicción me parece interesante, ya que implica que los desarrolladores e ingenieros ascenderán por la pila para definir los requisitos de arquitectura, no funcionales y operativos, orientando la IA generativa hacia el desarrollo y las pruebas en lugar de escribir código y automatizar las pruebas. 

Carter no cree en un futuro sin desarrolladores y continúa: "Los humanos permanecerían en el bucle en todo momento, preocupados más por los objetivos, las limitaciones y el análisis de circunstancias únicas". 

 

La IA afecta a múltiples fases del SDLC 

 

Aunque los copilotos y muchas herramientas de IA generativa se centran hoy en la codificación, es de esperar que las nuevas capacidades transformen otras fases y responsabilidades del SDLC. Humberto Moreira, ingeniero principal de soluciones en Gigster, dice: "A medida que evolucionan las mejores prácticas para incorporar la IA generativa en el SDLC, diferentes modelos podrían funcionar mejor para fases particulares del ciclo, por ejemplo, un modelo optimizado para requisitos, otro para desarrollo de código y otro para los controles de calidad [QA, por sus siglas en inglés]". 

El cambio de paradigma de la IA generativa ya está afectando a los controles de calidad, ya que las herramientas permiten casos de prueba más sólidos y una retroalimentación más rápida sobre los cambios de código.

"Con el auge de la IA, creo que un aspecto menos discutido es cómo todas las instalaciones en torno a la codificación serán testigos de un cambio radical", dice Gilad Shriki, cofundador de Descope. "Es cuestión de tiempo que los kit de desarrollo de software [SDK, por sus siglas en inglés], las pruebas y la documentación sean generados o asistidos por IA, lo que significa que los desarrolladores necesitarán codificar y documentar su trabajo en formatos específicos consumibles por IA".

La última predicción de Shriki sugiere que los desarrolladores quizá tengan que ajustar su lenguaje, de forma similar a como las personas deben aprender a hablar el idioma que los asistentes virtuales están programados para comprender. Espero que esta predicción no se haga realidad, porque podría significar que la IA generativa sólo ofrezca comodidades y no necesariamente mejoras de productividad o calidad. 

 

La IA generativa y el desarrollo humano se convierten en protagonistas

 

El papel de la IA generativa en el desarrollo de software podría separarse de las funciones y responsabilidades que actualmente tienen los desarrolladores humanos. Los generadores de código, los compiladores y otras herramientas de desarrollo servirían tanto a los humanos como a las máquinas. 

"Lo interesante es que creo que podría acabar existiendo una nueva visión del código: una visión es la visión humana tradicional del código, la que los desarrolladores están entrenados y acostumbrados a leer y escribir, pero luego hay una segunda visión, algo oculta, que es la visión defensiva, optimizada para la seguridad de la IA", dice Dustin Kirkland, vicepresidente de ingeniería de Chainguard. "Esta visión es menos legible por los humanos pero perfectamente legible por compiladores e intérpretes, y de esta forma, se convierte en otro formato intermedio para el código".

La cuestión es si las visiones alternativas mejorarán la capacidad del aprendizaje automático para identificar defectos, problemas de seguridad y otros problemas con mayor precisión y eficacia. 

 

La IA mejora las capacidades operativas durante el proceso de desarrollo 

 

Cody De Arkland, director de experiencia del desarrollador en LaunchDarkly, sugiere casos de uso en los que la IA generativa puede ayudar a mejorar la fiabilidad y las operaciones de las aplicaciones. "Podemos ver los primeros signos de cómo las herramientas de desarrollo aprenderán de las interacciones, y la clave será la asistencia intuitiva".

De Arkland sugiere estos ejemplos:

  • Desarrollar componentes de aplicaciones web que se ajusten a las normas de diseño aprendidas. 
  • Crear el indicador de función cuando detecte que un desarrollador está creando una nueva función. 
  • Poner en marcha el despliegue de un nuevo software (CI/CD), pero también hacerlo retroceder cuando detecte problemas.
  • Habilitar bucles de retroalimentación en tiempo real para el control de calidad a partir de ejecuciones personalizadas en lugar de posteriores a la implantación. 

Estas ideas plantean la cuestión de qué capacidades de la próxima generación de DevOps y SRE serán habilitadas o aumentadas por IA generativa

 

Las organizaciones deben protegerse de los riesgos de la IA 

 

Una última predicción se refiere a los riesgos de exponer la IA generativa a la propiedad intelectual de la organización, incluidos el código y los datos. A medida que la IA generativa permita nuevas capacidades en todo el SDLC, habrá nuevas preguntas sobre si los beneficios superan a los riesgos. 

"A medida que trabajamos hacia la visión de un proceso de desarrollo de software habilitado para IA de extremo a extremo, los profesionales de la tecnología en todos los ámbitos quieren asegurarse de que cualquier código generado sea de la más alta calidad y no perjudique la fiabilidad general o la capacidad de mantenimiento de la aplicación", dice Brandon Jung, vicepresidente de desarrollo de ecosistemas y negocios en Tabnine. "Con un ojo agudo en los datos que van al modelo -tanto los tuyos como el conjunto de entrenamiento- tómate el tiempo y el esfuerzo para evaluar, seleccionar e implementar AI de manera que proteja tus políticas y activos más valiosos: tu código y tus datos". 

La cuestión es si los algoritmos de IA generativa y las herramientas que los hacen posibles crearán salvaguardas para proteger los activos de la empresa y en qué medida estas protecciones dependerán también de las capacidades de IA generativa

Aunque aún estamos en los inicios de la era de IA generativa de desarrollo de software, cada vez está más claro que la generación de código y los copilotos son sólo el principio de las nuevas formas de desarrollar, probar, desplegar y mantener software basados en IA. 



Contenido Patrocinado

Forma parte de nuestra comunidad

 

¿Te interesan nuestras conferencias?

 

 
Cobertura de nuestros encuentros
 
 
 
 
Lee aquí nuestra revista de canal

DealerWorld Digital