El futuro del software es agéntico

5 min de lectura

También disponible en English, Português, 简体中文, 日本語, 한국어, Deutsch, Français, ไทย, Tiếng Việt y Te Reo Māori.

La historia del software es una historia de entregarle trabajo a la máquina. Empezamos perforando instrucciones en tarjetas, luego dejamos que los compiladores convirtieran lenguajes legibles en código máquina, luego dejamos que las máquinas virtuales olvidaran en qué computadora física estábamos, luego dejamos que la nube olvidara la máquina por completo. Cada paso parecía, en su momento, ceder el control. Cada uno era en realidad subir un nivel: cambiar una capa de esfuerzo por una capa de apalancamiento. El desarrollo agéntico es el próximo paso de esa misma larga línea, y es mayor que la mayoría.

La abstracción siempre fue la historia

Ninguno de los cambios anteriores volvió obsoletos a los programadores; cambiaron en qué gastaba el día un programador. El compilador no terminó con la programación, terminó con escribir ensamblador a mano. La nube no terminó con las operaciones, terminó con montar servidores en racks. Cada vez que la máquina absorbió la capa de abajo, el humano se movió a la capa de arriba: de gestionar memoria a gestionar lógica, de gestionar servidores a gestionar sistemas.

El patrón es tan consistente que casi es una ley: lo que se vuelve barato de automatizar deja de ser donde está el valor, y el valor se mueve hacia lo que ahora es lo más escaso. Durante mucho tiempo lo escaso fue la implementación: convertir la intención en código que funciona. Esa es exactamente la capa que los agentes están absorbiendo ahora.

Un agente es un colega, no un autocompletado más rápido

El error tentador es archivar a los agentes de programación bajo "mejor autocompletado". Son otra clase de cosa. El autocompletado termina tu frase; un agente toma un objetivo y actúa sobre él: decide, dentro de los límites que fijas, qué cambiar y cómo, y luego lo hace. Es menos como un teclado más listo y más como un colega que resulta vivir en el repositorio: le das un issue, se va, y vuelve con un merge request.

Esa es la forma con la que construimos TaskGoblin. No es un panel en tu editor. Es un compañero en las herramientas que tu equipo ya usa —issues asignados, menciones en hilos, revisión de pull requests— que hace la implementación en un sandbox y devuelve trabajo que tú revisas. La unidad de interacción no es una pulsación. Es una tarea.

Cómo empieza a verse el día

Sigue eso un paso más y el día de trabajo cambia de forma. Las actualizaciones de dependencias que nadie quiere hacer se hacen de noche. La prueba inestable se poda antes del standup. Una función bien especificada llega como un pull request en borrador con scaffolding y pruebas ya puestas, esperando criterio en vez de tecleo. Un product manager mueve un ticket y la primera versión del cambio está abierta para cuando alguien mira. La cinta transportadora del esfuerzo —el trabajo necesario y poco glamuroso que llena tanto de la semana de un ingeniero— por fin se ralentiza.

Lo que queda es la parte que siempre fue el trabajo de verdad: decidir qué debe construirse, notar cuándo la implementación obvia está sutilmente mal, sostener el gusto y el contexto que ninguna cantidad de capacidad bruta proporciona. El ingeniero pasa de autor a editor: de producir cada línea a dirigir qué se produce y dictaminar si está bien.

La pregunta cambia de "¿podemos?" a "¿deberíamos?"

Cuando la implementación es barata y rápida, la restricción que ata deja de ser si puedes construir algo y pasa a ser si vale la pena construirlo. Iterar se vuelve lo bastante barato como para que las revisiones de diseño se vuelvan exploratorias: prueba tres versiones en vez de discutir sobre una. Un equipo pequeño puede operar con la producción de uno mucho mayor, porque el apalancamiento por persona subió. Y la ventaja competitiva se desplaza en consecuencia: lejos de quién puede ejecutar, hacia quién tiene el gusto para saber qué ejecutar, la empatía para entender para quién es, y la claridad para articular el problema lo bastante bien como para que un agente pueda lanzarse a él.

Ese es el replanteo bajo todo el ruido. "Ahora todos gestionamos enjambres de juniors" es la versión ansiosa; la versión más cierta es que el apalancamiento se movió, y la habilidad escasa se movió con él: hacia arriba, al criterio.

Dónde permanece el humano

Una versión honesta de este futuro no finge que el humano desaparece. Es lo contrario: a medida que la máquina absorbe la implementación, las decisiones humanas se vuelven más consecuentes, no menos, porque cada una dirige ahora mucha más producción. Por eso TaskGoblin mantiene deliberadamente a una persona en el merge: el agente escribe el código y revisa el cambio, pero nunca aprueba ni fusiona. El criterio sobre si algo es correcto para este sistema, ahora mismo, es justamente la capa que no se automatiza, y es la capa a la que todos estamos subiendo.

La cinta transportadora se ralentiza. Lo que determine quién dé forma a la próxima era del software no será quién pueda implementar —la máquina se está quedando con eso, como se quedó con las capas de abajo. Será la imaginación, el gusto y el criterio para apuntar toda esta capacidad hacia las cosas que de verdad vale la pena construir.