Este artículo argumenta que la 'codificación por vibración'—el uso de la IA para generar código sin una ingeniería rigurosa—produce resultados que parecen correctos pero fallan en producción. El autor distingue entre generar código e ingeniería de sistemas: si bien los LLM pueden escribir rápidamente fragmentos de código funcionales, no pueden tomar las decisiones fundamentales que garantizan la coherencia del sistema. Antes de que exista ningún código, los ingenieros definen el encuadre del problema, los requisitos, los invariantes, las restricciones, los modos de fallo y los límites arquitectónicos. El código generado por la IA omite estos pasos, lo que lleva a sistemas frágiles que se rompen bajo condiciones del mundo real. Un ejemplo concreto: una solicitud para un sistema de inicio de sesión generó código Flask/SQLite funcional, pero nunca preguntó si los correos electrónicos deben ser únicos. Esta omisión causa ambigüedad de identidad, fallos en el restablecimiento de contraseñas y cascadas de eliminación de cuentas, inaceptables en producción. El artículo enumera las decisiones de ingeniería que los LLM ignoran: invariantes, reglas de identidad, restricciones, acoplamiento, transiciones de estado, manejo de errores y más. Advierte que la confianza en el código generado por la IA se derrumba cuando los requisitos faltantes surgen como fallos. En resumen: la codificación por vibración produce demostraciones; la ingeniería produce sistemas que sobreviven al contacto con la realidad.
Por qué la codificación por vibración no puede reemplazar las preguntas no formuladas del ingeniero
