La IA generativa ha allanado el camino para una nueva ola de innovaciones capaces de hacerse cargo de muchos de los aspectos tediosos, manuales y lentos del desarrollo y la entrega de software y, como resultado, acelerar los flujos de trabajo de DevSecOps. Sin embargo, para aprovechar todo el potencial de la IA generativa, esta tecnología no debe limitarse a la creación de código. Al contrario, debe integrarse en todo el proceso de desarrollo de software.
Según nuestra encuesta de 2024 a más de 5000 profesionales de DevSeOps, los desarrolladores dedican menos del 25 % de su tiempo a crear código. (Disponible en inglés) Entre la primera confirmación y el paso a producción, hay que realizar muchas otras tareas, que podrían beneficiarse del poder de la IA.
La IA se puede infundir en cada etapa para ayudar a guiar el software desde la idea hasta la entrega, creando un software mejor y más seguro con mayor rapidez. Por ejemplo, una tarea tan trivial como examinar una compilación fallida se puede optimizar mediante el uso de IA para evaluar qué salió mal y cómo solucionarlo. Si bien la IA no elimina la tarea, puede ayudar a reducir el número de pasos y el tiempo necesario para completarlos.
Estas son las medidas que su equipo de DevSecOps puede tomar para comprender y medir el impacto de la IA generativa.
Comience con una evaluación de sus flujos de trabajo
Debe realizar un trabajo inicial para comprender en profundidad el impacto de la IA, como revisar sus flujos de trabajo. Identifique el flujo de trabajo ideal que puede poner en marcha para unificar la forma en que utiliza la IA y establezca medidas de protección adecuadas para reducir los riesgos que la IA podría introducir.
Por ejemplo, si su equipo escribe código con IA generativa, parte de ese código generado podría incluir vulnerabilidades de seguridad. Todo es parte del proceso. Por lo tanto, necesitará un flujo de trabajo para detectar esas vulnerabilidades y reducir la posibilidad de que lleguen a producción. Una vez establecido el flujo de trabajo, puede comenzar a introducir diferentes funcionalidades de IA de una manera más coherente, lo que aumentará la velocidad de desarrollo.
Este es un ejemplo de cómo una evaluación inicial de su flujo de trabajo puede permitirle aprovechar mejor las ventajas que ofrece la IA. La IA puede crear automáticamente pruebas por usted, pero no es aconsejable que lo haga después de haber creado el código. Los desarrolladores no forman parte del equipo de control de calidad porque solo prueban lo que ellos mismos han escrito. La IA generativa funciona del mismo modo. Una prueba generada por IA debe contar con un flujo de trabajo definido para que los desarrolladores puedan utilizar la información contenida en los tickets para generar de manera interactiva pruebas unitarias para el código que desean escribir. Primero se pueden crear las solicitudes de fusión en las que se realiza la prueba. Esto hace que las sugerencias de código sean más sólidas cuando se realiza un pull de la rama para su implementación, porque el contexto ahora incluye las pruebas adecuadas y se obtendrán más respuestas que si se hubiera empezado directamente con el código.
No puede reorganizar todos sus flujos de trabajo a la vez. Concéntrese en aquellos que estén relacionados con sus principales desafíos de desarrollo y entrega de software, como la modernización de bases de código heredadas, la gestión de un mayor número de tickets de seguridad o la adaptación a presupuestos y cantidad de empleados cada vez más limitados.
Establezca medidas de protección para la IA
También debe tener en cuenta el riesgo que plantea la IA en términos de los datos con los que interactúa. Asegúrese de establecer medidas de protección para mitigar ese riesgo y satisfacer sus necesidades específicas de cumplimiento. Es recomendable que analice los modelos de IA que utiliza, su acceso a las bases de datos de vectores y los métodos para entrenar modelos de lenguaje grande (LLM).
Tendrá que reunir a sus equipos jurídicos, de cumplimiento y de DevSecOps para plantear a sus proveedores de IA preguntas difíciles sobre estos temas. Brindamos información úil en el AI Transparency Center de GitLab y en nuestro artículo del blog sobre cómo crear una estrategia de IA que priorice la transparencia.
Otra medida de protección fundamental es la limitación de la cantidad de herramientas de IA independientes que se utilizan a lo largo del ciclo de desarrollo de software y en toda su organización. Cuantas más herramientas se utilicen, más complejidad se introducirá. Esto podría causar problemas operativos, desafíos de supervisión y plantear riesgos de seguridad. Además, el uso de varias herramientas también aumenta los gastos generales.
Mida el impacto de la IA
Medir los cambios en la productividad y otras métricas clave es fundamental para comprender plenamente el impacto de la IA en su organización. Por lo general, las organizaciones se interesan por la frecuencia con la que se envía el código a producción, las cuatro métricas DORA o el tiempo que se tarda en corregir los errores. Sin embargo, estos indicadores no ofrecen una visión global.
En GitLab, estandarizamos los flujos de trabajo dentro de nuestra estructura jerárquica de grupos y proyectos para medir el impacto de la IA. Esto significa que podemos pasar métricas de los equipos a las unidades de negocio y analizar esos resultados directamente en la interfaz de usuario.
Cuando se implementa la IA en esta estructura, observamos un aumento de la velocidad, incluido el tiempo que se tarda en resolver las vulnerabilidades y validar los revisores y las pruebas para las solicitudes de fusión, lo que a su vez acelera el proceso de revisión del código. Puede ver todas las etapas en GitLab, incluidas las dependencias, y el tiempo que tarda el equipo de desarrollo en completar cada una. Los paneles ilustran esa velocidad y facilitan el ajuste de la estrategia en función de los datos. Por ejemplo, puede decidir si desea lanzar software a producción o no.
Usos prácticos para un asistente de IA en el SDLC
Estas son algunas formas prácticas de utilizar asistentes de IA como GitLab Duo a lo largo del ciclo de desarrollo de software.
-
Redacción de descripciones de solicitudes de fusión: automatice la creación de descripciones completas de solicitudes de fusión para capturar de forma rápida y precisa la esencia de la cadena de confirmaciones de una solicitud de fusión. La IA también puede identificar las tareas que faltan basándose en el código escrito y en la intención del ticket vinculado a la solicitud de fusión.
-
Explicación del código en lenguaje natural: los evaluadores de garantía de calidad pueden utilizar las explicaciones del código para comprenderlo de forma rápida y sencilla. Por ejemplo, si una solicitud de fusión incluye código escrito en Rust y un conjunto complejo de métodos, el evaluador de garantía de calidad puede seleccionar los métodos y recibir una explicación en lenguaje natural del propósito de la modificación. Esto le permite al evaluador de control de calidad escribir casos de prueba más adecuados que cubran no solo el funcionamiento correcto, sino también los posibles problemas.
-
Análisis de causa raíz de los errores de pipelines: si los pipelines en los que trabaja son cada vez más grandes e intenta refactorizar el código, podría romper algo. Esto puede ser difícil de solucionar, sobre todo si está ejecutando una serie de scripts de bash o una imagen de Docker desde los comandos internos de la imagen. Puede ejecutar los errores que reciba a través de la IA generativa. Esta le proporcionará una posible causa raíz y le recomendará una solución que puede copiar y pegar directamente en su trabajo de CI.
-
Resolución de vulnerabilidades: cuando se aplica la metodología de prueba shift left a la seguridad a toda prisa, los equipos de ingeniería tienen que convertirse rápidamente en expertos en seguridad. Gracias a la IA generativa, los ingenieros pueden acceder al chat para averiguar cuál es la vulnerabilidad, en qué parte del código se encuentra e incluso abrir una solicitud de fusión automatizada con una posible solución. Todas estas acciones se realizan en la ventana de desarrollo, sin tener que cambiar de contexto.
GitLab Duo: su solución integral para obtener funcionalidades de IA generativa de alto impacto
Estamos creando GitLab Duo, nuestro creciente conjunto de herramientas de funcionalidades de IA para la plataforma de DevSecOps, a partir de potentes modelos de IA generativa y tecnologías de vanguardia de proveedores de hipernube. Actualmente, GitLab Duo ofrece funcionalidades en las fases de disponibilidad general, beta y experimental, que van desde un asistente de código hasta un chat conversacional y explicaciones sobre vulnerabilidades. Cuando se utiliza de manera coherente a lo largo del ciclo de desarrollo de software, GitLab Duo permite aumentar 10 veces la velocidad del ciclo de vida. Como resultado, las empresas pueden hacer más con recursos limitados, y los empleados pueden centrarse en tareas de mayor valor.
El informe Omdia Market Radar: AI-Assisted Software Development, 2023–24 considera que GitLab Duo es uno de los productos «más adecuados para el desarrollo de aplicaciones de calidad profesional». La firma de análisis destaca que su «asistencia impulsada por IA se integra en todo el pipeline del SDLC».
Eche un vistazo a las funcionalidades de GitLab Duo en acción:
La madurez de la IA en el enfoque de DevSecOps
Lea los resultados de la encuesta de más de 5000 profesionales de DevSecOps en todo el mundo para obtener información sobre cómo las organizaciones están incorporando la IA en el ciclo de desarrollo de software (disponible en inglés).
Leer el informe