Persiguiendo fronteras
Mi primer programa escupía porcentajes en una pantalla negra. No tenía botones, ni colores, ni una animación simpática para disimular que adentro había cuatro cálculos bastante discutibles. Era un predictor de resultados de la Copa América. Le daba datos de partidos y me devolvía probabilidades de victoria, empate o derrota.
Una calculadora con grandes pretensiones escrita en Python.
Yo estaba fascinado.
No recuerdo si acertaba, pero la verdad es que me importaba poco. Había conseguido que la computadora hiciera algo que yo había imaginado. Y lo había conseguido sin saber programar.
Hasta ese momento, para mí el software era algo que hacían otros.
Empecé a usar ChatGPT a fines de 2023. Le preguntaba cosas todos los días, le planteaba problemas de lógica, leía sobre esos modelos de lenguaje que supuestamente predecían la siguiente palabra. Me costaba reconciliar esa explicación con lo que tenía enfrente. Predecir la siguiente palabra parecía una actividad bastante modesta para algo que podía discutir conmigo cómo resolver un problema.
Entonces un amigo, de esos inquietos que siempre están metidos en algo, me dijo:
—Lo estoy usando para programar.
Él tampoco era programador. Yo trabajaba con instalaciones solares y consultoría en energías renovables. Podía hablar de paneles, proyectos, inversiones. Si me dabas un archivo de Python, mi primera pregunta era con qué se abría.
Pero aquella frase me quedó picando. Si él podía, yo quería probar.
Arranqué desde abajo. Bien abajo. “¿Dónde pongo esto?”. “¿Cómo lo ejecuto?”. “¿Por qué aparece todo rojo?”. ChatGPT escribía código y después tenía que explicarme qué hacer con el regalo. Había algo muy divertido en esa relación: yo podía pedirle un programa antes de saber cómo se ponía en marcha uno.
Así apareció el predictor.
Tomaba los últimos diez resultados oficiales de los equipos y sus rivales. Ponderaba rachas, partidos recientes, victorias amplias. Yo decidía que una cosa debía pesar más que otra y el modelo me ayudaba a convertir esa ocurrencia en un cálculo. Después ejecutaba el código y miraba los resultados en la terminal.
Ahí estaban. Mis porcentajes. Con una cantidad de decimales que seguramente les daba más autoridad de la que merecían.
Y enseguida quería cambiar algo.
¿Qué pasa si le damos más peso a los últimos partidos? ¿Y si consideramos contra quién ganó? Porque meterle cuatro goles a un rival flojo no debería valer lo mismo que ganarle al campeón. ¿Y si agregamos esto? ¿Y aquello?
Me había enganchado. Podía pasar de una idea a otra sin encontrarme, cada vez, con la pared de no saber escribirla en un lenguaje de programación. Más adelante le puse una interfaz en HTML. Ahora mi invento tenía cara. Bastante básica, pero cara al fin.
Me cuesta explicar lo grande que fue ese descubrimiento sin sonar exagerado. Era un programa chico, sí. Pero yo no estaba mirando el tamaño del programa. Estaba pensando en todo lo demás que podía intentar.
Por supuesto que enseguida me encontré con cosas que no entendía.
Los conceptos se iban apilando con una velocidad superior a la calidad de los cimientos. Podía conseguir que algo funcionara y no tener del todo claro por qué. Cuando había que conectar partes, configurar programas o mover información de un lugar a otro, la fiesta perdía bastante ritmo.
ChatGPT resolvía bien la lógica si yo le servía el problema cortado en pedacitos. Pero el proyecto completo lo llevaba yo. Copiaba código, lo pegaba, ejecutaba, llevaba el error de vuelta al chat. A veces el modelo se quedaba ciego: no podía ver lo que pasaba en otra aplicación y empezaba a darme instrucciones para que yo hiciera de manos, ojos y cadete.
Teníamos una inteligencia artificial y un servicio de mensajería. El servicio de mensajería era yo.
Me puse a estudiar. Fundamentos de IA en cursos de la Universidad de Helsinki, funcionalidades esenciales de Python. Necesitaba entender un poco mejor el lío en el que me estaba metiendo. Y también quería dejar de preguntar algunas cosas.
Mientras tanto, los modelos mejoraban más rápido de lo que yo aprendía. Apenas me acomodaba a una forma de trabajar, aparecía otra posibilidad. Era un poco frustrante y bastante adictivo. Lo que estudiaba me servía, pero nunca llegaba esa sensación de “listo, ahora entiendo el mapa”.
Ya no lo espero. Acepto que ese punto no creo que llegue.
En algún momento empecé a hacer estas cosas por trabajo. Automatizaciones, herramientas internas, aplicaciones web. Ya no estaba jugando con quién ganaba un partido; había procesos reales que se podían mejorar y gente que iba a usar lo que construyera.
También aparecieron límites menos entretenidos que un error de código. Ideas que necesitaban inversión. Prototipos que eran apenas un pedazo de un proyecto mucho más grande. Horas que alguien tenía que poner. Plata que alguien tenía que gastar.
La IA no me resolvió esa parte.
Pero construir rápido tenía una utilidad enorme: podía sacar una idea de mi cabeza y someterla a algo más exigente que mi propio entusiasmo. Usarla. Mostrarla. Descubrir que una función era incómoda, que faltaba una pieza o que aquello tan brillante en abstracto no le importaba demasiado a nadie.
También podía pasar lo contrario.
Un prototipo te permite decir “mirá, se puede”. Después viene la conversación sobre si funciona bien, si aguanta, si es seguro, si alguien va a querer usarlo el martes a la mañana, cuando ya se le haya pasado la novedad.
Son conversaciones distintas. A mí me interesa llegar rápido a la segunda.
Después apareció Cursor y me ahorró una cantidad obscena de viajes entre ventanas.
La IA estaba adentro del proyecto. Podía recorrer archivos, tocar varias partes, seguir relaciones que antes yo tenía que explicarle a mano. El cambio se sentía en el cuerpo: menos copiar y pegar, menos interrupciones, más tiempo pensando qué quería hacer.
Me pude dedicar de lleno a desarrollar.
Los modelos seguían mejorando y yo empezaba a pedir cosas que unos meses antes ni hubiera intentado. Esa es una de las partes más difíciles de medir de todo esto. No es solamente cuánto más rápido hacés lo mismo. Es lo que se te ocurre pedir una vez que comprobaste que lo anterior ya sale.
Tu ambición se malacostumbra.
El predictor de fútbol había dejado de impresionarme hacía rato. Ahora quería aplicaciones, automatizaciones completas, sistemas que hablaran entre sí. Y cada vez que algo funcionaba aparecía el mismo pensamiento, bastante peligroso para cualquier agenda:
Bueno, ya que estamos…
Ahora estoy escribiendo durante una pausa de un livestream de tres días. El equipo de SpaceXAI está mostrando Grok Bot con una consigna que parece diseñada para gente como yo: construir una empresa de punta a punta con agentes.
Una empresa. Ya ni siquiera nos alcanza con pedir una aplicación.
Estuve probándolo y de ahí salió este sitio. Le expliqué lo que quería a un agente principal, un Chief, que repartió trabajo entre otros agentes. Diseño, código, repositorio, despliegue en Vercel. Cosas para las que antes yo tenía que abrir programas, conectar servicios y seguir instrucciones fueron ocurriendo dentro del mismo flujo.
Hace unos años no sabía dónde pegar el código. Ahora tengo un Chief. Mi carrera corporativa ha sido rarísima.
Lo que me interesa de esta etapa es que empieza a resolverse aquel problema de la IA ciega, esperándome del otro lado de una aplicación. Puede actuar sobre más partes del proceso. Necesita menos viajes de su cadete.
Y yo, naturalmente, ya estoy pensando qué más darle.
Ahí conviene bajar un cambio. Porque una cosa es entregarle los resultados de diez partidos y otra es darle acceso a cuentas personales, repositorios y servicios. La comodidad te invita a abrir puertas. Después hay que acordarse de cuáles abriste.
Me entusiasma delegar. También me inquieta cuánto puedo terminar dependiendo de sistemas cuyo funcionamiento no controlo por completo. Las dos cosas me pasan a la vez. No tengo una conclusión elegante que las acomode.
Cuando empecé, mi falta de conocimientos decidía bastante rápido hasta dónde podía llegar. Tenía una idea, avanzaba un poco y chocaba.
Hoy todavía choco, pero bastante más lejos.
Por eso me cuesta no entusiasmarme cuando pienso en agentes trabajando durante horas, llevando adelante procesos que antes ni se me hubiera ocurrido intentar solo. No porque crea que todo va a salir bien. Porque ahora puedo probarlo.
Y ahí aparece una incomodidad nueva.
Durante mucho tiempo, “no sé programar” fue una explicación suficiente para dejar una idea en el cajón. No era una excusa inventada: era un límite real. Pero ese límite me viene dejando cada vez más espacio y, a la vez, menos lugares donde esconderme.
Ahora tengo que decidir qué quiero hacer con todo esto. Qué problema conozco lo suficiente. Qué vale mi tiempo. Qué estoy dispuesto a terminar cuando se acabe la parte divertida de ver aparecer cosas en una pantalla.
Al predictor nunca le pedí demasiado. Me alcanzó con que devolviera unos porcentajes y me dejara jugar a cambiarlos.
Con lo que viene voy a tener que ser un poco más exigente y cada vez tengo herramientas más potentes para intentarlo.