{ }  unattended.md #017 · Mi IA es autónoma (y me aburro)  archivo
El Diario de AlpacaTech
// edition: 017 · sunday, 09 aug read: ~6 min

Mi IA es autónoma (y me aburro).

¿Sabes? Mi inicio de día con el trabajo ha cambiado mucho.

Ahora llego, enciendo el ordenador, pongo un par de tickets a producirse... y ya está.

Me puedo tirar dos horas sin tocar el ordenador fácilmente.

No es que no quiera tocarlo. Es que no puedo: mis flujos están produciendo por mí.

Uno de los tickets que hice esta semana era una funcionalidad completa.

Tenía que conseguir que nuestros usuarios pudiesen llevar invitados a los eventos.

El ticket de invitados a los eventos

Con el diseño técnico ya realizado, inicio el flujo y Claude se encarga de todo. Yo sigo haciendo otras cosas, claro: diseños técnicos, revisar esta newsletter, lo que toque. Pero implementar, lo que es implementar, no.

Y es... bastante raro.

Para empezar, a nivel de rutina no estoy nada acostumbrado. Y aún no llevo bien estar «quieto» durante tanto tiempo.

(cuando programo la funcionalidad entera, el flujo puede estar 5-6 horas tranquilamente).

El flujo corriendo solo

Es algo raro también porque es nuevo. Aunque yo me he dado cuenta de esto hace poco.

Pensaba que mi flujo era superautónomo.

Y en parte lo era. Tenía un montón de pasos mecánicos que ya no hacía yo: se los pasaba a la IA, ella me devolvía el resultado y seguíamos. Pero había otros como aprobar el plan o darle el okay para responder a las MRs en los que tenía que meter mano sí o sí.

A esto le he puesto nombre mientras escribía: autonomía parcial.

autonomía parcial
$ flow status
✓ enriquecer ticket
✓ trazar plan
⏸ esperando aprobación humana
· implementar
· responder MRs
↳ me fui a comer  → sigue esperando
↳ apagué el ordenador  → hasta mañana

Que es una «autonomía» (sí, con comillas). Una autonomía de mentira porque por debajo solo hay distintos pasos a los que tengo que dar mi aprobación.

Por ejemplo si te hablo del paso de implementación, la IA trazaba el plan, me lo presentaba, yo lo revisaba y entonces se ponía a implementar.

Si estaba en una reunión o me había ido a comer, el pobre Claude se quedaba ahí esperando. Y si apagaba el ordenador, ahí se quedaba hasta el día siguiente. Sin trabajar (y que yo sepa, no le había dado horas libres a Claude 😈).

En resumen: la IA solo trabajaba cuando yo estaba delante.

Esto ya te sonará porque fue lo que nos dijo nuestro CTO en una reunión pasada, y ya te lo conté en otra newsletter.

Desde que salí de esa reunión he estado trabajando en un sistema autónomo de verdad, y no en algo «autónomo» como lo que yo tenía.

Así que me puse a montar cosas que funcionen solas. Y no solo para el código, sino para todas las cosas en las que tenía a Claude computando: lo he hecho igual con mis checkpoints semanales y con las estadísticas del canal.

Si tú quieres hacer esto, te aviso que hay que cambiar la forma de pensar.

Y es que en los sistemas nuevos ni siquiera tengo una terminal de Claude a la que pueda entrar mientras están corriendo. Se acabó el «veo que la está cagando, lo toco un poco y que siga».

Las piezas del sistema

Hace unas semanas te contaba que compensa arreglar el sistema en vez del fallo de hoy. Entonces era una elección más: podías parchear, era más rápido, y muchos días parcheabas.

Ahora ni siquiera es una elección, lo he adoptado como un mantra:

Un error se comete una vez.

El único sitio donde meto mano es en el propio sistema para iterarlo y que no vuelva a ocurrir.

Si el flujo toma una decisión que no me convence, no entro a corregir ese ticket. Cojo esa información y me voy a la pieza que la tomó, para que la próxima vez salga bien sin que yo aparezca.

Y el mejor ejemplo que tengo ya te lo conté.

Aquel ticket en el que el back y el front no cuadraban: cada lado había cumplido los requisitos a su manera, sin que nadie fijara el contrato entre los dos. Lo arreglé a mano y seguí, que es justo lo que ya no hago.

Ahora hay una pieza en el flujo que solo se dedica a eso (api-contract-checker). Entra como revisor, comprueba si el front y el back hablan del mismo contrato y, si no, se lo devuelve al agente que lo escribió para que lo rehaga.

Ese fallo ya no llega hasta mí. Y no porque yo esté más atento, sino porque estoy trabajando en un sistema autónomo de verdad.

Y para ello tuve que darle muerte a mi megaprompt.

Yo antes tenía uno gigante. Te he hablado de él mil veces. Funcionaba bastante bien. He sacado mucha funcionalidad con su ayuda. Pero cuando quería que funcionase mejor o que no volviese a cometer algún error, era horrible.

El megaprompt

Le añades instrucciones, le pones mayúsculas, y el prompt sigue haciendo un poco lo que le da la gana. Al final tiene muchas líneas de texto, y no son reglas divinas: él puede elegir qué ignora y qué no.

Con piezas independientes (y pequeñas) la cosa cambia. Cada parte del proceso va por su lado y se coordina de forma programática, así que cuando algo falla puedes ir a la pieza exacta, entender por qué falló y arreglarla ahí. En este caso lo estoy montando con Rust porque es el lenguaje con el que programé Forge.

Esto es lo que hace que el sistema mejore de verdad y no solo lo parezca. Cuando acabe el flujo y lo tenga ya funcionando al 200% te haré una newsletter dedicada exclusivamente a él.

Pero para llegar hasta aquí he tenido que hacer eso que ya te conté: desapegarme del código.

Si te duele que te toquen el código, no vas a poder dejar a un agente trabajando solo dos horas. Vas a querer entrar. Vas a querer mirar cómo va. Y en cuanto entras, se acabó: vuelves a ser tú quien marca el ritmo. Pierdes la autonomía.

Yo estoy ganando autonomía, y con ello mucha velocidad. Pero hay algo mejor todavía: paz mental.

Con este tipo de sistemas peleo mucho menos con Claude. Antes cada tarea era una negociación. A veces me tocaba el Claude tonto y otras el Claude listo. Era una caja negra cuando se trataba de mejorar. Ahora cada pieza hace lo suyo, y la que no lo hace la arreglo una vez y listo.

Aun así es una transición complicada.

Porque dos horas sin poder tocar el ordenador suena a sueño cumplido, y cuando lo vives es... complicado. Es de las pocas etapas laborales en las que me estoy aburriendo. Además, aunque no lo hayas hecho tú, la responsabilidad sigue siendo 100% tuya.

Llevamos toda la vida midiendo si el día ha ido bien por lo que hemos tocado con las manos. Y ahora resulta que el mejor día posible es uno en el que no tocas nada y todo avanza igual.

Me he pasado días arreglando el sistema para que dejara de esperarme,
y ahora el que espera soy yo.

Todavía no me lo creo del todo.

Más autonomía me está dando más horas libres.

Horas que no sé muy bien dónde invertir.

Y... esa parte no la arregla ningún flujo.

// appendix
$ weekly.log

Tres apuntes de la semana

+
funcionó
Trabajar la observabilidad.
Siempre había oído hablar de ella y siempre me había parecido un coñazo. Pero con los flujos de IA me he dado cuenta de que es vital: si iteramos tan rápido, necesitamos alguna manera de saber hacia dónde hay que iterar. Para mí debería ser la pieza 0 de cualquier sistema, así que estas semanas voy a meterle horas a arquitectura de software y observabilidad.
~
aprendí
Agradecer lo que tenemos.
En un chat del trabajo una compañera se quejaba de que no nos dan libre el día de nuestro cumpleaños. Mi jefe le contestó que es libre de cogérselo si quiere, y que además tenemos suerte: en el resto de la empresa a la mayoría le exigen gastar al menos una semana de vacaciones en agosto, que es cuando el mercado español está medio parado. A nosotros no nos fuerzan nada. Se me había olvidado mirarlo por ese lado.
me bloqueó
Las tareas pequeñas.
Suena al revés de lo normal, pero es así. Ahora que tengo montado el flujo programático, una tarea enorme y una minucia me cuestan casi lo mismo: la diferencia son treinta o cuarenta y cinco minutos, porque los pasos que sigo son exactamente los mismos. Así que me compensa mucho más condensar y sacar funcionalidades grandes que meterme con cositas pequeñas.
$ picks

Te recomiendo

producto
Logitech MX Master 4
// nunca lo he contado por aquí

Logitech MX Master 4

mi ratón · bluetooth

Es mi ratón y nunca lo he contado por aquí. Me lo compré este año porque quería uno bueno que no me diese guerra con la ruedita en el Mac. Pero lo que te quiero destacar no es eso: es que sea Bluetooth. No te das cuenta de la comodidad que da hasta que lo tienes, y menos todavía con uno bueno como este, al que la batería le dura dos o tres semanas tranquilamente. Desde que lo uso no hay día que no piense lo mismo: ojalá se me estropee el teclado para cambiarlo por uno Bluetooth y quitarme los cables de encima.

$ open amazon · MX Master 4
video
Nadie va a despedirte. Es peor.
// nuevo en el canal
title: "Nadie va a despedirte. Es peor."
// de qué va
↳ la reunión con mi CTO: nos dijo que sobrábamos
↳ pero que no se nos iba a despedir
↳ y una predicción sobre el futuro de los desarrolladores
$ inbox

De la comunidad

P
@pwronline
▶ youtube · hace 1 día
«no van acabar con los programadores eh? xD viendo el video 3 años después xDDD en mi empresa estábamos 16 programadores, ahora quedamos 8 y ya ni programamos, hago la QA de la IA es una pena.»
// reply no tengo la bola mágica para saber si esto acabará con nosotros o no, así que ahí no me meto. Lo destaco por la segunda parte, que creo que tiene toda la razón. Ahora mismo el valor del programador está al principio y al final de la cadena: o estás haciendo diseños técnicos, o estás comprobando que lo que ha hecho la IA funciona. En medio ya no estamos. Nosotros ni siquiera revisamos las MRs muy a fondo, y en septiembre esperamos quitar la revisión de código del todo.
// tu turno

Y tú, ¿en qué gastas las horas libres?

Si la IA te ha dejado huecos en el día, ¿qué haces con ellos? Dale a responder y cuéntamelo. Lo leo todo (poquito a poco).

$ reply --to=newsletter@alpacatech.dev 
↳ asunto: Mis horas libres
// firma
~/alpacatech $
$ subscribe

¿Te ha gustado? Cada domingo escribo una así.

Acabas de leer una edición de El Diario de AlpacaTech. Si quieres recibir la próxima en tu bandeja, apúntate.

// ~5 min de lectura · domingos a las 09:00