Durante años, para muchas personas programar significó sólo «escribir código». Mucha gente olvidó por el camino el verdadero significado de programar: resolver problemas. Algunos ya lo sabían perfectamente, otros ya no lo recordaban, y otros nunca lo llegaron a aprender.

Actualmente, ese objetivo no ha cambiado. Lo que ocurre es que antes escribir código era el único camino para resolver esos problemas.

Ahora las cosas son diferentes. Puedes utilizar un modelo de inteligencia artificial (LLM), pedirle casi cualquier cosa, y tras unos minutos (o incluso segundos), tendrás una mágica respuesta con la solución personalizada para tu problema.

Esto, para mucha gente es un sueño hecho realidad. Para otros, es una pesadilla que le hace sentirse obsoleto.

La sensación «me estoy quedando atrás»

Si utilizas redes sociales o sueles estar al día de noticias tecnológicas, es muy habitual (sobre todo por parte de empresas o fanáticos de IA) encontrarte con noticias o mensajes que generan FOMO: si no utilizas la última herramienta o modelo de IA, te estás quedando atrás*.

* De hecho, en la cabecera de la página principal de esta web tenemos un Hype-Generator parodiando esto.

Suelo defender la idea de que la Inteligencia Artificial es una burbuja. No como tecnología, puesto que se trata de un avance tecnológico que no va a desaparecer. Sin embargo, si que creo que existe mucho humo y una burbuja en todo el entramado empresarial alrededor de la IA.

Esto y la gran cantidad de SLOP que nos encontramos generado con IA, hace que a mucha gente le cause rechazo, y lo utilice como excusa para huir de la IA y aferrarse a la idea de que la IA sólo causa problemas.

SLOW vs SLOP

Desde mi punto de vista, lo interesante de la Inteligencia Artificial es usarla de forma inteligente, con criterio, evitando sus dos extremos:

SLOW vs SLOP

Manténte en un punto medio, donde sabes como aprovecharla aplicando criterio, sabiendo establecer límites (para obtener lo que te interesa para tu caso específico).

¿Qué tipo de programador eres?

Si has llegado hasta aquí, probablemente significa que estás de acuerdo conmigo o al menos te interesa este tema. A continuación voy a contar lo que creo que son los perfiles de desarrollador que nos encontramos en la actualidad y quizás, quien sabe, puedas descubrir nuevos caminos y te intereses por ellos.

Escribe cada línea, la entiende y conoce como funciona. El control es máximo; la velocidad y la revisión depende de su experiencia. Los demás comparan siempre con este nivel de referencia.

El desarrollador tradicional trabaja de forma «artesana»: prefiere tener control absoluto de todo lo que hace y no utiliza IA porque la considera inútil, contraproducente o «se equivoca demasiado». No niego que puedan existir desarrolladores que desempeñen su trabajo perfectamente de esta forma. De hecho, suelen ser perfiles con mucho conocimiento. Sin embargo, la mayoría de casos que me encuentro, son perfiles que no saben trabajar en equipo, comunicarse y por su ego son incapaces de darse cuenta que quizás, la IA se equivoca demasiado porque no ha dado suficiente contexto o simplemente no saben usarla correctamente.

Pides, copias y pegas, ejecutas y esperas que funcione. Es perfecto para experimentos, pruebas y prototipos desechables. En producción, la falta de conocimiento y revisión acaba pasando factura.

El vibe coding es el extremo opuesto al desarrollador tradicional. Generalmente, se trata de un tipo de usuario que tiene muy pocos conocimientos técnicos, pero mucho conocimiento de producto (tiene muy claro lo que quiere). Esto, sumado a la Inteligencia Artificial, es un combo explosivo: Pides algo, la IA lo genera, compruebas por encima si funciona, continuas pidiendo cambios. Al no ser un proceso exhaustivo es muy rápido de iterar. ¿El problema? Como no tienes conocimiento, tampoco sabes si está bien hecho, como está hecho, o como arreglar algo si se rompe. Para prototipos o pruebas de concepto, es perfecto. El problema aparece cuando eso tiene que durar en el tiempo, permitir cambios, ser seguro, etc.

La IA propone, tú lees y decides. El chat acelera partes concretas, pero sigues leyendo, adaptando y validando el código. El desarrollador sigue aferrándose y no suelta el volante.

El desarrollador asistido por chat es un desarrollador que está abierto a utilizar IA, pero aún no se fía de darle el control. Lo que venimos hace tiempo llamando copiloto. Tú decides en todo momento qué se hace, la IA sólo te da información, consejos o fragmentos más o menos grandes de código. Aquí llegan ventajas como acelerar el ritmo de trabajo, pero al contrario que en el Vibe Coding, el desarrollador sigue al volante.

El agente ejecuta tareas de forma automática, consiguiendo resultados rápidos con aparente fiabilidad. Sin embargo, no hay control, no hay límites, no hay restricciones. Puede escalar muy rápido y salirse de nuestro control.

El desarrollador que utiliza agentes da un salto grande en el uso de la IA. Ya no sólo aconsejan, sino que leen archivos, ejecutan comandos, instalan dependencias y realizan tareas por su cuenta para cumplir los objetivos que le indicas. Eso permite avanzar a una velocidad que antes era impensable, pero también es donde aparecen más sustos si no sabes lo que haces: el agente puede tocar cosas que no debía, inventarse detalles o romper configuraciones. El desarrollador debe ser lo suficientemente avanzado como para controlar que esa tecnología avanzada funcione bien.

El agente trabaja estableciendo límites: tests, linters, permisos, revisiones automáticas y manuales. Pierdes algo de velocidad, pero ganas control, aumentas fiabilidad y evitas sustos y sorpresas.

Los agentes con harness añaden justo lo que faltaba en el paso anterior. Se le llama harness al conjunto de herramientas, verificaciones y sistemas para limitar al agente. Para evitar problemas, lo que hacemos es aprovechar bien sus capacidades, previniendo los posibles problemas aplicando conocimiento y experiencia. El agente sigue trabajando solo, pero dentro de un entorno controlado que se puede corregir.

Conclusión

En resumen, no se trata de usar el modelo de IA más potente, la herramienta preconfigurada más completa, ni tampoco escribirselo todo a un LLM y que te lo dé todo hecho. Se trata de saber aprovechar las herramientas de IA, ponerle ciertos límites y conocer que es mejor hacer con tus propias manos.

Y para eso, necesitamos criterio y seguir aprendiendo.