Cómo es programar en la era Post-IA
El desarrollo de software está sufriendo un gran cambio durante los últimos años
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:
-
1️⃣ Negacionista (SLOW): Si rehusas la IA, no podrás aprovechar las ventajas que te aporta la IA. Nunca podrás ser más rápido que una máquina (y cada vez son mejores). Si todo tu entorno usa IA, inevitablemente, te volverás lento y los demás serán más productivos.
-
2️⃣ Fanático de la IA (SLOP): La mayoría de la gente que utiliza IA sin criterio, acaba abusando de ella, generando SLOP y obteniendo desventajas por no utilizarla con cabeza, sabiendo adaptarla a tu objetivo y aplicar la experiencia o conocimiento que ya posees.
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.
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.
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.
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 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.
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.




