Nate Gentile, experto en tecnología y programación: "La fantasía de tener las tres fases (analizar, diseñar y programar) llevadas a cabo por una IA la veo complicada"

Las tres fases de la IA
Las tres fases de la IANate Gentile - YouTube / Montaje
Noticia
Añádenos en Google

Elígenos como tu fuente preferida en Google.

La IA ya puede crear software en minutos, pero sus errores muestran por qué los programadores seguirán siendo necesarios para diseñar, revisar y controlar sistemas complejos.

La inteligencia artificial ha cambiado la forma de desarrollar software. Hoy puede escribir código, corregir errores y hasta diseñar apps completas a partir de instrucciones en lenguaje natural.  

Eso permite que personas sin experiencia lleguen mucho más lejos que hace unos años, pero el problema aparece cuando el proyecto deja de ser sencillo y hay que tomar decisiones sobre qué construir y cómo hacerlo.

Nate Gentile, el experto en tecnología y youtuber, plantea una idea especialmente interesante para entender este cambio, donde el trabajo de un programador puede dividirse en tres fases. 

Primero hay que entender el problema, después diseñar una solución y finalmente convertir esa solución en software. La IA ya participa en las tres, pero no lo hace igual de bien en todas.

La tercera fase es la que mejor domina. Escribir código consiste en buena medida en aplicar patrones que ya existen y adaptarlos a una situación concreta. Los modelos han aprendido de una cantidad enorme de código y pueden generar cientos de líneas en muy poco tiempo. 

Del mismo modo, pueden ejecutar lo que han creado, comprobar errores y volver a intentarlo. Ahí es donde los agentes actuales han dado un salto importante.

El problema está antes de escribir el código

Trabajadores esclavos de la IA
Trabajadores esclavos de la IA

La fantasía consiste en imaginar que una IA puede encargarse de las tres fases por completo. Le explicas qué necesita una empresa, el sistema analiza el problema, decide cómo resolverlo y después construye todo sin intervención humana.

Pero ese escenario todavía tiene un problema importante, y es que una IA puede proponer una solución técnicamente coherente sin comprender realmente todas las necesidades que existen detrás del proyecto. 

Tampoco conoce por sí sola las decisiones tomadas durante años, las limitaciones de una empresa, las particularidades de sus usuarios o las consecuencias que tendrá una determinada elección.

El caso de Jason Lemkin lo deja bastante claro. Utilizó Replit para desarrollar una aplicación mediante vibe coding y consiguió avanzar hasta convertirla en una herramienta real para su empresa. 

Pero el problema llegó cuando el proyecto empezó a acumular complejidad, donde la IA comenzó a producir resultados que parecían correctos en las pruebas, pero no funcionaban como deberían en la práctica. Llegó incluso a borrar la base de datos de producción.

Aquello no demuestra que la IA sea inútil para programar, sino que demuestra algo más importante. Puede ejecutar muy bien una solución sin tener necesariamente el criterio necesario para decidir si esa solución es la adecuada.

La IA puede escribir el código, pero alguien tiene que dirigirla

Generada con IA

Los agentes de IA actuales son mucho más capaces que los primeros asistentes de programación porque pueden trabajar con archivos, ejecutar comandos, lanzar pruebas y utilizar herramientas externas. 

Si generan código que produce un error, pueden detectarlo y modificarlo. Pero no todos los problemas generan un error. Una arquitectura mal planteada puede funcionar o una vulnerabilidad puede permanecer oculta. 

Incluso una aplicación puede devolver resultados incorrectos sin que el sistema llegue a mostrar ningún fallo. En esos casos, la IA puede seguir avanzando por un camino equivocado porque no tiene una señal clara que le indique que debe detenerse.

Por eso también importan el contexto y la supervisión, donde un agente de IA necesita conocer las reglas, objetivos y límites del proyecto, pero cuanto más información acumula, más difícil puede resultar mantener todo ese contexto bajo control.

La idea de Nate Gentile es que el desarrollo de software tiene tres trabajos distintos y que la IA no tiene el mismo nivel de fiabilidad en todos ellos:

1. Analizar el problema: Entender qué necesita realmente el usuario o la empresa, qué restricciones existen, qué casos especiales hay y cuál es el problema que se intenta resolver.

2. Diseñar la solución: Decidir cómo debe construirse el sistema, qué arquitectura utilizar, cómo organizar sus componentes, qué base de datos necesita, cómo se comunicarán las distintas partes y qué compromisos hay que asumir.

3. Programar: Convertir ese diseño en código, probarlo, corregir errores e implementar las funciones.

La inteligencia artificial ya es buena en la tercera fase y también puede ayudar mucho en la segunda, pero el problema está en confiarle las tres de principio a fin. 

Puede escribir perfectamente el código de una solución que parte de un análisis equivocado o de un diseño que no era adecuado para ese proyecto.

Y ahí está exactamente lo que Nate quiere decir cuando afirma que “la fantasía” de que una IA analice el problema, diseñe el sistema y lo programe todo por sí sola sigue siendo complicada. 

Ya que no basta con que el código funcione, sino que antes de todo hay que saber qué problema se está resolviendo y cuál es la solución correcta.

La IA podía construir funcionalidades y corregir errores, pero puede terminar tomando decisiones equivocadas dentro de un proyecto real. El problema es que no tiene el criterio necesario para entender las consecuencias de sus propias decisiones.

Y aquí habría que desarrollar las tres fases completas, dejando claro que el verdadero límite no está en escribir código, sino en entender el problema, tomar las decisiones correctas y asumir las consecuencias. 

El trabajo del programador está cambiando

Es importante mencionar que esto no significa que haya que seguir escribiendo código línea por línea para justificar la existencia del programador. De hecho, esa es precisamente una de las partes que más está cambiando.

El profesional puede dedicar menos tiempo a implementar funciones y más a definir requisitos, dividir problemas, diseñar la arquitectura, revisar resultados, controlar la seguridad y decidir qué debe hacer cada agente. 

En proyectos pequeños, la IA puede encargarse de casi todo. Cuando el software afecta a miles o millones de usuarios, el margen para dejarla trabajar sin control se reduce mucho.

La cuestión, por tanto, no es si la inteligencia artificial puede programar, porque ya puede hacerlo. Sino que la cuestión es quién decide qué debe programarse y quién responde cuando una solución aparentemente correcta resulta ser un desastre.

Ahora, el papel del programador se está desplazando hacia las decisiones que están por encima del código. Y cuanto más importante sea el software, más valor tendrá alguien capaz de entender el sistema completo, detectar los errores de la IA y asumir la responsabilidad de lo que finalmente llega a producción.

Más información sobre: