IA en programación: cómo cambia el trabajo del desarrollador

R. B. Atai7 min

Hasta hace poco, la IA en el desarrollo de software se percibía sobre todo como un autocompletado más inteligente. Copilot sugería la siguiente línea, ChatGPT ayudaba a explicar un error, y el desarrollador seguía siendo la única persona del proceso que realmente veía la tarea completa.

En 2025-2026, la situación cambió. Los Code LLM ya no viven solo en una ventana de chat, sino dentro del IDE, la terminal, los pull requests, CI y entornos cloud. GitHub describe Copilot coding agent como una herramienta capaz de trabajar con tareas en un repositorio, ejecutarse en GitHub Actions y preparar cambios en ramas. OpenAI desarrolla Codex como un coding agent para leer bases de código, escribir código, depurar, probar y refactorizar. Anthropic presenta Claude Code como una herramienta agéntica que lee el proyecto, edita archivos y trabaja desde CLI o IDE. (13)

El cambio principal no es que la IA "ayude a escribir más rápido". Esa formulación se queda corta. El cuello de botella del desarrollo se está desplazando poco a poco de teclear código a definir la tarea, gestionar el contexto y verificar el resultado. La era del desarrollador cuyo valor principal consistía en traducir requisitos a líneas de código con sus propias manos realmente se acerca a su fin.

Todavía no podemos describir con precisión qué la sustituirá. La industria nunca había tenido una herramienta capaz de montar un diff funcional en minutos, explicar una base de código desconocida, escribir tests, proponer cambios arquitectónicos y, al mismo tiempo, seguir siendo un sistema estadístico sin comprensión propia del producto. Por eso es más honesto no hablar de una simple sustitución de programadores, sino de una reconstrucción del trabajo: el código se abarata, mientras que la responsabilidad por el sentido, los límites y la calidad se encarece.

De Copilot a los Code LLM

La primera capa masiva de IA en programación era sencilla: el modelo miraba el archivo actual y proponía una continuación. Ya aceleraba el trabajo rutinario, pero seguía siendo una ayuda local. El desarrollador escribía la función, y la IA le ayudaba a llegar antes a una solución sintácticamente plausible.

La nueva capa es más amplia. Copilot, ChatGPT, Codex, Claude Code y otros Code LLM similares pueden trabajar no solo con un fragmento, sino con una tarea: explicar un módulo ajeno, encontrar el lugar adecuado para un cambio, proponer una migración, generar un test, preparar un pull request, revisar un diff y señalar riesgos. GitHub desarrolla por separado Copilot code review: ya no es autocompletado, sino otro participante del proceso de revisión que deja comentarios y propone correcciones. (4)

Es importante no exagerar la autonomía de esta capa. Un modelo no "entiende el proyecto" como lo entiende un equipo que lleva años conviviendo con el producto, los clientes y los incidentes. Pero sí puede construir rápidamente una hipótesis útil a partir del código y el contexto textual. Y eso ya basta para cambiar la economía del desarrollo: la implementación inicial, la búsqueda dentro del proyecto y el primer montaje de una solución se vuelven mucho más baratos que antes.

La IA como asistente del desarrollador

La utilidad práctica de la IA se ve mejor allí donde antes se perdía mucho tiempo en trabajo mecánico.

Ayuda bien con boilerplate: crear un endpoint típico, un DTO, una estructura inicial de tests, una migración SQL, la configuración de un SDK, un handler de formulario o un adaptador para una API externa. También es útil al leer un proyecto desconocido: se le puede pedir que explique el flujo de datos, encuentre una implementación parecida, identifique las abstracciones principales y muestre dónde cambia realmente el estado.

Otro escenario fuerte son los borradores de tests. El modelo puede proponer rápidamente edge cases, preparar fixtures, escribir un unit test básico o señalar dónde falta una comprobación de error. No sustituye el diseño de tests, pero reduce la fricción cuando el desarrollador ya entiende qué debe comprobar.

La IA también acelera la documentación. Puede convertir un diff en una descripción legible para humanos, preparar un README para una herramienta interna, explicar un breaking change o redactar comentarios para un PR. En un buen equipo, esto no elimina la necesidad de cuidado, pero hace que el cuidado sea más barato.

Aquí aparece una distinción importante. La IA no es útil cuando simplemente "escribe en lugar del desarrollador", sino cuando está integrada en un circuito de ingeniería: la tarea está descrita, el contexto está reunido, las restricciones están nombradas, los criterios de finalización están claros y las comprobaciones se ejecutan automáticamente. Sin eso, el modelo produce más texto y más código. Con ese marco, se convierte en un acelerador de una disciplina que ya existe.

DORA lo formula bien en su informe de 2025: la IA en desarrollo funciona como un amplificador. Ayuda a organizaciones fuertes, con tests, revisiones, prácticas de plataforma y ciclos rápidos de feedback. Y amplifica con la misma fuerza el caos allí donde el código ya llegaba a production sin criterios claros de calidad. (7)

El desarrollador se convierte en arquitecto y editor

El cambio principal no es que la IA escriba una parte del código. Lo importante es que el desarrollador trabaja cada vez menos como operador de teclado y cada vez más como quien plantea la tarea, edita el resultado y es dueño del contexto.

Para obtener buen código de un modelo, hay que describir no solo "qué hacer", sino también "dentro de qué límites": qué archivos tocar, qué APIs ya existen, qué invariantes no se pueden romper, qué tests deben pasar, dónde importa la compatibilidad hacia atrás, qué estilo sigue el proyecto, qué se considera error y qué comportamiento esperado. OpenAI resume sus recomendaciones para Codex en un marco simple: objetivo, contexto, restricciones y criterio de finalización. (8)

Esto se parece mucho al trabajo de un arquitecto o tech lead, solo que a menor escala. El desarrollador da forma a la solución, divide la tarea en pasos verificables, limita el alcance de los cambios, revisa el diff, elimina lo sobrante, pide reescribir una parte dudosa y toma la decisión final.

En este sentido, la IA no potencia a todos los desarrolladores por igual. Ayuda más a quienes ya saben leer código, ver límites arquitectónicos, entender el coste de los cambios y distinguir rápido una respuesta plausible de una correcta.

Por eso la frase "la IA reemplazará a los desarrolladores junior" es demasiado burda, pero contiene una parte incómoda de verdad. Si el trabajo consistía en ejecutar tareas bien descritas según un patrón conocido, se automatizará primero. Si una persona sabe convertir una tarea confusa en un plan concreto, encontrar el contexto que falta y verificar el resultado, seguirá siendo necesaria incluso en un desarrollo saturado de IA - al menos hasta que la responsabilidad por el resultado pueda trasladarse al modelo.

Desarrollo rápido de MVP

Para los MVP, la IA es especialmente útil. Si hay que montar un prototipo en un día - conectar autenticación, hacer un formulario, levantar un backend simple, escribir una integración con una API, añadir una página de ajustes y esbozar tests -, los Code LLM acortan mucho el camino de la idea a la primera versión funcional.

Antes, los desarrolladores solían gastar horas en la base inicial: elegir un ejemplo de la documentación, recordar parámetros del SDK, escribir serialización repetitiva, montar una plantilla de pantalla, comprobar el formato de la respuesta. Ahora, una parte importante de ese trabajo se traslada al diálogo con el modelo y a la revisión del resultado.

Pero hay un límite claro. La IA acelera la creación de la "primera versión", pero no decide por el equipo qué producto necesita realmente el usuario. No sabe qué métrica debe mejorar, qué compromiso es aceptable, dónde conviene simplificar el flujo ni dónde no se pueden perder datos. Así que el MVP aparece más rápido, pero no se vuelve automáticamente valioso.

Otro riesgo de los MVP rápidos es la deuda invisible. El modelo genera fácilmente código que "funciona para la demo": sin un modelo normal de errores, sin estrategia de migraciones, sin observability, sin control de permisos y sin un modelo de datos claro. Cuanto más rápido aparece el prototipo, más importante es decidir a tiempo qué puede evolucionar y qué debe reescribirse antes de production.

La conclusión práctica para los MVP es sencilla: la IA conviene usarla para comprobar una hipótesis rápidamente, no como excusa para saltarse el circuito de ingeniería. Incluso en la primera versión es útil separar un prototipo desechable de la base de un producto futuro: marcar decisiones temporales, registrar riesgos desconocidos, escribir al menos tests mínimos alrededor de escenarios críticos y no confundir "la demo funciona" con "el sistema se puede mantener".

Dónde se rompe el código generado por IA

Los problemas del código generado por IA casi nunca empiezan en la sintaxis. Los modelos modernos suelen escribir código que parece plausible y a menudo pasa una comprobación básica. Lo difícil es otra cosa: pueden proponer con seguridad una solución que no encaja en el proyecto real.

El primer problema es el contexto incompleto. El modelo ve solo lo que se le dio: algunos archivos, la descripción de la tarea, un fragmento de error, a veces el historial del chat. Puede no saber de una regla de negocio oculta, un cliente API antiguo, un acuerdo del equipo, un despliegue poco estándar o el incidente que explica por qué ese código extraño existe.

El segundo problema son APIs inventadas o desactualizadas. Los Code LLM generalizan bien patrones, pero a veces componen código sintácticamente convincente a partir de versiones incompatibles de librerías, métodos inexistentes o documentación antigua. Esto se nota especialmente en SDK y frameworks que cambian rápido.

El tercer problema es la seguridad. OWASP, en su Top 10 for LLM Applications, destaca prompt injection e insecure output handling: si el modelo recibe instrucciones externas o su salida se pasa sin validación a shell, navegador, SQL, workflow o una herramienta con permisos, la capa de IA se convierte en parte de la superficie de ataque. En coding agents esto importa especialmente porque trabajan cerca del código fuente, secretos, CI y comandos de infraestructura. (5)

El cuarto problema son los tests que parecen mejores de lo que son. El modelo puede escribir comprobaciones para el camino feliz y repetir la estructura de la implementación, pero no capturar edge cases reales. A veces incluso adapta el test al código actual en lugar de comprobar el requisito.

El quinto problema es la mantenibilidad. La IA genera mucho código con facilidad. Pero mucho código no es lo mismo que buena arquitectura. En el proyecto quedan abstracciones innecesarias, duplicación, ramas de fallback complejas, dependencias poco claras y funciones que nadie del equipo diseñó realmente.

Por qué la IA sigue siendo una herramienta y no un jugador independiente

La razón principal es simple: la IA no asume responsabilidad por el sistema. No responde ante los usuarios por datos perdidos, ante el negocio por un release fallido, ante el equipo de seguridad por un secreto filtrado ni ante futuros desarrolladores por deuda arquitectónica.

No es una reserva filosófica, sino una limitación práctica. El modelo puede proponer una opción, pero no es dueño del objetivo del producto. No sabe por qué un edge case es crítico y otro puede posponerse. No entiende el contexto político dentro de la empresa, el coste del error, las restricciones legales, los acuerdos con clientes ni los compromisos que el equipo ya probó antes.

Ni siquiera el modo agéntico elimina esta limitación. Un agente puede leer archivos, ejecutar tests, hacer commits en una rama y preparar un PR. Pero sigue trabajando dentro de límites definidos por personas: accesos, herramientas, sandbox, instrucciones, criterios de aceptación, proceso de review y gates de production.

NIST describe este tema de forma más amplia en su perfil sobre generative AI: el valor de un sistema de IA depende no solo del modelo, sino también de la gestión de riesgos, el monitoreo, la evaluación de calidad, los controles de uso y la supervisión humana allí donde el coste del error es alto. Para el desarrollo de software, eso significa algo simple: la IA puede ser un ejecutor poderoso, pero la responsabilidad de ingeniería sigue en el equipo. (6)

La nueva habilidad: context engineering

El término prompt engineering se quedó pequeño rápidamente. En programación, el problema rara vez se resuelve con una frase bonita en el chat. Importa mucho más el context engineering: la capacidad de reunir alrededor de una tarea el contexto necesario para que el modelo no trabaje a ciegas, sino dentro de un sistema claro de restricciones.

A nivel de una tarea concreta, esto significa describir la petición como una mini especificación. No "haz autenticación", sino: qué problema se resuelve, qué archivos y ejemplos importan, qué frameworks ya se usan, qué escenarios deben funcionar, cuáles no se pueden romper, qué comprobaciones hay que ejecutar y qué contará como terminado.

A nivel de repositorio, significa preparar el proyecto para trabajar con agentes. GitHub recomienda custom instructions para Copilot: dónde está el código, cómo ejecutar la build, qué tests son obligatorios, qué estándares sigue el equipo. OpenAI propone AGENTS.md como instrucción permanente para coding agents: estructura del repositorio, comandos, convenciones, restricciones y definición de done. Anthropic pone un énfasis parecido en Claude Code sobre memoria de proyecto e instrucciones. (810)

Es un giro práctico. Antes, una buena documentación ayudaba a las personas. Ahora también ayuda a los agentes. Pero el sentido no es escribir textos para la IA. El sentido es hacer explícitas las reglas de ingeniería. Si un equipo no puede explicar a un agente cómo cambiar correctamente el sistema, a menudo significa que a las personas se lo explica de forma oral, casual y con pérdidas.

Qué habilidades serán más importantes

La conclusión ingenua sería: si la IA escribe código, los programadores necesitan saber menos de lenguajes y frameworks. En la práctica ocurre lo contrario: cuanto más rápido se genera código, más importante es saber evaluarlo.

El pensamiento arquitectónico gana peso. Hay que entender límites de módulos, ciclo de vida de los datos, invariantes, coste de migraciones, compatibilidad hacia atrás y consecuencias de un pequeño cambio dentro de un mes. El modelo puede proponer un diff local, pero el desarrollador debe ver el sistema.

El code review se vuelve más importante. No como un "lo miré" formal, sino como la capacidad de encontrar rápido una suposición falsa, un error omitido, una abstracción innecesaria, una ruta insegura o un test que no demuestra nada. En el mundo del código generado por IA, la revisión deja de ser control de estilo y se convierte en control de sentido.

También crece el valor de testing y observability. Si la IA acelera la escritura de features, el equipo debe acelerar también la verificación: unit tests, integration tests, contract tests, static analysis, linters, security scanning, feature flags, logs y métricas. Si no, la velocidad de generación solo entrega errores a los usuarios más rápido.

Una habilidad separada será saber detener la generación. Un buen desarrollador debe reconocer el momento en que el modelo escribe con seguridad, pero avanza en la dirección equivocada: la capa arquitectónica incorrecta, el modelo de datos incorrecto, el nivel de abstracción incorrecto, el perfil de riesgo incorrecto.

Por último, la lógica de producto será más importante. La IA puede escribir un endpoint, pero no decidir si debe existir. Puede generar una pantalla, pero no entender por qué el usuario no completa el flujo. Puede acelerar el desarrollo de un MVP, pero no reemplaza la conversación con el mercado, el análisis de datos ni la elección de prioridades.

Qué debe hacer un desarrollador ahora

El primer paso es dejar de tratar la IA como un chat ocasional para acelerar pequeñas tareas. Es más útil integrarla en el flujo de trabajo: investigación, plan, implementación, verificación, revisión. Para tareas complejas conviene pedir primero al modelo que estudie el código y proponga un plan, no que escriba cambios de inmediato. GitHub recomienda explícitamente usar Copilot cloud agent para investigar el repositorio, planificar e iterar antes de abrir un PR. (9)

El segundo paso es escribir tareas de forma que un agente pueda ejecutarlas. Una buena tarea contiene objetivo, contexto, restricciones y acceptance criteria. Si el desarrollador no puede formular el criterio de finalización, la IA casi seguro llenará el vacío con suposiciones.

El tercer paso es reforzar las comprobaciones. Anthropic, en sus recomendaciones para Claude Code, llama a la verificación el principal punto de palanca: el agente necesita una forma de comprobar su propio trabajo mediante tests, linters, build, capturas de pantalla o comandos reproducibles. Sin eso, el desarrollador obtiene un diff plausible. Con eso, el diff al menos chocó con la realidad. (10)

El cuarto paso es crear instrucciones repetibles. Si el modelo comete el mismo error por segunda vez, no es solo motivo para enfadarse, sino una señal para añadir una regla a AGENTS.md, CLAUDE.md, .github/copilot-instructions.md o un checklist interno de review. Una buena práctica de IA convierte poco a poco las correcciones personales del desarrollador en memoria compartida del proyecto.

El quinto paso es no entregar cualquier cosa al agente. Buenos candidatos: tests, documentación, bugs pequeños, refactorings claros, migraciones por plantilla, mejoras de observability, preparación de borradores. Malos candidatos: incidentes de production, cambios security-sensitive, autenticación, pagos, grandes reescrituras de dominio, tareas sin requisitos claros. Ahí la IA puede ayudar, pero no debería dirigir el trabajo por sí sola.

Pronóstico: el fin de la profesión en su forma antigua

El pronóstico más honesto suena incómodo: la era de los desarrolladores que principalmente escriben código a mano se acerca a su fin. No porque el código vaya a desaparecer. Al contrario, habrá más código. Pero escribir código típico deja de ser una habilidad rara y cara. Se convierte en una operación que cada vez más se puede delegar a un modelo.

Esto no significa que dentro de unos años solo queden arquitectos y que la IA construya productos por sí sola. Aún es pronto para decirlo. No sabemos cómo será la nueva estructura de los equipos, cómo cambiará la formación, cuántas tareas pasarán a agentes, qué profesiones aparecerán alrededor del desarrollo AI-native ni dónde el mercado chocará con límites de seguridad, coste de errores y responsabilidad legal.

Pero la dirección ya se ve. Si antes el desarrollador era sobre todo la persona que convertía requisitos en código, ahora esa función se fragmenta. Una parte pasa al modelo. Una parte permanece en la persona. Otra parte se convierte en nuevas prácticas: plantear tareas a agentes, gestionar contexto, controlar calidad, diseñar límites de autonomía, revisar AI-generated diffs, configurar comprobaciones y mantener la memoria de ingeniería del proyecto.

Por eso la pregunta no es "si la IA reemplazará a los programadores". Es una pregunta demasiado simple para una transición demasiado compleja. La pregunta más precisa es: qué parte del trabajo actual del desarrollador era pensamiento real y qué parte era producción manual de código según un patrón ya entendido. La segunda parte se abarata rápido. La primera gana importancia, pero hay que demostrarla con práctica, no con un cargo.

Conclusión

La IA cambia la programación de forma más profunda que simplemente "acelerar al desarrollador". Socava la vieja economía del coding: la implementación típica se abarata, la velocidad de producir diffs aumenta y el riesgo principal se desplaza a la calidad de la formulación de la tarea y la verificación del resultado.

Todavía nadie sabe qué sustituirá exactamente al rol familiar del programador. Pero ya está claro que no ganarán quienes simplemente escriban más código con IA, sino quienes sepan convertir la IA en un proceso de ingeniería gestionable: con contexto, restricciones, tests, revisiones y responsabilidad por el sistema.