Rymden - stock.adobe.com

Los usuarios finales pueden codificar con IA, pero el departamento de TI debe ser cauteloso

La escala y la velocidad de la codificación para IA generativa, conocida como vibe coding, son poderosas, pero los usuarios podrían estar aplicando incorrectamente esta tecnología y creando problemas de eficiencia y seguridad.

Aunque la mayor parte de mi vibe coding –un término que no me encanta– ha girado en torno a mis pasatiempos, una buena parte es para respaldar proyectos relacionados con el trabajo.

De hecho, mi colega Tyler Shields escribió sobre su experiencia con el vibe coding (programación según la “vibra”) y cómo la utilizó para crear una herramienta que le facilita el trabajo diario. Aunque en aquel momento no conocía el término, describe mucho de lo que he estado haciendo desde que la IA generativa (IAGen) se popularizó.

Escribí un poco sobre esto en los primeros días de IAGen, y nuevamente cuando cambié de Mac a Windows durante unos meses, pero he adquirido mucha más experiencia desde entonces.

¿Qué necesitan saber las organizaciones sobre la vibe coding?

Pensé en compartir algunas reflexiones sobre temas de vibe coding que siguen surgiendo:

  • Puede ser realizado literalmente por cualquier persona.
  • El código escrito por IA puede ser funcional, pero no necesariamente eficiente.
  • Probablemente tampoco sea seguro.
  • Se necesita supervisión por parte de la dirección.

Estos me llaman la atención porque investigaciones recientes muestran que, al menos el 92 % de las organizaciones han implementado o planean implementar chatbots de IA y Microsoft Copilot; herramientas de generación de código asistidas por IA; software integrado con IA, como Office 365 o Canva; o plataformas de atención al cliente optimizadas con IA. Con estas altas cifras de adopción, creo que estamos al principio de este debate, no al final.

No necesita una herramienta de programación asistida por IA para escribir código. Copilot y los chatbots de IA también pueden hacerlo y sugerirlo incluso sin que el usuario lo busque. A menudo, ofrecerá una respuesta simple como: "No puedes hacerlo así de rápido, pero puedo escribir algo para ti y mostrarte cómo ejecutarlo".

La vibe coding puede ser realizada literalmente por cualquiera

Si analizamos con detenimiento qué es vibe coding –además de ser un término que ya estoy aprendiendo a odiar– es mucho más que programación asistida por IA. Cualquiera puede conceptualizar algo y producir una prueba de concepto en cuestión de minutos. Tomemos, por ejemplo, mi experiencia con Teddy Ruxpin.

El cuento de Teddy Ruxpin

Teddy Ruxpin es un oso robot que leía libros usando una cinta de casete que se insertaba en su lomo. Uno de los canales estéreo contenía el audio que escuchaba, y el otro contenía comandos digitales modulados en una señal de audio analógica que indicaba cómo moverse a los motores en el oso.

Quería que Teddy respondiera a mi propia voz, así que pasé semanas y semanas aprendiendo los entresijos, no solo de la modulación por posición de pulso –la estructura de comandos digitales–, sino también de cómo escribir ese código en Python. Ahora se llama T-Rux y está en GitHub.

Lo primero que le pregunté a ChatGPT fue: "¿Cómo puedo usar Python para controlar un Teddy Ruxpin con mi propia voz?". En 15 segundos obtuve la respuesta, que era terriblemente parecida a lo que me llevó semanas diseñar.

Desde entonces he utilizado IA para ayudar; es decir, la IA realizó el 99,99 % de la codificación en una serie de proyectos, como los siguientes:

  • Una radio FM con cambio de horario llamada RadioSHIFT.
  • "Aplicaciones" AutoHotKey para replicar el comportamiento de la aplicación Alfred  de Mac en Windows.
  • Plugins de Obsidian para hacer mi experiencia similar a Evernote y agregar funcionalidades que siempre quise tener, pero que no existen.
  • Un número incontable de scripts para realizar tareas individuales, como agregar un marco que incluye el nombre de archivo de un video al comienzo de una carpeta de videos de VHS importados, o convertir encabezados de documentos de Word en diapositivas de PowerPoint para visualizar mejor los contenidos.

De hecho, los complementos de Obsidian fueron el catalizador de este artículo de opinión.

No me propuse crear un plugin; simplemente le pregunté a Claude si conocía algún plugin con la funcionalidad que buscaba. Sugirió algunas cosas, y cuando le dije que no servirían, respondió que podía crear un plugin. Momentos después, tenía mi primer plugin de Obsidian. No era perfecto, y me tomó varios intentos lograrlo, pero en pocas horas tuve algo perfecto. Bueno, casi perfecto, lo que me lleva al siguiente punto.

El código escrito por IA puede ser funcional, pero no necesariamente eficiente

El plugin de Obsidian en cuestión era sencillo. Quería una forma de usar abreviaturas para indicar acciones desde las notas. Uso "//" para esto en mis notas, pero tengo que escanearlas después para encontrar las acciones. Quería que Obsidian reconociera automáticamente las líneas que empezaban con // y, si existían, creara una sección de Acciones en la parte superior de la página con una lista con viñetas de esas líneas.

Lo que finalmente se escribió era funcional, pero mientras conversaba con Claude y ChatGPT, descubrí que implementaba un mecanismo de limitación. Cuando pregunté por qué lo usaba, me dijeron algo así como "porque revisa todo el documento para ver si existe //, y eso puede consumir mucha CPU, así que la limitación significa que esto solo ocurre cada 150 ms".

Plop.

El código escrito para determinar si una línea empieza por "//" escaneaba todo el documento cada 150 ms, buscando instancias de esa pulsación. ¿Qué tan ineficiente es eso? Considerando los 1,8 millones de milisegundos que requiere una reunión de media hora, ¡mi pequeño plugin escaneó esa nota 12 mil veces!

Si no hubiera presionado a la IA sobre esto, el proceso habría continuado. Terminé preguntándole por qué no se centraba en los dos primeros caracteres de una línea e ignoraba los espacios en blanco. Analizó el cambio, lo aceptó, reescribió el módulo y ahora tengo algo más eficiente.

El problema es que, si no hubiera sabido plantearle esa pregunta, junto con algunos conceptos de programación muy rudimentarios, me habría encontrado con un plugin muy ineficiente. Uno solo podría no ser un problema, pero varios procesos ineficientes pueden acumularse, y lo harán. Esto ocurre en todos los proyectos de programación asistida por IA que he realizado, que son para cosas relativamente pequeñas, no para aplicaciones empresariales comerciales o internas. Estos problemas también parecen agravarse con chats más largos y proyectos más grandes, algo que los usuarios finales podrían desconocer.

Parece que la codificación asistida por IA aún no es una solución lista para usar. Y tratarla así consumirá recursos. Quizás, peor aún, también podría perjudicar la seguridad de toda la organización.

El código asistido por IA podría no ser seguro

Dado su objetivo general de proporcionar la funcionalidad solicitada y nada más, la seguridad también es fundamental en este tipo de programación. No es un tema que yo cubra, pero es evidente que el código generado por IA no se esfuerza demasiado para prevenir las vulnerabilidades de race condition. En la práctica, solo les pone curitas, y probablemente tampoco tomará medidas para escribir teniendo en mente la seguridad.

Esto podría deberse al prompting o al uso de lenguajes específicos de dominio diseñados como asistentes virtuales de programación. Sin embargo, tras haber usado tanto GitHub Copilot como Cursor, puedo afirmar con sinceridad que estas ineficiencias persisten. Además, hablamos de usuarios finales, no de desarrolladores, aunque sospecho que esto también aplica a ellos.

A riesgo de generar miedo innecesario, simplemente busque ChatGPT en la tienda de aplicaciones de su teléfono y verá docenas de aplicaciones de IA que no son de OpenAI. Estas aplicaciones pueden usar ChatGPT en el backend, pero también son un intermediario que hace algo con sus datos. Un informático o un desarrollador podría saber que debe tener cuidado con esto, y una política corporativa de IA podría advertir a la gente contra este tipo de cosas, pero, ¿sabría un usuario normal si estuviera "escribiendo" código con contenido malicioso?

¿Y qué pasa con el código que envía datos entre diferentes fuentes? ¿Pueden los usuarios verificar que se hace de forma segura?

Por el momento, considero que el código generado por IA aún requiere de un desarrollador. Es más, requiere a alguien con habilidad en prompting para garantizar que el código se escriba de forma segura, eficiente y funcional.

El vibe coding requiere supervisión, al menos por ahora

Dado el estado actual de vibe coding, y lo fácil que es para cualquiera hacer esto, no puedo evitar preguntarme qué implicaciones tiene esto para la gestión y la seguridad del usuario final. Gran parte de lo que he mencionado aquí se refiere a las posibles consecuencias si muchos usuarios lo estuvieran haciendo. Es extremadamente improbable que esto suceda a gran escala ahora mismo. Sin embargo, la posibilidad solo aumentará a medida que las organizaciones implementen, y los usuarios finales aprendan a usar, la IA generativa.

Lo alarmante es que gran parte de esto puede pasar desapercibido para el departamento de TI. Si bien generalmente confío en que los modelos de lenguaje a gran escala no hagan nada malicioso, los usuarios finales representan un factor impredecible en cuanto a las herramientas que utilizan. Un estudio reciente mostró que más de la mitad de los trabajadores del conocimiento afirmaron utilizar herramientas de IA que no estaban oficialmente autorizadas ni respaldadas por su organización para fines laborales.

Situaciones más benignas que las de seguridad antes mencionadas también pueden tener efectos. Tomemos, por ejemplo, mi plugin de Obsidian. Si lo dejara funcionando ineficientemente, y lo implementara en varios usuarios de escritorios virtuales, el efecto colectivo de la ineficiencia podría reducir la capacidad de mi infraestructura. Sí, se trata de un archivo de texto ligero, por lo que podría pasar desapercibido. Pero ese es solo un ejemplo.

Entonces, hay mucho que pensar sobre el vibe coding y el poder que tienen nuestros usuarios finales. ¿Cómo puede TI facilitar el uso responsable e incluso la experimentación sin añadir riesgos innecesarios? ¿Cómo identificamos la codificación de IA impulsada por el usuario? ¿Y cuándo decidimos que nos importa lo suficiente como para hacer algo al respecto?

Ya sea que trabaje en TI, en seguridad o simplemente tenga curiosidad sobre lo que realmente hacen sus usuarios, es hora de comenzar a hacer estas preguntas.

Gabe Knuth es el analista principal que cubre informática del usuario final para Enterprise Strategy Group, ahora parte de Omdia. Enterprise Strategy Group forma parte de Omdia. Sus analistas mantienen relaciones comerciales con proveedores de tecnología.

Investigue más sobre Inteligencia artificial y automatización