💻 Programación
Nadie te dice esto sobre programar con IA: le estás enseñando a escribir código basura
Usas ChatGPT, Claude o Cursor para programar y sientes que eres imparable. Sacas features en minutos, refactorizas con un prompt, y los tests pasan. ¿Qué podría salir mal?
Mucho. Y no te estoy hablando de alucinaciones o bugs ocultos. Te estoy hablando de algo mucho más insidioso: cada vez que aceptas ese código "que funciona pero está feo", le estás enseñando a tu asistente de IA a escribir peor.
Y lo peor de todo: tú eres el responsable.
El experimento que te va a doler
Imagina esto: necesitas la misma validación de acceso en cinco lugares diferentes de tu código — un route handler, un job en background, un endpoint de API, un webhook, y un par más.
En lugar de extraer una función compartida (como harías normalmente), le pides a la IA que genere cada uno por separado. El código funciona. Los tests pasan. Haces merge y sigues con tu vida.
¿El problema? Ahora tienes la misma lógica duplicada cinco veces con nombres de variables ligeramente diferentes.
Y la IA que te ayudó a escribir todo eso está viendo exactamente lo que hiciste. Está leyendo tu codebase. Está aprendiendo tu "estilo". Y tu estilo ahora incluye: "copia y pega la misma validación cinco veces porque total, la IA lo arregla después."
🚨 Pero la IA no lo va a arreglar después. Al contrario: cuando le pidas que agregue un sexto endpoint, te va a generar la sexta copia, porque eso es lo que TU codebase le está enseñando.
El efecto bola de nieve
Un par de condicionales duplicados no son el fin del mundo. Pero los code smells se acumulan. Cada función "dios", cada "lo limpio después", cada merge de código que sabes que está mal pero "funciona" — todo eso es una señal que le estás mandando al LLM.
Y el LLM, que es una esponja, absorbe TODO.
Esto no es teoría. Un desarrollador documentó exactamente este patrón en un artículo que explotó en Hacker News con 150 puntos y 115 comentarios: "Write code like a human will maintain it". Su conclusión es brutal: creías que le estabas delegando el mantenimiento a la IA, pero en realidad la estabas entrenando para que heredara tus peores prácticas.
Al final, el supuesto "ahorro de tiempo" se convierte en una deuda técnica que crece exponencialmente. Cada capa de código duplicado, cada función mal diseñada, cada patrón inconsistente hace que el prompt necesario para arreglarlo sea más y más complejo.
Llegas a un punto donde ya no puedes "promptear" tu salida del agujero. Tienes que ensuciarte las manos y refactorizar manualmente.
La solución es incómoda
No, no es "dejar de usar IA para programar". Eso es tan estúpido como decir "deja de usar la calculadora para hacer cuentas". La IA llegó para quedarse y es una herramienta poderosa.
La solución es mucho más simple y mucho más difícil a la vez: escribe código como si un humano lo fuera a mantener.
- Extrae funciones compartidas. Así como lo harías sin IA.
- No aceptes código duplicado aunque los tests pasen.
- Refactoriza antes del merge, no "después".
- Revisa el código generado con el mismo estándar que revisarías el de un colega.
- Sé consistente. Cada patrón que estableces hoy es el "estilo del proyecto" que la IA replicará mañana.
La regla de oro: Si no aceptarías ese código en una code review humana, no lo aceptes de una IA. Porque detrás de esa IA, eventualmente, habrá un humano (tú, o tu yo del futuro) que tendrá que lidiar con las consecuencias.
El futuro del código con IA
Los asistentes de código con IA son increíbles. Nos permiten movermos más rápido que nunca. Pero no son un reemplazo del criterio técnico — son un amplificador. Y como todo amplificador, toman lo que les das y lo hacen más grande.
Si les das buenas prácticas, generan buen código. Si les das shortcuts y deuda técnica, generan un monstruo.
La diferencia entre un dev que usa IA bien y uno que la usa mal no es la velocidad. Es la disciplina. El primero revisa, refactoriza y mantiene estándares. El segundo solo hace merge y confía en que "la IA lo arreglará después".
Adivina quién termina con un codebase imposible de mantener.
Comparte esto con ese colega que hace merge de código generado por IA sin revisarlo. La disciplina de código no ha muerto — solo se ha vuelto más importante que nunca.
¿Usas IA para programar? ¿Has notado que tu código se ha vuelto menos mantenible? ¿Cómo mantienes la calidad? Cuéntanos en los comentarios 👇