Por qué una sola persona puede construir lo que antes tomaba cinco

La disciplina de diseño, no la velocidad de los agentes, es lo que permite que la inteligencia artificial multiplique a quien construye solo, y no solo sus errores.

Read this in English

El 22 de abril escribí la primera línea de código; el 23, Night Shift ya estaba en línea, cobrando dinero real: una aplicación financiera para gente que gana en efectivo y propinas, construida por una sola persona en un día. La primera versión tomó un día. Hacerla confiable tomó los noventa días siguientes — unos setecientos commits, yo solo.

La cuenta que casi todos hacen mal sobre la IA y la velocidad

Cuando la gente escucha que "una sola persona ahora puede hacer lo que antes tomaba cinco," casi siempre asume que se trata de velocidad para escribir código. Es el problema equivocado. John Ousterhout enseña diseño de software en Stanford, y en una charla sobre el tema, traza una línea entre dos tipos de programadores.

Los programadores tácticos optimizan para que algo funcione, ya, ahora mismo. Los programadores estratégicos pagan un impuesto de diseño —Ousterhout calcula un rango razonable de diez a veinte por ciento de tu tiempo— para que el sistema siga siendo fácil de cambiar más adelante.

El enfoque táctico se siente más rápido, por un tiempo. Luego llega la cuenta, porque, en palabras de Ousterhout, "la complejidad no es un solo error que cometes" —son miles de errores pequeños, cometidos por quien tuviera prisa esa semana.

La versión extrema de esa persona es lo que él llama un tornado táctico: alguien que saca adelante volúmenes enormes de código que apenas funciona un ochenta por ciento, se gana aplausos por la velocidad, y deja el desastre para quien llegue después. Dale a esa persona una flota de agentes y no arreglaste el tornado. Le diste cuatro manos más.

Cómo es una interfaz profunda

El mejor ejemplo de buen diseño de Ousterhout es la entrada y salida de archivos en UNIX: cinco funciones —open, read, write, close, seek— que esconden cientos de miles de líneas de gestión de disco, caché y controladores que la mayoría de los programadores nunca vuelve a pensar. Eso es una interfaz profunda: una abertura pequeña hacia un cuarto enorme. La mayoría del software falla esa prueba al revés, con una interfaz casi tan complicada como lo que se supone que esconde.

Night Shift es la versión de esa idea que de verdad tuve que construir. Cada pantalla, cada notificación, cada correo sale en inglés y en español —cincuenta y tres archivos en inglés, cincuenta y tres en español— y el despliegue falla por completo si los dos se desalinean. La interfaz cabe en una sola frase: funciona en los dos idiomas, siempre; todo lo que Ousterhout llamaría la complejidad real vive debajo de esa frase, justo donde debe estar.

La parte que parece un fracaso

No todo en esos noventa días fue avance. A medio camino, ya había construido una segunda versión de Night Shift —cientos de commits, mil setecientos tests— una mejora real, en el papel, sobre la versión que la gente realmente usaba. Estaba sobre-construyendo para la demanda que tenía enfrente.

Así que la dejé en pausa —no la borré, la pausé— y volví a fortalecer la versión de la que la gente ya dependía. El producto no necesitaba un mejor motor. Necesitaba más gente usándolo.

Visto de otra manera, es tiempo real invertido en algo que nadie pidió. No tengo una respuesta clara sobre cuál de las dos lecturas es la verdadera. Probablemente las dos.

Lo que en realidad multiplica

Aquí es donde se cruzan los dos hilos. Una flota de agentes no te vuelve estratégico. Solo hace que lo que ya eres pase más rápido.

Dale a un tornado táctico cinco agentes y obtienes cinco tornados corriendo al mismo tiempo, cada uno sacando código que apenas funciona un ochenta por ciento más rápido de lo que cualquier tornado humano podría solo —cinco estelas de daño en vez de una.

Dale esa misma disciplina —pagar el impuesto de diseño, mantener las interfaces profundas y aburridas por fuera— una flota de agentes, y pasa algo distinto. El costo extra que antes hacía tan difícil vender la programación estratégica —porque es más lenta al principio, y lo lento es difícil de vender a quien te paga por sprint— deja de ser el cuello de botella.

Los agentes absorben el volumen. La disciplina decide para qué sirve ese volumen.

Esa es la cuenta real detrás de que una persona haga lo que antes tomaba cinco. No es cinco veces la velocidad para escribir. Es un instinto de descomposición que antes corría al ritmo de una sola persona, ahora con el rendimiento de cinco agentes empujando detrás.

Lo que todavía no sé

Ousterhout dice que la brecha entre un programador promedio y un programador diez veces mejor es real, bien conocida en el campo, y nunca se enseña a propósito. Nadie te sienta a enseñarte descomposición como te enseñan un bucle for.

Así que esto es lo que no tiene un final ordenado. Si la disciplina que hace que los agentes te multipliquen a ti, y no a tu daño, no es algo que enseñe una clase, y tampoco es algo que enseñe un agente, no sé cómo la próxima persona la consigue antes de vivir su propia versión de los noventa días.

Tal vez no te los puedes saltar. Tal vez ese es justo el costo del diez a veinte por ciento, pagado una sola vez, en una moneda que ninguna flota de agentes puede pagar por ti.