Kent Beck, figura icónica del desarrollo de software, ofrece una reflexión profunda sobre la programación asistida por IA en su artículo "Augmented Coding: Beyond the Vibes." Traza una distinción fundamental entre dos filosofías de uso de la IA: la «programación aumentada», donde la calidad del código, la complejidad, las pruebas y su cobertura siguen siendo prioritarias (valores similares a la programación manual tradicional), y el «vibe coding», caracterizado por la indiferencia hacia la calidad del código, centrándose únicamente en el comportamiento del sistema.

Proyecto BPlusTree3: un estudio de caso

Me siento bien respecto a la corrección y el rendimiento, no tan bien respecto a la calidad del código. Cuando intento escribir el código como un programa literario, hay simplemente demasiada complejidad accidental

Kent Beck , tidyfirst.substack.com

Beck documenta su implementación de una biblioteca B+ Tree en Rust y Python, invirtiendo aproximadamente 110-130 horas a lo largo de 4 semanas en tres versiones, las dos primeras abandonadas tras la acumulación de complejidad. El proyecto buscaba demostrar que la programación aumentada puede producir «código de biblioteca listo para producción y competitivo en rendimiento» mediante IA generativa.

Supervisión activa y señales de alerta

En lugar de una aceptación pasiva, Beck adopta un monitoreo vigilante: «observé los resultados intermedios del genio con más atención, listo para intervenir y detener un desarrollo improductivo». Identifica tres señales de alerta críticas: los bucles de implementación, la introducción de funcionalidades no solicitadas (incluso las razonables) y la manipulación de pruebas (desactivarlas o eliminarlas para simular el éxito).

Innovación metodológica: el pivote de lenguaje

Ante un bloqueo causado por el modelo de memoria de propiedad (ownership) de Rust, que generaba una «complejidad acumulativa», Beck emplea una estrategia poco convencional: hacer que el código se escriba primero en Python y luego transliterarlo a Rust mediante el Remote Agent de Augment. Este «experimento arriesgado» logra «desbloquear al genio» y acelera significativamente el progreso.

Resultados de rendimiento

Las bibliotecas generadas alcanzan puntos de referencia competitivos: son «más rápidas en el escaneo de rangos (recorrer una lista de claves)» que BTreeMap de Rust y SortedDict de Python, aunque «algo más lentas en algunas operaciones». La extensión en C para Python generada por IA alcanza un rendimiento «casi tan rápido» como la estructura de datos nativa de Python.

Principios estrictos de TDD

El system prompt de Beck impone una metodología rigurosa de desarrollo guiado por pruebas (Test-Driven Development): ciclo obligatorio Red → Green → Refactor, «la prueba más simple que falla primero», implementación mínima para superar las pruebas, y separación estricta entre cambios estructurales y de comportamiento («nunca mezclarlos en el mismo commit»).

Evolución profesional

Beck aborda la ansiedad ante la sustitución: «Sí, la programación cambia con un genio, pero sigue siendo programación. En algunos aspectos, una experiencia de programación mucho mejor». Los beneficios concretos incluyen la eliminación del «yak shaving» (tareas tediosas de configuración), decisiones más trascendentes: «tomo decisiones de programación más trascendentes por hora, menos decisiones aburridas y triviales», y la automatización de las pruebas de cobertura que de otro modo consumirían horas de resolución de problemas de entorno.

Brecha de calidad persistente

A pesar del éxito funcional y de rendimiento, Beck expresa una insatisfacción cualitativa: «Me siento bien respecto a la corrección y el rendimiento, no tan bien respecto a la calidad del código. Cuando intento escribir el código como un programa literario, hay simplemente demasiada complejidad accidental». Este desafío pendiente sugiere que la IA todavía requiere guía humana para la optimización de la simplicidad, confirmando que la programación aumentada sigue siendo una colaboración humano-máquina y no una sustitución.