Historia — Todo está en curso
La primavera llegó con una paradoja instalada en el tablero del equipo: todo estaba en curso y nada estaba terminado.
Lo hizo visible Aitor, a su manera — sin abrir la boca. Un lunes por la mañana, el Petirrojo se encontró impreso en la pared, junto a la Directiva Prima, un pantallazo del tablero con un rotulador fluorescente encima: 34 tarjetas en «In Progress». Debajo, con letra pequeña y pulcra: «Terminadas la semana pasada: 3. ¿Alguien más ve el problema?»
—¿Treinta y cuatro? —Sofía contó dos veces—. ¿Cómo tenemos treinta y cuatro cosas empezadas? Somos siete.
—Siete personas y una fábrica de empezar —dijo Bruno—. Cada agente abre frentes como una excavadora. Marc tiene cinco historias suyas en paralelo, yo tengo tres que no recuerdo haber pedido, y la columna de «esperando review» ya no cabe en una pantalla. Es como el fregadero de mi casa cuando vienen mis sobrinos: todos los vasos de la casa, todos a medio usar.
Nadia miró la columna maldita — «Esperando review humana» — y sintió el clic de las cosas que por fin encajan. Llevaba semanas notando que su trabajo se había convertido en espera con interrupciones: esperaba reviews, la esperaban a ella, y entre espera y espera saltaba de tarea en tarea para «aprovechar». Todo el mundo estaba ocupadísimo. Nada salía por la puerta.
Esa tarde hizo lo que ya era su reflejo: números primero. Sacó del sistema tres meses de datos y los puso en una hoja:
- PRs generados por agentes, listos para review: una media de 22 al día.
- Capacidad real de review con criterio (medida, no deseada: reviews donde el humano de verdad entendía el cambio): unos 9 al día entre todo el equipo.
- Resultado: la cola de review crecía 13 PRs cada día. No era una mala racha. Era aritmética.
Y la segunda cuenta, la que le quitó el aliento por lo simple que era. El Cuaderno la llamaba «la ley de Little», y cabía en un renglón: el tiempo medio que una cosa pasa en tu sistema es igual al número de cosas dentro dividido por el ritmo al que salen. El Petirrojo terminaba unas 8 cosas por semana. Con 34 en curso: 34 entre 8, más de cuatro semanas de tiempo medio de travesía para cualquier cosa que entrara. La tarjeta más urgente del mundo, en el momento en que cruzaba la puerta del tablero, heredaba un mes de cola. No porque nadie fuera lento: porque el sistema estaba lleno.
—Es que es física —le explicó a Sofía, con la hoja delante—. No es actitud, no es talento, no es que Marc sea disperso. Con 34 cosas dentro y 8 saliendo por semana, la espera media es de un mes, lo diga la ley de Little o lo diga el sentido común con calculadora. Y hay más. —Pasó a la segunda gráfica—. Los agentes meten 22 al día en una cola que vacía 9. Eso no es un cuello de botella que «hay que apretar»: es una cola que crece sin límite. Ninguna bronca, ninguna hora extra de review la va a vaciar. O generamos menos, o verificamos distinto, o las dos cosas.
—Víctor va a decir que frenar los agentes es tirar dinero —dijo Sofía—. «Capacidad ociosa.»
—Ya. El Cuaderno tiene un capítulo para eso. Se llama «El carril lleno no es un carril rápido». —Nadia sonrió sin querer—. Dice que un sistema al cien por cien de utilización no es un sistema eficiente: es un atasco con la autoestima alta.
La prueba la hicieron sin pedir permiso, porque Sofía decidió que pedir perdón era más barato: dos semanas de experimento, solo el Petirrojo, tres reglas.
Regla uno: límite de trabajo en curso. Máximo 8 tarjetas en curso para todo el equipo — una por persona y un margen — y máximo 6 PRs en la cola de review. ¿Y qué pasa cuando el límite está lleno y un agente termina otro PR? «Pues que espera fuera del sistema», dijo Nadia. «La cola invisible en el backlog no nos cuesta atención. La visible dentro del tablero, sí.» A Marc, capar los agentes le dolió físicamente — «¡pero si están produciendo!» — hasta que Bruno le enseñó su propia estadística: de las cinco historias que llevaba en paralelo, las cinco llevaban más de dos semanas abiertas. «Con una cada vez las habrías terminado todas, chaval. Empezar no es producir. Producir es terminar.»
Regla dos: cada cosa en curso tiene un humano que la lleva de la mano hasta el final. No «el equipo revisa los PRs»: alguien — con nombre — es responsable de que esa historia concreta, con sus PRs de agente incluidos, cruce entera hasta producción verificada. Se acabó el aprobar por lotes lo de nadie. Aitor lo formuló en una de sus frases de cuarenta palabras mensuales: «Los agentes trabajan por tareas. Las personas deberíamos trabajar por resultados. Si yo firmo la historia, yo la entiendo entera.»
Regla tres: mañanas de fabricante. De 9 a 13, ni reuniones ni menciones que esperen respuesta: el bloque de las cuatro horas era sagrado para el trabajo que exige tener el sistema en la cabeza. La daily se movió a las 13:00 — quince minutos, delante del tablero, mirando las colas y no las caras — y las reuniones recurrentes se apretaron todas en la franja de después de comer. Sofía descubrió, al hacer la mudanza de calendario, que el equipo tenía 19 horas semanales de reuniones recurrentes, de las cuales sobrevivieron 7. Nadie echó de menos las otras doce. Nadie las ha vuelto a convocar.
Los primeros tres días fueron incómodos como unos zapatos nuevos. La cola de agentes esperando fuera creció y a Marc le picaban las manos; hubo un momento crítico el miércoles, cuando Marga apareció con «una cosita urgente de Ondara» y se encontró con que meterla implicaba, por primera vez en la historia de Aurelia, la pregunta «¿y cuál de estas 8 sacamos?» — y la respuesta no podía ser «ninguna, que entre igual». Eligió. Tardó, protestó, y eligió. («Eso», anotaría Nadia esa noche, «es lo que el límite compra en realidad: convierte "todo es prioritario" en una decisión con precio visible. El límite de WIP es un generador de conversaciones que antes no pasaban.»)
Al décimo día, Nadia actualizó las gráficas y las miró tres veces, como con la telemetría de Atlas, pero por el motivo contrario.
Tiempo medio de travesía de una historia: de veintinueve días a nueve. Cosas terminadas por semana: de 8 a 11 — con menos cosas empezadas, se terminaba más, que era exactamente lo que la ley de Little prometía y aun así costaba creer. La cola de review: estable en 6, porque la regla dos había hecho algo sutil: al tener cada historia un dueño que la entendía entera, las reviews habían dejado de ser arqueología de código ajeno — el dueño llegaba al PR con el contexto ya en la cabeza, y verificar costaba la mitad. Y el retrabajo — los parches de los parches — cayó a un tercio.
—A ver si lo entiendo —dijo Víctor, en la reunión que pidió él cuando las gráficas le llegaron por tercera vía distinta—. Habéis producido más… ¿limitando cuánto se puede producir a la vez?
—Hemos terminado más —dijo Nadia—. Producir a la vez es lo que hacíamos antes. Se llama inventario. —Le deslizó la hoja—. Piensa en los PRs sin revisar como piezas a medio fabricar en el suelo de una fábrica. Cada uno pierde valor cada día: el código de debajo cambia, el contexto se olvida, los conflictos crecen. Teníamos el suelo lleno y lo llamábamos velocidad.
Víctor miró la hoja un rato largo. Luego dijo, casi para sí:
—Cuando montamos Prometeo medimos cuánto generábamos. Nunca medimos cuánto esperaba lo generado. —Levantó la vista—. ¿Qué necesitáis para probar esto en tres equipos más?
—Que no lo conviertas en objetivo —dijeron Nadia y Sofía, exactamente a la vez, y Bruno soltó la carcajada del trimestre.
En el jardín, esa noche: Little confirmado en casa: menos dentro = antes fuera. La regla dos es la que más me gusta y la que menos entiendo todavía — no es solo de colas, es de conocimiento: el dueño que entiende la historia entera verifica al doble de velocidad. Ahí hay algo más profundo, apuntarlo para cuando lleguemos al capítulo de la organización. Y la mejor señal de todas: el miércoles, por primera vez, "urgente" tuvo un precio. PENDIENTE: el Cuaderno insiste con una cosa rara — dice que aunque optimicemos la review, "el sistema entero solo irá tan rápido como su restricción, y la restricción se moverá". Amdahl, Goldratt. Leer ese capítulo antes de que Víctor escale esto.