Las empresas que utilizan inteligencia artificial para generar código están experimentando tiempos de inactividad y problemas de seguridad. El equipo de Sonar, un proveedor de productos de seguridad y calidad de código, ha escuchado historias de primera mano de interrupciones constantes incluso en instituciones financieras importantes donde los desarrolladores responsables del código culpan a la IA.
Entre muchas otras imperfecciones, las herramientas de inteligencia artificial no son perfectas para generar código. Los investigadores de la Universidad Bilkent descubrieron que las últimas versiones de ChatGPT, GitHub Copilot y Amazon CodeWhisperer generaron código correcto sólo el 65,2%, 46,3% y 31,1% de las veces, respectivamente.
Parte del problema es que la IA es notoriamente mala en matemáticas porque le cuesta entender la lógica. Además, los programadores no son conocidos por ser buenos escribiendo indicaciones porque “la IA no hace las cosas de manera consistente ni funciona como código”, según el profesor de IA de Wharton, Ethan Mollick.
VER: OpenAI presenta el modelo ‘Strawberry’, optimizado para codificación compleja y matemáticas
¿Podrían las “revisiones insuficientes” ser un factor?
A finales de 2023, más de la mitad de las organizaciones dijeron que encontraron problemas de seguridad con un código deficiente generado por IA “a veces” o “con frecuencia”, según una encuesta de Snyk. Pero el problema podría empeorar, ya que el 90% de los ingenieros de software empresarial utilizarán asistentes de código de IA para 2028, según Gartner.
Tariq Shaukat, director ejecutivo de Sonar y ex presidente de Bumble y Google Cloud, ya “escucha más y más sobre esto”. Le dijo a TechRepublic en una entrevista: “Las empresas están implementando herramientas de generación de código de IA con más frecuencia y el código generado se está poniendo en producción, lo que provoca interrupciones y/o problemas de seguridad.
“En general, esto se debe a revisiones insuficientes, ya sea porque la empresa no ha implementado prácticas sólidas de calidad y revisión de código, o porque los desarrolladores están examinando el código escrito por IA menos de lo que examinarían su propio código.
“Cuando se les pregunta acerca de la IA con errores, un estribillo común es ‘no es mi código’, lo que significa que se sienten menos responsables porque no lo escribieron”.
VER: El 31% de las organizaciones que utilizan IA generativa le piden que escriba código (2023)
Hizo hincapié en que esto no se debe a falta de cuidado por parte del desarrollador, sino más bien a una falta de interés en la “edición de código” además de que los procesos de control de calidad no están preparados para la velocidad de adopción de la IA.
El efecto “laissez-faire”
Además, un estudio de 2023 de la Universidad de Stanford que analizó cómo los usuarios interactúan con los asistentes de código de IA encontró que quienes los usan “escribieron un código significativamente menos seguro” pero tenían “más probabilidades de creer que escribieron un código seguro”. Esto sugiere que simplemente usando herramientas de inteligencia artificial, los programadores adoptarán automáticamente una actitud más laissez-faire al revisar su trabajo.
Es parte de la naturaleza humana sentirse tentado por un atajo más fácil, particularmente cuando estamos bajo presión de un gerente o un cronograma de lanzamiento, pero confiar plenamente en la IA puede tener un impacto en la calidad de las revisiones del código y en la comprensión de cómo el código interactúa con una aplicación.
La interrupción de CrowdStrike en julio puso de relieve cuán generalizada puede ser la interrupción si falla un sistema crítico. Si bien ese incidente no estuvo específicamente relacionado con el código generado por IA, la causa de la interrupción fue un error en el proceso de validación, que permitió que se implementaran “datos de contenido problemáticos”. Esto demuestra la importancia del elemento humano a la hora de examinar contenidos críticos.
Los desarrolladores tampoco desconocen los posibles peligros del uso de la IA en su trabajo. Según un informe de Stack Overflow, solo el 43% de los desarrolladores confía en la precisión de las herramientas de IA, solo un 1% más que en 2023. El índice de preferencia de la IA entre los desarrolladores también cayó del 77% el año pasado al 72% este año.
Pero, a pesar del riesgo, los departamentos de ingeniería no se han disuadido de las herramientas de codificación de IA, en gran parte debido a los beneficios de eficiencia. Una encuesta de Outsystems encontró que más del 75% de los ejecutivos de software redujeron su tiempo de desarrollo hasta a la mitad gracias a la automatización impulsada por la IA. También hace más felices a los desarrolladores, dijo Shaukat a TechRepublic, porque dedican menos tiempo a tareas rutinarias.
¿Qué es la “rotación de código”?
El ahorro de tiempo derivado del aumento de la productividad podría compensarse con el esfuerzo necesario para solucionar los problemas causados por el código generado por IA.
Los investigadores de GitClear inspeccionaron 153 millones de líneas de código escritas originalmente entre enero de 2020 y diciembre de 2023 (cuando se disparó el uso de asistentes de codificación de IA) que habían sido alteradas de alguna manera. Observaron un aumento en la cantidad de código que debía corregirse o revertirse menos de dos semanas después de su creación, lo que se conoce como “cambio de código”, lo que indica inestabilidad.
Los investigadores proyectan que los casos de rotación de código se duplicarán en 2024 con respecto a la línea de base anterior a la IA de 2021 y que más del 7% de todos los cambios de código se revertirán en dos semanas.
Además, dentro del periodo de estudio, el porcentaje de código copiado y pegado también aumentó notablemente. Esto va en contra del popular mantra “DRY” o “No te repitas” entre los programadores, ya que el código repetido puede generar un mayor mantenimiento, errores e inconsistencia en una base de código.
Pero, en cuanto a si las operaciones de limpieza están anulando los ahorros de tiempo de productividad asociados con los asistentes de código de IA, Shaukat dijo que es demasiado pronto para decirlo.
VER: Principales herramientas de seguridad para desarrolladores
“Nuestra experiencia es que los desarrolladores típicos aceptan sugerencias de los generadores de código aproximadamente el 30% del tiempo. Eso es significativo”, afirmó. “Cuando el sistema está diseñado correctamente, con las herramientas y los procesos adecuados, cualquier trabajo de limpieza es manejable”.
Sin embargo, los desarrolladores aún deben ser responsables del código que envían, especialmente cuando se utilizan herramientas de inteligencia artificial. Si no es así, es cuando el código que causa el tiempo de inactividad se escapará.
Shaukat dijo a TechRepublic: “Los directores ejecutivos, CIO y otros líderes corporativos deben analizar sus procesos a la luz del mayor uso de la IA en la generación de código y priorizar la adopción de las medidas de seguridad necesarias.
“Cuando no puedan, verán interrupciones frecuentes, más errores, una pérdida de productividad de los desarrolladores y mayores riesgos de seguridad. Las herramientas de IA deben ser confiables y verificadas”.