Vibe Coding: La Amenaza Oculta de TI en la Sombra impulsada por la IA

Thenewstack

Vibe coding, una palabra de moda en auge en el mundo tecnológico, describe el proceso de generar software mediante la interacción conversacional con un agente de inteligencia artificial. Su proponente, Andrej Karpathy, caracterizó famosamente este enfoque como “no es realmente codificación, solo veo cosas, digo cosas, ejecuto cosas y copio y pego cosas, y en su mayoría funciona”, considerándolo adecuado para “proyectos de fin de semana desechables”. Un diferenciador clave de vibe coding respecto a otros métodos asistidos por IA es la aceptación acrítica del código producido por el agente. Esto permite a los “desarrolladores ciudadanos”, aquellos sin formación formal en programación, crear aplicaciones a pequeña escala sin necesidad de entender el código subyacente o cómo funciona.

Esta visión se alinea con una ambición largamente sostenida: definir software utilizando el inglés simple como lenguaje de programación. Si bien resolver desafíos menores con software puede ser satisfactorio, similar a una reparación exitosa en el hogar, su aplicación dentro de un contexto empresarial se asemeja sorprendentemente no al desarrollo de software tradicional, sino al problemático fenómeno conocido como TI en la sombra.

La TI en la sombra surge cuando las unidades de negocio, frustradas por el lento ritmo de los proyectos de TI oficiales, toman las riendas. Bajo la presión de gestionar cargas de trabajo crecientes, a menudo recurren a “héroes empresariales” que improvisan soluciones provisionales utilizando herramientas fácilmente disponibles como hojas de cálculo o bases de datos, frecuentemente eludiendo los procesos de adquisición oficiales. Si bien estas soluciones ad-hoc ofrecen un alivio localizado y temporal, rara vez proporcionan una respuesta sostenible a largo plazo. La mayoría de las veces, su “éxito” radica en forzar la repriorización urgente del proyecto original, generalmente después de que la solución de TI en la sombra inevitablemente falla.

El verdadero desarrollo de software abarca mucho más que la mera creación de funcionalidades; exige una consideración rigurosa de los requisitos no funcionales. Estos incluyen aspectos cruciales como la escalabilidad, las obligaciones legales y regulatorias, la seguridad, la experiencia del usuario, la accesibilidad y la recuperación ante desastres. Vibe coding, al igual que la TI en la sombra, elude en gran medida estas preocupaciones críticas, ya que es poco probable que los desarrolladores ciudadanos sean conscientes de ellas, y mucho menos que le pidan a la IA que las aborde. Cuando tales sistemas inevitablemente fallan, el mismo “héroe empresarial” que defendió el proyecto de TI en la sombra a menudo se convierte en el villano, atrapado en un ciclo incesante de correcciones mientras lucha por mantener el sistema operativo. El mismo destino aguarda a las aplicaciones nacidas de vibe coding.

Una idea errónea generalizada en el desarrollo de software es la creencia de que alguien sabe con precisión lo que el software necesita hacer, requiriendo solo un codificador para implementarlo. Como Fred Brooks dilucidó en su seminal artículo de 1987, “No Silver Bullet” (No hay bala de plata), “La parte más difícil de la tarea de software es llegar a una especificación completa y consistente, y gran parte de la esencia de construir un programa es, de hecho, la depuración de la especificación”.

Para las organizaciones empresariales, vibe coding introduce cuatro áreas críticas de riesgo, a menudo resumidas por cuatro palabras que comienzan con “S”: Especificación, Escalabilidad, Diseño de Software y Seguridad/Cumplimiento. Juntas, suenan como un neumático metafórico que se desinfla lentamente.

Primero, Especificación: Décadas de experiencia nos han enseñado la inmensa dificultad de definir con precisión los requisitos de un sistema de software de antemano. A menudo comprendemos los casos de uso principales, pero descubrimos una multitud de escenarios imprevistos durante el desarrollo. La creación exitosa de software generalmente implica cultivar una comprensión profunda de las necesidades del usuario o entregar iterativamente cambios pequeños y rápidos para experimentar hacia el éxito. Los mejores equipos combinan ambos. Vibe coding, por su propia naturaleza, exacerba las debilidades de la especificación, lo que lleva a requisitos funcionales y no funcionales omitidos. Cuando estos se identifican más tarde, los cambios posteriores pueden romper inadvertidamente funcionalidades que antes funcionaban, revirtiendo efectivamente la entrega de software a una era ad-hoc de “codificar y corregir”. Además, explicar cómo funciona un sistema es a menudo esencial, especialmente para el cumplimiento normativo relacionado con la toma de decisiones automatizada. Con el software vibe-coded, la única “documentación” podría ser las indicaciones conversacionales iniciales, que pueden no reflejar con precisión el comportamiento real del código generado, lo que en última instancia requiere inspección y comprensión humana.

Segundo, Escalabilidad: Más allá del rendimiento directo del sistema, el software empresarial exige un proceso de desarrollo escalable. Esto requiere la colaboración entre múltiples desarrolladores para mitigar riesgos, fomentar una comprensión compartida y asegurar el crecimiento de la capacidad a largo plazo. Esta comprensión compartida se construye a través de la documentación y, crucialmente, a través del código escrito en un lenguaje de programación legible por humanos. Los equipos de desarrollo modernos elaboran código que es fácil de comprender y validan el comportamiento del sistema con especificaciones ejecutables, que sirven como la documentación definitiva y dictan en gran medida los costos de mantenimiento, a menudo muchas veces el costo de implementación inicial. Vibe coding, sin embargo, solo ofrece flujos conversacionales o resúmenes de IA como “documentación”, ninguno de los cuales proporciona una descripción precisa del sistema. Si bien el código fuente es accesible, incluso los programadores experimentados pueden tener dificultades para descifrar el código fuente generado por IA, lo que plantea desafíos significativos para la colaboración, las revisiones de código y la resolución de conflictos de fusión entre individuos no familiarizados con su estructura idiosincrásica. Ni el software ni el proceso de desarrollo escalan eficazmente con vibe coding.

Tercero, Diseño de Software: El diseño arquitectónico del software siempre es importante e incluso puede convertirse en una ventaja competitiva crítica, permitiendo capacidades organizativas únicas. Estas decisiones de diseño, distintas de los requisitos funcionales, influyen profundamente en la facilidad con que el software puede adaptarse a necesidades futuras. En vibe coding, el diseño es en gran medida una ocurrencia tardía. La expectativa podría ser que todo el sistema pudiera ser regenerado por la IA si los principios de diseño son invalidados por nuevos requisitos. Sin embargo, esto requeriría un mecanismo para asegurar que todas las instrucciones previas se transmitan con precisión, similar a un juego de fiesta donde los jugadores deben recordar una lista de elementos cada vez mayor. Para proyectos “desechables”, las preocupaciones de diseño son mínimas, pero para sistemas a largo plazo, los costos de mantenimiento superarán con creces el desarrollo inicial. Ignorar el diseño hace que controlar esta curva de costos sea casi imposible, haciendo que el software sea económicamente inviable.

Finalmente, Seguridad y Cumplimiento: Las empresas enfrentan inmensas cargas de seguridad y cumplimiento. Los desarrolladores en grandes organizaciones están familiarizados con la seguridad del acceso, la protección de datos y el cumplimiento de los requisitos de auditoría (p. ej., ISO:27001). A lo largo de la cadena de desarrollo, desde los repositorios de código hasta la implementación, las herramientas y técnicas garantizan el cumplimiento. Reconciliar vibe coding con estos rigurosos requisitos de auditoría es profundamente difícil. Se requeriría un trabajo adicional significativo para demostrar que el código generado por IA ha sido examinado con el mismo rigor que el código escrito por humanos, revisado por pares y basado en las especificaciones del producto. El modelo económico del tiempo de desarrollador “ahorrado” debe sopesarse con la validación dramáticamente aumentada necesaria para garantizar que el código sea seguro, libre de vulnerabilidades ocultas y conforme. El costo de compilar los requisitos solo a partir de las indicaciones conversacionales podría fácilmente superar cualquier ahorro de desarrollo percibido, al mismo tiempo que aumentan los riesgos de pérdida de datos, brechas y daño a la reputación.

El atractivo de vibe coding para las empresas proviene de una peligrosa combinación de suposiciones falsas, particularmente la noción de que reducirá los costos de desarrollo. Como Dan Garfield, vicepresidente de GitOps y Open Source en Octopus, acertadamente lo expresa: “El mayor desafío con vibe coding en la Empresa no tiene nada que ver con la calidad de los modelos, o la potencial inexperiencia de los ingenieros. Es que vibe coding aumenta exponencialmente la importancia de las pruebas y la reducción de riesgos en la entrega de software, al mismo tiempo que aumenta el volumen de cambios más allá del punto de ruptura”.

Las suposiciones subyacentes son comunes pero fundamentalmente defectuosas:

  • Suposición: El valor creado durante el desarrollo de software es únicamente el código en sí.

  • Realidad: El verdadero valor reside en el conocimiento encarnado por el código y, crucialmente, por los desarrolladores que lo entienden y mantienen.

  • Suposición: Crear una aplicación es la parte más cara.

  • Realidad: Mantener una aplicación a lo largo de su ciclo de vida es a menudo mucho más costoso.

  • Suposición: Generar código ahorra tiempo.

  • Realidad: Generar código simplemente traslada la carga de la codificación a otras actividades, a menudo más complejas, como pruebas intensivas, revisiones exhaustivas y auditorías estrictas.

Para la entrega de software empresarial, estas suposiciones falsas allanan un camino directo hacia el dolor futuro, transformando un atajo percibido en un desvío costoso.