La llegada de las herramientas de asistencia de programación basadas en inteligencia artificial (IA) ha transformado profundamente la forma en que los desarrolladores trabajan. Plataformas como Claude Code han revolucionado la codificación al proporcionar soluciones rápidas y generadas por máquinas, capaces de acelerar la construcción de proyectos y prototipos. Sin embargo, detrás de esta aparente maravilla tecnológica, se esconden incentivos perversos que alteran la calidad, la eficiencia y la experiencia del usuario en el proceso de codificación, un fenómeno que podría llamarse "vibe coding" o programación guiada por el ambiente. Este término describe una dinámica donde el usuario está atrapado en un ciclo psicológico incentivado por la IA, cuya natureleza intermitente y aleatoria ofrece recompensas parciales que generan un comportamiento similar a las adicciones, con consecuencias que van mucho más allá del simple uso de un asistente digital. La esencia de este fenómeno radica en el principio de refuerzo variable, donde la IA ofrece respuestas que están muy cerca de ser perfectas, incrementando la expectativa y el deseo de continuar generando prompts a la espera de la solución ideal.
Esta imprevisibilidad activa los sistemas de recompensa del cerebro, liberando dopamina y fomentando un efecto de adicción muy parecido al gambling. Lo que hace particularmente efectiva esta dinámica es el llamado “descuento por esfuerzo”, un concepto neurocientífico que explica cómo tareas que requieren mínimo esfuerzo para una posible gran recompensa son psicológicamente mucho más atractivas. En otras palabras, basta con escribir una o dos líneas para pedirle a la IA que intente resolver un problema complejo, y la mera expectativa de que el código generado funcione genera una motivación difícil de ignorar. A pesar de las ventajas evidentes, la experiencia de los desarrolladores más experimentados revela una problemática importante con estos sistemas: tienden a generar código excesivamente extenso, complejo y repetitivo. A diferencia de un programador humano que utiliza métodos funcionales elegantes y concisos para resolver un problema, los modelos de lenguaje de IA producen soluciones que abarcan incrementalmente cada detalle, diluyendo la esencia del código y frecuentemente creando estructuras sobreingenierizadas que encarecen el mantenimiento y la comprensión.
Las razones para esta tendencia no son solo técnicas, sino también económicas y humanas. Desde una perspectiva técnica, los modelos como Claude 3.7 — el backend de Claude Code — fueron entrenados para predecir texto basados en grandes conjuntos de datos existentes, muchos de los cuales contienen código prolijo y poco optimizado. Esto limita la capacidad del modelo para abstraer y construir soluciones mínimas basadas en principios sólidos de ingeniería de software. Por otro lado, existen motivaciones económicas bien definidas detrás de estas excesivas producciones de texto.
En la mayoría de los sistemas de IA actuales, los costos están ligados al recuento de tokens, es decir, a la cantidad total de texto procesado y generado. Esto crea un incentivo perverso: cuanto más largo y detallado sea el código, mayor será el costo para el usuario y, simultáneamente, los ingresos para la empresa desarrolladora del modelo. Este modelo de negocio genera una paradoja. Si bien la expectativa del usuario es recibir soluciones claras, concisas y eficientes, las compañías de IA se benefician financieramente de la generación de texto voluminoso. Este desalineamiento entre los intereses del usuario y los incentivos corporativos genera una situación donde no existe una presión real para mejorar la calidad del código o reducir su verbosidad, ya que hacerlo implicaría una disminución directa en los ingresos.
Además, este problema no solo afecta a quienes pagan por el uso del servicio. En las suscripciones con acceso ilimitado o tarifas fijas, se aplican límites de uso o restricciones que mantienen la misma estructura de incentivo, perpetuando la generación de código inflado y el aumento incontrolado de tokens en cada interacción. La consecuencia más grave es que cada modificación, cada solicitud de mejora y cada depuración implican la transferencia repetitiva de un contexto cada vez más extenso, lo cual no solo resulta costoso, sino también lento y poco eficiente. Un ejemplo representativo es la implementación de algoritmos complejos, como el minimax en juegos de cartas novedosos o la refactorización completa de bases de código existentes. El código producido por la IA suele ser significativamente más largo y cargado de dependencias auxiliares cuando se compara con la versión humana por un analista experimentado.
La dificultad se agrava cuando el código generado no funciona como se espera, haciendo que todas las iteraciones posteriores de depuración impliquen volver a enviar código voluminoso a la API, con todos los costes y retrasos asociados. La sobreproducción de código también viene acompañada de prácticas poco elegantes para intentar justificar el volumen generado: la inclusión masiva de declaraciones de depuración, comentarios redundantes, funciones auxiliares poco útiles y estructuras defensivas exageradas que, en un entorno profesional, generarían rechazo y frustración entre desarrolladores comprometidos con la calidad. Frente a este escenario, muchos programadores descubren que una metodología más racional consiste en dividir los proyectos en tareas discretas y claramente definidas, equivalentes a instrucciones comprensibles para un desarrollador de nivel medio o junior, en lugar de delegar soluciones completas de alto nivel. Esta estrategia no solo facilita el control sobre la calidad del código generado, sino que también limita la expansión descontrolada de tokens y costos. Otra dimensión importante para entender este fenómeno es la investigación en inteligencia artificial que evidencia una tensión fundamental entre brevedad y precisión.
Estudios recientes, como el benchmark Phare de Giskard AI, muestran que imponer a los modelos la consigna de responder de manera concisa reduce drásticamente la precisión y aumenta la tendencia a producir información incorrecta o inventada. Esto indica que la verbosidad, hasta cierto punto, está ligada a una mejor capacidad de razonamiento en cadena y a la fidelidad de la información que la IA ofrece. Sin embargo, en el dominio de la codificación, la verbosidad suele traducirse en códigos excesivamente elaborados para cubrir todos los casos marginales sin un análisis profundo del núcleo del problema. Por lo tanto, el incentivo económico basado en el token produce un compromiso donde la calidad final del código y la precisión de la solución están en pugna con la rentabilidad del sistema. Ante estas dificultades, los desarrolladores han ideado diversas estrategias para contrarrestar la generación de código inflado y costoso.
La planificación previa es fundamental: exigir de la IA la presentación de un plan detallado antes de solicitar cualquier línea de código permite que el modelo articule la arquitectura general y simplifique el proceso posterior. De esta manera, la IA está mejor orientada a generar soluciones concisas y pensadas. También resulta efectivo implementar un protocolo explícito donde la IA debe pedir permiso antes de escribir código, a pesar de que algunos modelos parecen ignorar estas instrucciones debido a sus amplios sistemas de indicaciones internas. La insistencia constante en respetar estos límites ayuda a mantener el control sobre la cantidad de código generado. El control de versiones es otra herramienta clave.
Al trabajar con sistemas de gestión como Git, es posible experimentar con diversas ramas y desechar versiones defectuosas sin perder el historial ni acumular soluciones parches que complican el mantenimiento futuro. Esta actitud pragmática de abandonar ciertos enfoques cuando el esfuerzo es mayor al beneficio evita la proliferación de código innecesario. Otra medida interesante es el uso selectivo de modelos menos potentes o más económicos, que debido a sus limitaciones en ventana de contexto y capacidad de proceso tienden a generar código más compacto y directo. Aunque estos modelos pueden no rendir igual en tareas muy complejas, son una opción viable para la mayoría de las tareas cotidianas de programación. Mirando hacia el futuro, existen propuestas para mejorar la alineación entre los incentivos económicos y la calidad del código generado.
Algunos plantean evaluar a los agentes de codificación de IA no solo por la cantidad de tokens sino también por métricas de calidad, aunque estas métricas son subjetivas y difíciles de formalizar plenamente. Otros sugieren modelos de precio que incentiven la eficiencia y non la verbosidad, aunque implementar esta idea presenta sus propias complejidades técnicas y económicas. Adicionalmente, los procesos de entrenamiento reforzado con retroalimentación humana (RLHF) podrían privilegiar versiones de código más elegantes y concisas para moldear mejor la conducta del modelo, fomentando la selección de soluciones optimizadas. Sería importante también que las compañías reconozcan que generar demasiado código sobrecostoso no es beneficioso para su reputación ni para la sustentabilidad a largo plazo. La problemática va más allá de la inteligencia artificial en sí misma y apunta a las decisiones comerciales que la rodean.
La ironía reside en que estos sistemas, aunque participen exactamente en el problema, pueden ayudar a explicar y describir sus propias deficiencias, demostrando que las causas principales son humanas y económicas. Por encima de todo, la expectativa de código limpio, mantenible y elegante que resuelva problemas en su raíz sigue siendo un estándar que las máquinas aún están lejos de alcanzar plenamente debido a estos incentivos contraproducentes. Mientras tanto, los desarrolladores y usuarios deben tomar conciencia de esta dinámica e implementar estrategias conscientes para mitigar los efectos negativos, recordando que la brevedad y la elegancia en el código no son solo una preferencia estética sino un elemento crucial para la eficiencia, la escalabilidad y la satisfacción profesional. En definitiva, la evolución de la programación asistida por IA requiere una armonización profunda entre tecnología, economía y psicología para liberar todo su potencial real sin sacrificar calidad ni sobrecargar a los usuarios con costes inesperados. La programación del futuro puede ser más ágil, inteligente y accesible si se superan estos retos, recompensando la inteligencia económica y técnica por encima del volumen o la mera cantidad de datos generados.
Solo así será posible aprovechar la verdadera magia de estas herramientas sin caer en los incentivos perversos que el modelo de negocio actual impone.