La comprensión es el nuevo cuello de botella
(geoffreylitt.com)- En una situación en la que el código escrito por agentes se sigue acumulando alrededor de las personas, el factor que limita la velocidad de desarrollo está dejando de ser la capacidad de generar código y pasando a ser la velocidad de comprensión humana para seguir el ritmo del sistema e imaginar el siguiente cambio
- El propósito de entender el código no se limita a la verificación para aprobar o rechazar resultados; también consiste en proponer la siguiente idea y participar en el proceso creativo a lo largo de múltiples bucles de trabajo con agentes
- Si antes de ver el diff de código crudo se lee un documento explicativo del código que reúna contexto, objetivo del cambio, diagramas interactivos y un diff narrativo, se puede captar más rápido la estructura y la intención del cambio
- Los cuestionarios del documento explicativo y los micromundos que permiten manipular directamente el proceso de ejecución hacen que la persona experimente los cambios de estado y el funcionamiento interno del sistema, en lugar de dejar que el agente juzgue por ella
- Si la IA no se usa solo como un medio de automatización para sacar a la persona del bucle, sino para crear herramientas y simulaciones orientadas a la comprensión, las personas y los equipos pueden participar aún más profundamente en el bucle
Humanos que no pueden seguir el ritmo de la generación de código
- Como una pila de código escrita por agentes que sigue creciendo alrededor de una persona, aumenta la cantidad de código generado, pero la velocidad a la que las personas pueden entenderlo no crece en la misma proporción
- Con solo leer cada diff de código línea por línea, es difícil seguir la velocidad de trabajo del agente
- Además del diff de código crudo, existen varias formas de entender el código, como las siguientes
- Documentos explicativos del código que enseñan el sistema y los cambios
- Cuestionarios que comprueban si realmente se entendió
- Micromundos para aprender manipulando directamente el funcionamiento interno
- Espacios compartidos donde todo el equipo forma el mismo modelo mental
La comprensión no es para verificar, sino para participar
- Una respuesta común a la pregunta de por qué las personas deben entender el código es que es para verificar el trabajo del agente
- Confirmar si cumple con la especificación
- Juzgar si la estructura es adecuada
- Decidir finalmente si se aprueba o rechaza
- La presentación lo expresa como un juicio binario de pulgar arriba o pulgar abajo
- Si se ve la verificación como el único rol de la persona, la comprensión se reduce al proceso de decidir si el resultado pasa o no pasa
- Pero los agentes también siguen mejorando su capacidad de autoverificación, ejecutando e inspeccionando directamente sus propios resultados y encontrando errores
- A medida que los agentes se vuelven mejores verificando, surge el problema de dónde queda el ser humano
- La alternativa es participar mediante la comprensión
- La persona debe saber qué está haciendo el agente para poder seguir siendo un miembro activo del proceso creativo
- Entender el sistema permite no quedarse en evaluar el resultado actual, sino pensar qué cambiar en el siguiente paso
Un proyecto no es un solo bucle, sino muchos bucles
- Un proyecto real no es un único bucle en el que se le da una instrucción al agente una vez y se recibe un resultado
- Está compuesto por muchísimos bucles iterativos conectados entre sí: definir objetivos, implementar, comprobar, corregir y extender
- En cada iteración, el nivel de comprensión del sistema que tiene la persona determina la calidad y el alcance de la siguiente idea
- Se necesitan suficientes conceptos y estructuras en la cabeza para abordar con fluidez preguntas como estas
- Qué se debe agregar o eliminar
- Qué estructura debe cambiarse
- Qué nuevas posibilidades surgieron a partir de la implementación actual
- Si falta comprensión, uno puede reaccionar al resultado del agente con un “más o menos se ve bien”, pero resulta difícil dirigir hacia dónde debe ir el proyecto
Deuda cognitiva que se acumula al posponer la comprensión
- Si se siguen aceptando los resultados del agente sin entender el sistema, a corto plazo se puede avanzar rápido
- Pero así como la deuda técnica aumenta el costo de los cambios posteriores, trabajar omitiendo la comprensión deja deuda cognitiva (cognitive debt)
- Cuando se acumula deuda cognitiva, las personas que participan en el proyecto pierden el hilo general
- Es difícil entender por qué el código llegó a tener su estructura actual
- Es difícil decidir dónde conectar nuevos requisitos
- Es difícil discutir la validez del siguiente cambio propuesto por el agente
- El problema en la era de la IA no es que no se genere código, sino que las personas no tengan suficientes conceptos sobre el sistema generado
Aplicar métodos educativos a la comprensión del código
- En un entorno de trabajo con IA que cambia rápidamente, el problema de construir comprensión humana se parece al problema que la educación lleva mucho tiempo abordando
- Para que se forme una comprensión real, no basta con transmitir datos nuevos: también hay que ofrecer contexto, intuición, práctica y feedback
- Los métodos desarrollados en educación también pueden aplicarse a la comprensión del código
- Proporcionar contexto e intuición antes de la implementación detallada
- Hacer que, después de leer, la persona recuerde y responda
- Ofrecer un entorno donde pueda manipular directamente reglas abstractas
- Hacer que comparta los mismos conceptos y vocabulario con otras personas
/explain-diff, que enseña los cambios
- /explain-diff es una habilidad que convierte los cambios realizados por un agente en un documento explicativo estructurado
- Puede generar salidas en formato HTML, Markdown o página de Notion, y el documento de Notion puede usarse como un entregable colaborativo donde los miembros del equipo comentan y discuten juntos
- No genera una simple lista de cambios de código, sino material explicativo diseñado para que las personas aprendan los cambios
- En un ejemplo de cambio de perspectiva en la pantalla de un juego, no muestra el código de inmediato, sino que aborda el tema en este orden
- Primero explica el modo de renderizado del motor de juego existente
- Presenta el objetivo del cambio: “hacer que el jardín se vea tridimensional usando una técnica de dibujo 2D”
- Explica qué es la proyección isométrica para que se entienda el principio visual del cambio
- Luego pasa al código de implementación real
Enseñar primero el contexto
- Una buena explicación empieza no por “qué cambió”, sino por “qué había antes de que cambiara”
- Si no se entiende el sistema de coordenadas y la estructura de renderizado del motor de juego existente, es difícil comprender la razón del cambio aunque se lea solo el nuevo código de perspectiva
- El documento explicativo primero complementa la estructura del sistema existente para que alguien que no tiene el mismo contexto que el agente pueda participar en la conversación
- No es un simple resumen, sino un proceso para traer de vuelta a la persona al contexto actual del proyecto
Crear intuición antes que detalles de implementación
- Si antes del código se explica la esencia del cambio en una frase, se puede entender hacia qué objetivo apuntan los detalles de implementación
- En el caso de hacer que el jardín se vea tridimensional, no se empieza explicando la fórmula de la proyección isométrica, sino transmitiendo primero el objetivo visual de hacer que un dibujo plano parezca 3D
- Después de entender el contexto y el objetivo, al ver fragmentos de código resulta más fácil conectar el rol de cada cálculo y transformación dentro del resultado completo
- El objetivo es convertir a la persona no en una lectora pasiva de detalles de código, sino en una participante en igualdad de condiciones que entiende la intención del cambio
Experimentar cambios de coordenadas con diagramas interactivos
- En lugar de mostrar solo imágenes estáticas, se usa un diagrama interactivo en el que se puede arrastrar una roca sobre el jardín
- Al mover la roca, cambian al mismo tiempo su posición en pantalla y sus coordenadas internas, lo que permite comprobar la transformación de coordenadas de la proyección isométrica
- En comparación con leer solo fórmulas o código, manipular directamente la relación entre entrada y salida permite formar intuición
- Al insertar HTML interactivo dentro de una página de Notion, el propio documento explicativo del código puede convertirse en un pequeño entorno de ejecución
- La IA no tiene por qué limitarse a escribir explicaciones; también puede generar las visualizaciones y herramientas de manipulación necesarias para comprender
Convertir diffs de código crudos en diffs narrativos
- Un diff de código común lista los archivos modificados en orden por nombre de archivo
- No explica las relaciones entre archivos
- No informa el propósito del cambio
- No guía sobre en qué orden leerlo
- Un diff narrativo (literate diff) reorganiza los cambios como el flujo de un texto
- Presenta primero el propósito del cambio
- Explica los archivos y funciones en un orden adecuado para entenderlos
- Inserta solo los fragmentos de código necesarios entre las explicaciones
- Muestra también la relación entre el contexto circundante y las decisiones de implementación
- Si el diff de código crudo es como dejar apilados los materiales tal cual, el diff narrativo se parece más a editar el proceso de cambio como una historia
- Si primero se lee la explicación y luego se revisa el diff crudo, se puede leer sabiendo por qué existe cada fragmento de código, lo que acelera la revisión
Leer en papel una explicación creada por IA
- El documento explicativo terminado puede usarse como un paquete de explicación del código
- El diff de código crudo se sigue leyendo, pero siempre se lee primero el documento explicativo
- Cuando hace falta concentración, también se imprime el documento y se lee en papel en un café
- Surge la paradoja de que una actividad interactiva como programar con IA se convierte en un reporte estático en papel que permite concentrarse profundamente
- Lo importante no es usar la interfaz más nueva, sino transformar la información a una forma que realmente facilite la comprensión humana
La diferencia entre sentir que se leyó y entender de verdad
- Aunque un documento explicativo esté bien estructurado, el acto de leer en sí mismo no garantiza la comprensión
- Es fácil que una persona se engañe pensando que recordó o entendió el contenido solo porque siguió las frases con la vista
- Toma ideas de “books don't work” de Andy Matuschak y de Quantum Country de Andy Matuschak/Michael Nielsen
- Quantum Country inserta cuestionarios de repetición espaciada dentro del texto para que el lector recuerde activamente el contenido
- Aplicando el mismo método al documento explicativo del código, se colocan al final cinco preguntas interactivas sobre los cambios
Los cuestionarios son un regulador de velocidad del bucle de IA
- Se usa una regla según la cual, antes de enviar el código a otra persona, hay que aprobar el cuestionario del documento explicativo
- Al revisar código escrito por otra persona, se aplica el mismo criterio
- El cuestionario no es una función adicional para evaluar conocimiento, sino un regulador de velocidad
- Al trabajar con IA, los bucles de implementación, corrección y regeneración suelen avanzar más rápido que la comprensión humana
- El cuestionario hace que en cada bucle se planteen mecánicamente las siguientes preguntas
- ¿Puedes explicar qué cambió realmente?
- ¿Entiendes por qué se usó esta estructura?
- ¿Conoces las restricciones que afectan el siguiente cambio?
- Si no se aprueba, hay que desacelerar el trabajo y reforzar la comprensión, por lo que la persona puede seguir siendo participante creativa
Micromundos tomados de Mathland de Seymour Papert
- El segundo método, los micromundos, parte de una idea del educador Seymour Papert
- Papert sostenía que, así como para aprender francés se vive en Francia, para aprender matemáticas habría que vivir en Mathland, donde las matemáticas funcionan de manera natural
- Es una forma en la que el niño, en lugar de escuchar explicaciones pasivamente, explora el entorno siguiendo su curiosidad y aprende conceptos matemáticos de manera natural
- Aplicado al código, no se trata solo de ofrecer documentos que expliquen el sistema, sino de crear un entorno en el que la persona pueda entrar y experimentar directamente cómo funciona
- Un micromundo es un mundo pequeño configurado para observar bien ciertos principios y cambios de estado, en lugar de exponer tal cual todo el sistema real de producción
Explorar un intérprete de Prolog en una línea de tiempo
- Al desarrollar un intérprete de Prolog, era difícil captar intuitivamente qué ocurría por dentro
- Junto con el agente, se creó un depurador dedicado para explorar el proceso de ejecución paso a paso
- En este depurador se puede comprobar directamente lo siguiente
- Moverse hacia adelante y hacia atrás en el tiempo de ejecución
- Examinar qué valores hay en la pila actual
- Confirmar qué reglas se evalúan en cada paso
- Dejar notas en el momento en que una regla específica se aplica correctamente
- En vez de ver solo el resultado final, se puede seguir directamente cómo la ejecución de un lenguaje lógico se desarrolla con el tiempo
- Si se delega la depuración al agente, el problema puede resolverse, pero solo cuando la persona manipula directamente el depurador surge una comprensión de la estructura de ejecución
La diferencia entre que el agente depure por uno y que cree herramientas de comprensión
- “El agente encuentra y corrige el problema” y “el agente crea una herramienta para que la persona explore el problema” producen resultados distintos
- Lo primero consigue rápido el resultado del trabajo, pero la comprensión humana del proceso interno puede crecer muy poco
- Lo segundo ofrece un proceso de exploración en el que la persona examina el estado de ejecución, plantea hipótesis y confirma resultados
- Aunque se delegue parte de la escritura de código al agente, el pensamiento y la exploración centrales pueden seguir siendo realizados directamente por la persona
- Es un enfoque que amplía el rol del agente: de proveedor de respuestas correctas a creador de entornos de comprensión
Realizar una migración de sitio web como si fuera un juego
- Al migrar un sitio web personal de un framework a otro, Claude escribió un script de automatización
- Como el nuevo framework no resultaba familiar, aunque se leyera el script era difícil evaluarlo más allá de “más o menos se ve bien”
- Para resolverlo, se le pidió a Claude que creara un centro de comando con forma de videojuego para realizar directamente la migración
- En el centro de comando se puede comprobar visualmente el siguiente proceso
- Presionar un botón para ejecutar los pasos de migración uno por uno
- Mostrar el sitio anterior y el nuevo lado a lado en la pantalla
- Verificar cómo cambia la apariencia del nuevo sitio en cada paso
- Observar en qué orden cambia el árbol de archivos
- En lugar de ejecutar toda la transformación de una sola vez, se experimenta directamente cómo el nuevo sitio va cobrando vida por etapas
- Se obtiene una comprensión similar a la de haber movido todos los archivos a mano, pero como el trabajo necesario y el entorno de observación ya están preparados, se puede avanzar mucho más rápido
Generar código para entender código
- El código que puede escribir un agente no se limita a funciones de producto ni a scripts de automatización
- También puede crear herramientas temporales como las siguientes para que una persona entienda otro código
- Herramientas de visualización de ejecución
- Depuradores paso a paso
- Pantallas de comparación lado a lado
- Indicadores de cambios en el árbol de archivos
- Explicaciones conceptuales interactivas
- Centros de comando que dividen el trabajo en pasos pequeños
- Estas herramientas tienen valor suficiente aunque no sean código de producto mantenido a largo plazo
- A medida que baja el costo de crear código con IA, se vuelve realista construir entornos de aprendizaje de un solo uso para una persona y una tarea específicas
En equipo, hay que entender juntos
- Que una persona entienda el sistema por sí sola no es suficiente para el trabajo en equipo
- Los miembros del equipo deben tener el mismo modelo mental para poder evocar la misma estructura y comportamiento incluso con expresiones breves
- Cuando hay vocabulario e imágenes compartidos, es más fácil intercambiar ideas de forma improvisada y desarrollar juntos nuevas direcciones
- En cambio, si cada persona trabaja aislada con su propio agente, surgen estos problemas
- Usan los mismos términos con significados distintos
- No comparten las premisas de los planes técnicos
- Aunque los resultados se integren, la comprensión no se integra
- El uso de IA en un equipo no se trata solo de aumentar la productividad de cada individuo, sino de construir una comprensión compartida en todo el equipo
Dejar el trabajo de agentes y personas en el mismo espacio compartido
- En Notion, se pueden ejecutar agentes de Claude y Cursor dentro de una página
- Los planes técnicos escritos por el agente se crean por defecto en una página colaborativa
- Los miembros del equipo pueden revisar los planes creados por el agente en el mismo lugar, sin copiarlos a otro canal
- Dejar comentarios en frases específicas
- Preguntar sobre decisiones de implementación
- Editar el plan en conjunto
- Dejar la discusión del equipo y los resultados del agente en un mismo contexto
- En lugar de que el agente trabaje dentro de silos individuales, personas y agentes piensan alrededor de un documento compartido
- El espacio compartido no es un archivo donde se guardan resultados, sino un lugar donde el equipo construye un modelo mental en conjunto
El propósito de las computadoras fue desde el principio la aumentación
- El problema de explicaciones, cuestionarios y micromundos para entender código no se limita a la programación
- Las personas necesitan conocimiento no solo para verificar resultados, sino para entender cómo funciona el mundo y participar en su transformación
- Hace unos 50 años, Alan Kay concibió la computadora como un nuevo medio educativo mejor que los libros
- En los dibujos de aquella época aparecen niños mirando dispositivos parecidos a tablets, pero no están viendo videos pasivamente
- Manipulan simulaciones físicas interactivas
- Juegan y modifican directamente el código
- Comprueban cómo el código modificado cambia el movimiento físico
- La computadora puede ser no una máquina que transmite información estática, sino un medio dinámico que permite entender conceptos complejos moviéndolos y cambiándolos
No solo automatización, sino participación más profunda
- La idea central se expresa con un meme en el que un astronauta mira la Tierra y pregunta “¿el propósito de las computadoras era crear simulaciones dinámicas para entender conceptos complejos?”, y el astronauta detrás responde “siempre lo fue”
- Si el propósito de las computadoras y la IA se limita a eliminar el trabajo humano, las personas pueden verse empujadas fuera del sistema
- En cambio, si la IA se usa para crear explicaciones, simulaciones, micromundos y espacios compartidos, las personas pueden entender más conceptos con mayor profundidad
- Al reducir la IA el costo de crear simulaciones, se vuelve posible generar cada vez que se necesite entornos personalizados para aprender un concepto específico
- El objetivo no es solo sacar a la persona del bucle, sino hacer que entre más profundamente en el bucle que antes
Artículos relacionados
- Enough AI copilots! We need AI HUDs - interfaces de IA que van más allá de los copilotos y expanden la mente humana de forma más directa
- AI-generated tools can make programming more fun - un caso en el que crear una UI de depurador personalizada con IA mejoró el proceso de programación directa por parte de la persona
- Code like a surgeon - una forma de delegar tareas repetitivas secundarias para que la persona se concentre en el trabajo central
2 comentarios
Para eliminar por completo los cuellos de botella
Como la estructura de la cognición y la memoria humana se divide en memoria de corto plazo y memoria de largo plazo, por mucho que se intente aumentar así la velocidad de programación de la IA, me gustaría decir que, en términos de deuda cognitiva, lo más eficiente es que la persona vaya verificando entre cada paso mientras acumula memoria de corto plazo.