Gestion
3 artículos
El tramo en cascada que todo proyecto ágil necesita (y casi ninguno tiene)
- Mauricio ECR
- Gestion
- 02 Aug, 2026
Llevas un tiempo trabajando en equipos que dicen practicar Scrum, y algo no termina de cuadrarte. Los sprints avanzan, la demo sale en tiempo, el tablero se vacía cada dos semanas. Y aun así, al cabo
El tramo en cascada que todo proyecto ágil necesita (y casi ninguno tiene)
- Mauricio ECR
- Gestion
- 02 Aug, 2026
Llevas un tiempo trabajando en equipos que dicen practicar Scrum, y algo no termina de cuadrarte. Los sprints avanzan, la demo sale en tiempo, el tablero se vacía cada dos semanas. Y aun así, al cabo de varios meses, el sistema tiene algo raro: funciona por partes, pero no tiene columna vertebral. Cada módulo fue una decisión tomada en el momento, sin conversación con las anteriores. Se ve ágil desde afuera. Se siente frágil desde adentro.
No es que el equipo sea poco disciplinado. Los rituales se hacen, el backlog está priorizado, el Product Owner participa. El problema es más silencioso que eso: nadie definió, antes de arrancar, qué parte del proyecto no puede improvisarse sprint a sprint. Y esa omisión, que parece menor al principio, se cobra con intereses compuestos.
Lo que nadie dice en la retrospectiva
El síntoma más claro aparece cuando alguien intenta cambiar algo que parecía simple. Un ajuste en el modelo de datos toca cuatro historias ya entregadas. Un nuevo servicio necesita un contrato que nadie documentó porque se asumió. Una integración que "ya estaba resuelta" resulta que cada equipo la resolvió a su manera. Cada uno de esos problemas tiene la misma raíz: una decisión estructural que se tomó con la misma liviandad que una tarea de sprint.
La fragilidad no nace de hacer sprints cortos. Nace de confundir dos tipos de decisiones que tienen costos de reversión completamente distintos, y tratarlas como si fueran iguales.
Hay decisiones de implementación —cómo se resuelve una historia de usuario específica, en qué orden se atacan las funcionalidades dentro de una misma capa, qué tan grande es cada tarea— que son baratas de revertir. Si una no funciona, la corriges en el siguiente sprint sin que nada estructural se rompa. Esas son exactamente las decisiones que se benefician de la flexibilidad ágil: se ajustan con la información más fresca posible, sprint a sprint, sin necesidad de comité.
Y hay decisiones estructurales —el modelo de datos central, los contratos entre servicios, los patrones de comunicación del sistema— que son caras de cambiar una vez que varios equipos ya construyeron sobre ellas. Cada sprint que pasa sin que esas decisiones estén tomadas es un sprint que agrega capas sobre cimientos que nadie inspeccionó. El costo de revertirlas no crece linealmente: crece con cada historia que asumió que esa decisión ya estaba resuelta.
El error que produce proyectos frágiles no es aplicar demasiado ágil. Es aplicar la flexibilidad de la capa barata en la capa cara.
La solución incómoda
La respuesta es que esa capa cara necesita el tratamiento opuesto: rigidez deliberada antes de que comience el primer sprint. Se define una vez, con la misma seriedad que un plano estructural, y cambiarla requiere un proceso formal, no una conversación de pasillo. Es, en ese tramo específico, exactamente lo que hace la cascada.
Decirlo así genera resistencia inmediata. "Eso es cascada" es la objeción más rápida, y es comprensible: el malestar con la rigidez de los proyectos tradicionales es real y justificado. Pero la objeción parte de una confusión sobre qué es lo que realmente distingue cascada de ágil, y vale la pena deshacerla antes de continuar.
Lo que define a la cascada no es tener fases, ni tener diseño antes de construcción, ni tener decisiones tomadas de antemano. Lo que la define es que el mapa completo de trabajo —qué se construye, en qué orden, con qué criterios— se cierra una sola vez al principio y no se vuelve a abrir con lo que se aprende en el camino. Un proyecto en cascada puede tener veinte subproyectos y entregas parciales. Sigue siendo cascada porque el subproyecto quince ya estaba escrito en el mes uno, aunque se ejecute en el mes diez, y lo que se aprendió construyendo el subproyecto tres no tuvo ningún efecto sobre él.
Lo que distingue a ágil es una sola cosa: cuando terminas de ejecutar una unidad de trabajo, lo que aprendiste ahí puede reescribir el contenido, el orden o la existencia de la unidad que sigue. Es un bit de información viajando en dirección contraria al plan. Ese bit es lo que mantiene vivo el aprendizaje. Y ese bit puede existir perfectamente en un proyecto que tiene una arquitectura base cerrada, contratos entre servicios definidos antes del primer sprint, y una Definition of Ready rigurosa. Nada de eso impide que lo aprendido en el sprint tres cambie el alcance del sprint seis. Solo impide que lo aprendido en el sprint tres destruya los cimientos sobre los que ya construyó el resto del equipo.
Aplicar rigidez en la capa cara no es cascada. Es reconocer que no todas las decisiones tienen el mismo costo de reversión, y tratarlas en consecuencia.
Dónde vive esa rigidez dentro de Scrum
Lo interesante es que no necesitas inventar nada por fuera del framework. Ágil ya tiene nombre para cada capa de este sistema de gobernanza, y los tres elementos son igual de obligatorios.
El primero es el walking skeleton: antes de que arranque el primer sprint de construcción, el equipo define un esqueleto funcional y liviano que recorre el sistema de punta a punta. No es el diseño completo — es lo mínimo necesario para que todos los equipos construyan sobre la misma base sin pisarse. Incluye las decisiones que son caras de revertir: el modelo de datos central, los contratos entre servicios, los patrones de comunicación, las convenciones técnicas que el resto del proyecto va a asumir como dadas. Quién lo construye es el equipo técnico completo, antes del sprint uno, con la misma formalidad con que un arquitecto firma un plano estructural. Lo que viene después puede crecer y cambiar libremente — precisamente porque ese esqueleto existe.
El segundo y el tercero viven dentro de cada sprint y protegen ese esqueleto historia por historia: la Definition of Ready es la puerta de entrada —ninguna historia entra a un sprint sin demostrar que respeta los contratos que el walking skeleton estableció—, y la Definition of Done es la puerta de salida —ninguna historia se declara terminada sin haber verificado que sigue encajando con el sistema completo, no solo con el módulo recién construido.
Dicho así suena razonable. El problema es que la mayoría de los equipos tratan esa puerta de entrada como un trámite: "la historia tiene criterios de aceptación, ya está lista". Eso responde apenas una parte de la pregunta. Antes de que una historia entre a un sprint, alguien tiene que haber respondido, con la misma seriedad con que un ingeniero civil revisa un plano antes de excavar, qué depende de qué.
No basta con saber que la historia es viable en abstracto. Hay que identificar explícitamente qué habilitadores necesita para poder construirse: un endpoint que todavía no existe, un cambio en el modelo de datos que otra historia debe entregar primero, un permiso o una integración externa que tarda en aprobarse. Y aquí está el punto que casi siempre se salta: no puedes nombrar esas dependencias con honestidad si nadie diseñó, aunque sea a nivel de solución técnica, cómo se va a construir esa historia en concreto.
Decir "esto depende de X" sin haber bajado al menos un boceto de la solución —qué componentes toca, qué contrato de datos necesita, por dónde entra y por dónde sale la información— no es identificar una dependencia, es adivinarla. Y las dependencias adivinadas son exactamente las que aparecen a mitad del sprint disfrazadas de sorpresa.
Lo que una DoR seria realmente exige
Por eso la rigidez concreta no está en agregar más preguntas a un checklist de planning. Está en aceptar que ninguna historia entra a un sprint sin haber pasado antes por un ejercicio de diseño de solución propio, específico para esa actividad. No el diseño de arquitectura completo del sistema —eso vive en el walking skeleton y rara vez se toca. Es un diseño más modesto pero igual de innegociable: la DoR deja de ser una intención difusa en el momento en que se convierte en un entregable verificable con campos obligatorios.
Ninguna historia entra a Sprint Planning sin esos campos completos, y no admite medias respuestas. Como mínimo:
- El diseño de solución específico de esa actividad: qué componentes toca, por dónde entra y sale la información, qué contratos consume o expone.
- La lista explícita de dependencias y habilitadores identificados a partir de ese diseño, no adivinados desde la descripción funcional.
- La estimación de esfuerzo apoyada en esa lista. Construir algo que necesita tres piezas ajenas no cuesta lo mismo que construir algo autocontenido, aunque la descripción funcional suene igual de simple.
- Los criterios de aceptación funcionales: lo que ve el usuario.
- Los criterios no funcionales: rendimiento, seguridad, manejo de errores, mantenibilidad. Una historia puede cumplir su criterio funcional y aun así ser un desastre para el sistema si nadie exigió que respetara los estándares que el resto del proyecto ya adoptó.
- Dos validaciones distintas: la del dueño de producto, que confirma que resuelve el problema del usuario; y la del responsable técnico, que confirma que la solución respeta la arquitectura y los lineamientos que el walking skeleton estableció.
Si a la historia le falta cualquiera de esos ítems, no está lista, sin importar qué tan urgente parezca meterla al sprint. No es un principio abstracto: es un documento con campos obligatorios que nadie puede saltarse por falta de tiempo, exactamente igual que un plano estructural no se salta porque la obra vaya con retraso.
Esa segunda validación —la del responsable técnico— es la que casi nunca se sienta en la conversación. El usuario final valida si la historia resuelve su problema, pero eso es necesario y no suficiente. Falta quien evalúe si el modo en que se va a construir mantiene viva la coherencia del sistema completo. Puedes tener una historia perfectamente aprobada por el producto y absolutamente inaceptable para quien tiene que mantener esa base de código dentro de un año. Si tu Definition of Ready solo mira la primera validación, ya sembraste el mismo desacople que estás intentando evitar.
La Definition of Done cierra el ciclo: exigir pruebas de integración contra el sistema completo —y no solo contra el módulo recién construido— garantiza que lo que se declara terminado realmente encaja con todo lo demás. Ninguna de estas tres piezas rompe el Scrum Guide. Todas simplemente convierten en obligatorio, para ese proyecto específico, algo que el framework siempre dejó como decisión de cultura de equipo —y que la mayoría, por prisa o por comodidad, nunca llegó a decidir en serio.
De vuelta al tablero
Lo que hace funcionar este sistema no es la cantidad de rigor que aplicas, sino dónde lo aplicas. La mayor parte del proyecto —reglas de negocio, funcionalidades, flujos de usuario— se beneficia de decidirse tarde, con la información más fresca posible. Solo una fracción pequeña necesita el tratamiento opuesto: definirse antes, con formalidad, y no tocarse sin proceso. El walking skeleton, la DoR y la DoD son exactamente los tres puntos donde esa fracción vive.
Cuando vuelves al tablero de ese sprint en el que todo se veía bien —los puntos avanzaban, la demo salía en tiempo, nadie levantaba la mano— y lo comparas con el sistema que quedó meses después, frágil, sin columna vertebral, con cada módulo viviendo en su propia realidad, la distancia entre los dos momentos ya tiene explicación. No fueron los rituales, ni la disciplina del equipo, ni el framework. Fue que nadie definió los tres puntos donde el rigor no es opcional: el walking skeleton que estableciera la base común, la DoR que obligara a diseñar antes de construir, y la DoD que verificara que cada pieza encajaba con el resto.
Eso no es traicionar el manifiesto ágil. Es leerlo con más cuidado.
Cuando todo falla, ¿Quién decide?
- Mauricio ECR
- Gestion
- 05 May, 2026
Son las 11 de la noche. El servicio de pagos lleva cuarenta minutos fallando silenciosamente — no con un error dramático que dispara alertas, sino con transacciones que se pierden sin dejar rastro en
Cuando todo falla, ¿Quién decide?
- Mauricio ECR
- Gestion
- 05 May, 2026
Son las 11 de la noche. El servicio de pagos lleva cuarenta minutos fallando silenciosamente — no con un error dramático que dispara alertas, sino con transacciones que se pierden sin dejar rastro en los logs. Un cliente lo detectó antes que el equipo y ya escribió enojado en el chat de soporte. El volumen de ventas del día está cayendo en tiempo real.
Alguien tiene que decidir: ¿revertir el último despliegue y perder dos semanas de trabajo del equipo, o seguir investigando con el riesgo de que el problema se agrave? No hay tiempo para una reunión. No hay forma de reunir a todos. Cada minuto que pasa es dinero que se pierde y confianza que se erosiona.
En ese momento, la pregunta más importante no es técnica. Es estructural: ¿quién tiene la autoridad para tomar esa decisión ahora mismo, sin consultar a nadie más, y con la confianza de que el equipo va a ejecutar lo que decida?
Si la respuesta a esa pregunta demora más de treinta segundos en aparecer, el equipo tiene un problema que no está en el código.
Dos modelos, dos promesas, un mismo contexto de caos
La industria del software lleva décadas construyendo respuestas a esa pregunta, y ha producido fundamentalmente dos modelos de organización que prometen resolverla de formas opuestas.
El primero se conoce informalmente como la Catedral: una estructura donde la jerarquía es deliberada y la responsabilidad técnica final tiene nombre y apellido. El Arquitecto, el Líder Técnico, el Tech Lead — el título varía según la empresa — es quien toma la decisión difícil cuando el sistema falla, quien responde ante el negocio por las consecuencias y quien firma con su reputación cada decisión de arquitectura. La promesa de este modelo es claridad: siempre hay alguien a quien llamar, siempre hay alguien que puede actuar sin pedir permiso. Pero esa claridad tiene un prerequisito que el modelo suele omitir en su descripción ideal: para que ese líder pueda tomar decisiones técnicas con autoridad real, necesita haber construido y operado sistemas similares. No es un rol de coordinación — es un rol de criterio técnico profundo con responsabilidad organizacional encima.
El segundo se conoce como el Bazar: una red orgánica donde la autoridad emana del conocimiento técnico del momento, no de un cargo en un organigrama. Los roles son fluidos, la propiedad del producto es compartida y la apuesta es que la inteligencia colectiva del equipo supera consistentemente a la de cualquier individuo. La promesa de este modelo es agilidad y autonomía: el equipo puede moverse rápido porque no necesita esperar que una sola persona apruebe cada decisión. Pero esa agilidad también tiene su prerequisito silencioso: para que funcione, cada miembro del equipo necesita tener el criterio técnico suficiente para tomar decisiones sin supervisión. No basta con que alguien del equipo sea técnicamente sólido — todos deben serlo, porque en ausencia de jerarquía formal, la calidad de las decisiones depende de la calidad técnica de quien las toma en cada momento.
Ambos modelos tienen defensores apasionados con argumentos sólidos. Ambos tienen casos de éxito reales y fracasos documentados. Y el debate entre ellos suele quedarse en el plano teórico, comparando los beneficios abstractos de cada uno sin hacerse la pregunta que realmente importa: ¿en qué contexto se aplica cada modelo, y qué pasa cuando se aplica en el contexto equivocado?
Lo que ambos modelos dan por sentado y nadie dice en voz alta
Antes de comparar jerarquía y autonomía, hay algo que los dos modelos asumen en silencio y que casi nunca se nombra en las discusiones sobre estructura de equipos: ninguno funciona sin una base técnica sólida como punto de partida. La diferencia está en dónde debe estar concentrada esa base.
En la Catedral, el peso técnico recae principalmente sobre el líder. Él es quien debe poder leer un stack trace a las 3 de la mañana y saber en qué capa del sistema está el problema. Quien debe entender las implicaciones de elegir consistencia eventual sobre consistencia fuerte en un modelo de datos. Quien puede evaluar si la propuesta de un ingeniero junior resuelve el problema de hoy pero crea uno mayor en seis meses. Sin ese fundamento técnico, el líder no tiene jerarquía real — tiene un título. Y un título sin criterio técnico produce algo peor que la ausencia de liderazgo: produce decisiones con autoridad pero sin fundamento, que el equipo aprende rápidamente a rodear o ignorar.
En el Bazar, ese mismo peso técnico debe estar distribuido en cada miembro del equipo. No basta con que haya dos o tres personas técnicamente sólidas rodeadas de ingenieros que ejecutan. Cuando la autoridad emana del conocimiento del momento, cada persona que toma una decisión — sobre arquitectura, sobre deuda técnica, sobre qué vale la pena optimizar ahora y qué puede esperar — necesita tener el criterio para tomarla bien. Un equipo con responsabilidad fluida y base técnica desigual no es un equipo autónomo: es un equipo donde las decisiones importantes las toman silenciosamente las dos o tres personas que saben más, mientras los demás asienten sin entender del todo las implicaciones. Eso no es horizontalidad — es una jerarquía informal y no reconocida, que tiene todos los problemas de la jerarquía sin ninguna de sus ventajas.
Nombrar esto importa porque hay una tendencia creciente en la industria a separar el liderazgo técnico de la base técnica. Cada vez más, los roles de liderazgo en equipos de software se llenan con perfiles esencialmente directivos: personas con habilidades de gestión, comunicación y coordinación, pero con poca o ninguna experiencia construyendo los sistemas que van a liderar. El argumento que suele justificarlo es que el líder no necesita saber programar — necesita saber gestionar personas y procesos. Eso puede ser cierto para un gerente de producto o un director de operaciones. Para alguien que debe tomar decisiones técnicas con consecuencias reales sobre un sistema en producción, es una trampa. El equipo lo nota desde la primera semana. Y cuando lo nota, la estructura jerárquica colapsa en la práctica aunque siga existiendo en el organigrama.
El problema que ninguno de los dos nombra
Tanto la Catedral como el Bazar comparten un supuesto silencioso: que la estructura del equipo puede diseñarse de forma independiente al sistema que ese equipo va a construir y mantener. Y ese supuesto es el origen de la mayoría de los fracasos que se atribuyen a uno u otro modelo.
La variable que ninguno de los dos nombra con suficiente claridad es el horizonte temporal del sistema.
Una landing page de campaña es efímera por diseño. Una herramienta interna de validación de datos puede ser efímera por accidente. Pero un CRM, un sistema de autenticación, una plataforma de pagos — estos sistemas nacen con la intención explícita de sobrevivir ciclos de negocio, rotaciones de personal y cambios de tecnología. Nadie construye un CRM pensando en tirarlo en dieciocho meses.
¿Cómo se distingue en la práctica un sistema persistente de uno efímero? No siempre por el tamaño ni por la complejidad técnica, sino por la intención de origen: ¿se espera que este sistema funcione más allá del equipo que lo construyó? ¿Sus decisiones de arquitectura, sus integraciones, su modelo de datos, van a necesitar ser entendidas y mantenidas por personas que todavía no han sido contratadas? Cuando la respuesta es sí, el sistema es persistente. Y los sistemas persistentes acumulan algo que no aparece en ningún diagrama de arquitectura: contexto implícito. Decisiones tomadas hace tres años por personas que ya no están. Compromisos con clientes que nunca quedaron en ningún ticket. Workarounds que resuelven problemas que nadie recuerda haber tenido. Ese conocimiento no vive en la documentación — vive en las personas.
El Bazar, con su promesa de propiedad compartida, asume que ese conocimiento se distribuye de forma natural entre el equipo. Pero en la práctica, cuando alguien se va — y en el mercado actual la rotación es la norma, no la excepción — el conocimiento se va con esa persona sin que nadie tenga la responsabilidad de haberlo transferido. Cuando esto ocurre de forma repetida, el sistema persistente se convierte en un sistema frágil que nadie entiende del todo y que todos temen tocar.
Para sistemas efímeros, la responsabilidad fluida puede funcionar razonablemente bien, especialmente cuando el equipo es pequeño, cohesionado y tiene un objetivo claro y acotado. El costo de la ambigüedad de roles es tolerable cuando el proyecto tiene fecha de muerte. Para sistemas persistentes, la ecuación cambia radicalmente.
Lo que el lector ya está pensando
Antes de continuar, vale la pena nombrar las objeciones que probablemente ya están tomando forma.
La primera es la más obvia: ¿qué pasa si el líder es mediocre? Un líder técnico malo en una estructura jerárquica produce un equipo dependiente y un sistema frágil. Es verdad. Pero un equipo mediocre en una estructura fluida produce algo diferente y en muchos aspectos peor: decisiones que nadie tomó, responsabilidades que nadie asumió y sistemas que se degradan silenciosamente porque no hay nadie a quien señalar cuando algo sale mal. La mediocridad no desaparece con la horizontalidad — solo se vuelve más difícil de identificar y, por lo tanto, más difícil de corregir.
Aquí está la pregunta que el debate suele esquivar: entre encontrar un líder técnico que sea genuinamente bueno y encontrar un equipo completo donde cada persona sea genuinamente buena, ¿cuál es estadísticamente más probable? La respuesta incómoda es que es más fácil identificar, contratar y desarrollar una persona excepcional que construir de golpe un equipo donde todos lo sean. No porque los equipos excepcionales no existan — existen, y son notables cuando aparecen — sino porque construirlos toma años de trabajo deliberado, y la mayoría de los proyectos no tienen ese tiempo ni esa estabilidad. Lo fluido funciona con equipos excepcionales. La jerarquía bien ejercida funciona con equipos buenos liderados por alguien excepcional. Esa diferencia en el umbral de entrada es, en la práctica, enorme.
La segunda objeción es igualmente legítima: la jerarquía atrofia al equipo. Si el líder concentra todas las decisiones, los ingenieros se convierten en ejecutores que esperan instrucciones y pierden la capacidad de resolver problemas por su cuenta. También es verdad — pero describe un liderazgo mal ejercido, no la jerarquía como estructura. La diferencia entre un líder que concentra y uno que distribuye es real, y tiene consecuencias técnicas enormes que conviene detallar antes de seguir.
La tercera viene con ejemplos famosos: Google, Spotify y Netflix construyeron sistemas de escala global con estructuras horizontales. Si funciona ahí, ¿por qué no acá? La respuesta requiere mirar con más cuidado lo que esas organizaciones realmente hacen — y lo que no se menciona cuando se cita su ejemplo.
El caso de Google y Spotify: lo que el ejemplo omite
Es el argumento favorito de los defensores de la autonomía radical, y merece una respuesta que no lo descarte con un gesto sino que lo examine en serio.
Primero: esas organizaciones tienen jerarquía. Spotify tiene Chapter Leads, Tribe Leads y arquitectos de plataforma. Google tiene Staff Engineers y Distinguished Engineers cuya función explícita es ser custodios del criterio técnico a escala. Lo que estas empresas han logrado no es eliminar la jerarquía sino hacerla menos visible y más permeable — lo cual es un logro notable, pero no equivale a eliminarla. Cuando en Spotify un equipo toma una decisión de arquitectura que afecta a otros equipos, hay alguien con la autoridad y el contexto para evaluar ese impacto. Ese alguien tiene un título, aunque ese título no aparezca en el organigrama que se comparte en las conferencias.
Segundo: esas empresas tienen algo que la mayoría de equipos no tiene y que rara vez se menciona cuando se cita su ejemplo: densidad de talento excepcional acumulada durante años. Google puede darse el lujo de tener autonomía radical en sus equipos porque el umbral de entrada para trabajar ahí filtra a la mayoría del mercado. Sus equipos "horizontales" están compuestos por personas que en cualquier otra empresa serían los líderes técnicos más senior. Cuando todos en el equipo tienen ese nivel de criterio técnico, la jerarquía puede volverse implícita porque cada persona ya sabe qué decisiones le corresponden y cuáles requieren coordinación. Eso no es horizontalidad — es una jerarquía tan interiorizada que ya no necesita formalizarse.
Tercero, y quizás lo más importante: esas empresas llegaron a sus modelos actuales después de haber pasado por estructuras más jerárquicas en sus primeros años. La horizontalidad que exhiben hoy es el resultado de haber construido cultura, procesos y criterio técnico compartido durante mucho tiempo, no la condición con la que empezaron. Tomar el modelo de madurez de una organización de veinte años y aplicarlo a un equipo que lleva seis meses trabajando junto es importar la conclusión sin haber hecho el trabajo.
La solución: jerarquía con función pedagógica
Lo que funciona para sistemas persistentes no es la jerarquía tradicional donde el líder acumula decisiones, ni la horizontalidad donde nadie las tiene con claridad. Es algo más preciso: una jerarquía con función pedagógica explícita, donde la autoridad se usa para distribuir capacidad, no para concentrarla.
En este modelo, el líder técnico no es el embudo de todas las decisiones. Es el arquitecto del conocimiento del equipo. Su responsabilidad principal no es tomar decisiones — es asegurarse de que el equipo pueda tomarlas sin él para el día a día, mientras él retiene la autoridad y la responsabilidad sobre las decisiones que determinan la dirección de largo plazo del sistema.
La herramienta central de este modelo es la delegación de autoridad con responsabilidad retenida. El líder puede — y debe — dar a otro miembro del equipo autoridad total sobre una subtarea específica cuando ese miembro tiene la expertise necesaria. Si el problema requiere optimización profunda de base de datos, quien tiene ese conocimiento recibe no solo la tarea sino la autoridad completa sobre esa decisión. Pero la responsabilidad de que esa persona fue elegida bien, fue informada correctamente y tiene el soporte necesario para ejecutar, sigue siendo del líder. La responsabilidad no fluye. La autoridad sí.
Esta distinción es exactamente lo que diferencia este modelo de la responsabilidad fluida: en todo momento hay claridad absoluta sobre quién responde si algo sale mal, incluso cuando quien está ejecutando no es el líder. Y es lo que resuelve la objeción de la atrofia: el equipo gana autonomía real dentro de dominios bien definidos, con la red de seguridad de saber que hay alguien que puede intervenir si la decisión excede su criterio actual.
El segundo componente es la mentoría como obligación estructural, no como virtud opcional. El líder asigna micro-responsabilidades calibradas según la capacidad de cada persona — no para quitarse trabajo de encima, sino para desarrollar el criterio técnico de quienes trabajan con él. Cuando alguien en el equipo se equivoca, el líder no corrige el error y sigue adelante: usa ese momento como insumo de aprendizaje. El objetivo explícito es que, con el tiempo, cada miembro del equipo pueda asumir responsabilidades más grandes y, eventualmente, reemplazar al líder en su función.
El tercer componente es la cadena organizacional como red de seguridad. Una de las preguntas más difíciles para cualquier estructura jerárquica es qué pasa cuando el líder se va antes de haber formado a su reemplazo. En mercados con rotación alta — que es la norma en la industria actual — esa transferencia no siempre alcanza a completarse. Pero aquí está la respuesta que el debate teórico suele omitir: ningún equipo existe en el vacío. El líder técnico reporta a alguien que tiene contexto sobre el sistema y sobre el equipo, y sobre quiénes dentro del grupo tienen el potencial de asumir más responsabilidad. Cuando hay una ruptura en la cadena de transferencia, la organización tiene el mecanismo para absorber ese golpe y reinsertar un responsable desde arriba. La responsabilidad fluida no tiene ese mecanismo: cuando el miembro más conocedor se va, simplemente distribuye el vacío entre todos los que quedan.
Lo que este modelo produce en la práctica
La diferencia más inmediata y visible es la que ocurre a las 11 de la noche cuando el servicio de pagos falla. En un equipo con esta estructura, hay una persona que puede tomar la decisión de revertir o investigar sin convocar una reunión de emergencia. Esa persona conoce el sistema, conoce el historial de decisiones y tiene la autoridad para actuar. El tiempo de respuesta se mide en minutos, no en horas de coordinación.
Pero el impacto más profundo no es la crisis — es lo que ocurre entre crisis. Un líder que mentoriza activamente produce ingenieros que crecen. Con el tiempo, las personas del equipo desarrollan criterio propio, asumen responsabilidades más complejas y operan con creciente autonomía dentro de su dominio. El sistema no queda atado a la visión de una sola persona — queda sostenido por un equipo que entiende la visión porque alguien se tomó el trabajo de transferirla.
Hay también un efecto sobre la arquitectura base que es difícil de cuantificar pero fácil de observar. Un líder que sabe que su nombre está en el sistema tiende a tomar mejores decisiones de largo plazo. No porque la responsabilidad lo haga más capaz técnicamente, sino porque lo hace más cuidadoso: la arquitectura que construye es su carta de presentación ante el equipo, ante la organización y ante el próximo proyecto donde quiera trabajar. Los atajos que funcionan esta semana pero destruyen el sistema el próximo año también llevan el nombre de quien los autorizó.
Por último, este modelo tiene un mecanismo que la responsabilidad fluida no puede replicar fácilmente: la capacidad de corregir lo que no funciona. Un equipo sin jerarquía clara no puede fácilmente remover a alguien que está frenando al grupo, porque nadie tiene la autoridad formal para hacerlo sin generar un conflicto político que paraliza al equipo entero. Un líder con responsabilidad clara tiene ese mecanismo. No es un poder cómodo de ejercer, pero su ausencia tiene un costo que se acumula en silencio durante meses hasta que se vuelve insostenible.
El modelo fluido: cuándo funciona y por qué no es el punto de partida
Sería deshonesto no dedicarle un espacio honesto al modelo que se está cuestionando. La responsabilidad fluida tiene valor real, pero en condiciones muy específicas que rara vez se discuten con honestidad cuando se promueve.
Para que funcione sin colapsar en ambigüedad y evasión, se necesitan simultáneamente varias condiciones difíciles de alcanzar: un equipo que lleva años trabajando junto, con rotación casi nula, donde cada persona ha interiorizado tan profundamente su rol y el del resto que la estructura ya no necesita ser explícita porque está implícita en la cultura. Se necesita también un sentido de pertenencia o profesionalismo lo suficientemente elevado como para que cada persona asuma responsabilidades difíciles sin que nadie se las asigne formalmente. Y se necesita que todos tengan claridad sobre el objetivo — no a nivel de ticket, sino a nivel de hacia dónde va el sistema y por qué.
Pero hay una condición que suele omitirse incluso en las descripciones más honestas del modelo: todos los miembros del equipo deben tener una base técnica sólida y homogénea. No similar — homogénea. Porque en un modelo donde la autoridad emana del conocimiento del momento, la calidad de las decisiones depende directamente de la calidad técnica de quien las toma. Un equipo fluido con base técnica desigual no es autónomo: es un equipo donde las decisiones importantes recaen silenciosamente sobre los más capaces, mientras los demás participan en la ilusión del consenso sin poder evaluarlo con criterio real. Eso no es horizontalidad — es una jerarquía informal sin los mecanismos de rendición de cuentas que la jerarquía formal provee.
Cuando esas condiciones existen, lo fluido funciona porque la jerarquía está interiorizada, no porque haya desaparecido. El equipo se comporta de forma ordenada y responsable no porque haya un organigrama que lo fuerce, sino porque años de trabajo conjunto han producido algo más poderoso que cualquier estructura formal: confianza mutua y claridad implícita de roles. Ese estado es exactamente adonde apunta la jerarquía pedagógica descrita antes — es el destino, no el método.
Usar la responsabilidad fluida como estructura inicial en un equipo nuevo, con personas que no se conocen, en un sistema que acaba de nacer, es confundir el destino con el método. Y el costo de ese error no aparece de inmediato. Aparece dieciocho meses después, cuando alguien renuncia y nadie sabe exactamente qué sabía esa persona, ni quién tiene autoridad para decidir cómo llenar ese vacío, ni cómo se toma una decisión urgente sin convocar a diez personas que tienen opiniones igualmente válidas pero ninguna responsabilidad final.
Hay además un efecto secundario que pocas organizaciones están dispuestas a nombrar en voz alta: la ambigüedad de rol no libera a las personas. Las paraliza. Un equipo donde nadie sabe con certeza qué es suyo y qué no lo es no es un equipo autónomo — es un equipo ansioso. Cuando "todos son responsables", las tareas menos gratificantes no encuentran dueño, las decisiones difíciles se postergan en busca de un consenso que a veces nunca llega, y el estrés de la incertidumbre se distribuye silenciosamente entre todos los miembros sin que nadie lo nombre como problema estructural. La claridad de responsabilidad no es una limitación a la creatividad técnica. Es la condición que la hace posible.
Los desafíos que este modelo no resuelve solo
Sería igualmente deshonesto presentar la jerarquía pedagógica sin nombrar sus dificultades reales.
El primero y más obvio es que depende de encontrar a la persona correcta para el rol de liderazgo. Un líder que acumula en lugar de distribuir, que protege sus decisiones malas porque admitirlas equivale a dañar su carta de presentación, o que carece de la vocación de mentorizar, produce exactamente el equipo atrofiado que los críticos de la jerarquía describen. El modelo no funciona con cualquier persona en el rol — funciona con alguien que entiende que su éxito se mide por la capacidad del equipo, no por su propia indispensabilidad.
Hay además una variante de este problema que se está volviendo cada vez más común y que merece nombrarse directamente: el líder técnico que dejó de ser técnico. Con el tiempo, muchos ingenieros excelentes ascienden a roles de liderazgo y gradualmente se alejan de la práctica técnica — dejan de revisar código, de entender las decisiones de arquitectura a fondo, de tener opinión informada sobre las herramientas que usa el equipo. Se vuelven coordinadores: gestionan reuniones, comunican hacia arriba, administran tiempos. El problema no es que gestionen — es que siguen teniendo la autoridad técnica final sin tener ya el criterio técnico para ejercerla bien. El equipo lo percibe, y el resultado es predecible: las decisiones técnicas reales las toman informalmente quienes sí tienen el criterio, mientras el líder firma lo que le presentan sin poder evaluarlo con profundidad. La estructura sigue existiendo en el papel, pero la autoridad real se ha desconectado de la responsabilidad formal. Ese desacople es uno de los orígenes más frecuentes y menos diagnosticados de la deuda técnica acumulada en sistemas persistentes.
El segundo desafío es que la mentoría toma tiempo que compite con la entrega. Desarrollar el criterio técnico de un equipo es un trabajo de largo plazo que no produce resultados inmediatos. En organizaciones con presión de corto plazo constante, el líder que mentoriza bien puede parecer menos productivo en el trimestre que el que simplemente ejecuta y entrega. Esa tensión es real y requiere que la organización — no solo el líder — entienda y valore el trabajo de formación de equipo como inversión, no como overhead.
El tercero es que la transición de un equipo nuevo a un equipo maduro no es lineal. Al principio, el líder necesariamente concentra más decisiones porque el equipo no tiene todavía el contexto ni el criterio para tomarlas. Con el tiempo, esa concentración debe ir disminuyendo de forma deliberada. Si no disminuye — si el líder sigue siendo el embudo de todo dos años después — el modelo ha fallado sin que nadie lo haya nombrado explícitamente.
Cómo aplicarlo sin esperar condiciones perfectas
La buena noticia es que este modelo no requiere que todo esté resuelto desde el primer día. Requiere claridad sobre el punto de partida y honestidad sobre hacia dónde se quiere llegar.
El primer paso es nombrar explícitamente el horizonte temporal del sistema. Antes de diseñar la estructura del equipo, la organización debe poder responder con honestidad: ¿se espera que este sistema funcione más allá de las personas que lo están construyendo hoy? Si la respuesta es sí, la estructura debe reflejarlo desde el inicio, no improvisarse cuando los primeros miembros del equipo comiencen a rotar.
El segundo paso es definir con claridad quién tiene la responsabilidad final, y asegurarse de que esa persona entiende que su rol incluye transferir conocimiento, no solo ejercer autoridad. Eso puede hacerse explícito en la definición del rol, en los objetivos de desempeño y en las conversaciones de seguimiento. Un líder técnico que no puede describir cómo está formando a su sucesor no está cumpliendo la parte más importante de su trabajo.
El tercero, y quizás el más importante en la práctica, es empezar a construir la cadena de reemplazo antes de necesitarla. El líder técnico debe poder señalar, en cualquier momento, quién dentro del equipo tiene el criterio y el contexto suficientes para asumir su rol si él se va mañana. Si esa persona no existe todavía, desarrollarla es la tarea más urgente del líder — más urgente que cualquier decisión técnica pendiente. Un equipo donde esa pregunta no tiene respuesta clara no es un equipo resiliente: es un equipo que está a una renuncia de distancia de una crisis.
El círculo que se cierra
Cuando una organización decide entre jerarquía y responsabilidad fluida, cree que está eligiendo una estructura de equipo. En realidad está eligiendo algo más fundamental: quién carga con el peso cuando las cosas salen mal, y qué mecanismo existe para que ese peso nunca quede sin dueño.
En un sistema jerárquico bien ejercido, esa persona es conocida por todos. Tiene la autoridad necesaria para actuar, la responsabilidad de haber construido un equipo capaz de operar cuando ella no está, y el incentivo de cuidar el sistema porque su reputación está ligada a él. Su trabajo no termina cuando asigna tareas — termina cuando el equipo puede prescindir de ella para las decisiones del día a día y aun así mantener la dirección correcta.
En un sistema verdaderamente fluido — no el fluido teórico de los libros, sino el fluido real de los equipos con plazos y presiones — esa carga se distribuye de forma que a menudo resulta en que nadie la carga del todo. Las decisiones difíciles se postergan, las tareas menos gratificantes no encuentran dueño, y cuando el sistema falla a las 11 de la noche, la primera pregunta no es "¿cómo lo arreglamos?" sino "¿a quién le corresponde arreglarlo?". Esa pregunta, en un momento de crisis, es el lujo que un sistema persistente no puede permitirse.
Volvamos al martes. El servicio de pagos sigue fallando. El equipo está disperso. El cliente espera.
En un equipo con la estructura descrita, hay una persona que toma el teléfono, evalúa la situación con el contexto que lleva meses acumulando y toma la decisión en minutos. Puede ser el líder técnico, puede ser quien él formó para ese tipo de situación, puede ser quien escaló desde la organización cuando el líder no estaba disponible. Pero hay alguien. Y ese alguien tiene tanto la autoridad como el conocimiento para actuar.
Esa certeza — saber que hay alguien que puede responder — no es un lujo organizacional. Es la diferencia entre un sistema que sobrevive el paso del tiempo y uno que se vuelve frágil cada vez que alguien del equipo decide irse.
El martes de las 11 de la noche no es la excepción. Es el criterio de verdad de cualquier estructura de equipo. Y la pregunta que toda organización debería hacerse antes de diseñar la suya no es "¿jerarquía o autonomía?" sino algo más honesto: si el sistema falla ahora mismo, ¿quién responde?
Entrega de Valor en Arquitecturas de Microservicios. Una reinterpretación pragmática de Scrum para sistemas distribuidos
- Mauricio ECR
- Gestion
- 27 Dec, 2025
Durante años, las metodologías ágiles —y Scrum en particular— han demostrado ser eficaces para organizar el trabajo y acelerar la entrega de valor. Sin embargo, muchas de sus prácticas nacieron en un
Entrega de Valor en Arquitecturas de Microservicios. Una reinterpretación pragmática de Scrum para sistemas distribuidos
- Mauricio ECR
- Gestion
- 27 Dec, 2025
Durante años, las metodologías ágiles —y Scrum en particular— han demostrado ser eficaces para organizar el trabajo y acelerar la entrega de valor. Sin embargo, muchas de sus prácticas nacieron en un contexto tecnológico muy distinto al actual: aplicaciones monolíticas, equipos pequeños y despliegues centralizados. En ese escenario, asumir que una historia de usuario equivalía a una funcionalidad completa y visible para el usuario final era no solo razonable, sino práctico.
Hoy, esa premisa se pone en tensión cuando las organizaciones adoptan arquitecturas de microservicios con frontend desacoplado. La funcionalidad de negocio ya no reside en un único lugar ni se entrega como una sola pieza. Se construye de forma distribuida, a través de múltiples servicios, repositorios y equipos que avanzan a ritmos distintos. Este documento nace precisamente para abordar esa fricción: cómo seguir siendo ágiles sin ignorar la realidad técnica, y cómo reconocer valor allí donde tradicionalmente no se ha sabido mirar.
El objetivo no es redefinir Scrum ni entrar en debates dogmáticos, sino establecer una base clara y compartida que permita gestionar el ciclo de vida del desarrollo de software de forma coherente, predecible y sostenible en entornos distribuidos.
El problema de fondo: cuando una historia ya no contiene toda la funcionalidad
En una aplicación monolítica, la relación entre código, despliegue y experiencia de usuario era directa. Una historia de usuario solía implicar cambios en la interfaz, la lógica de negocio y la base de datos, todo dentro del mismo repositorio y liberado al mismo tiempo. El resultado era una funcionalidad tangible y visible para el usuario final.
Aplicación Monolítica:
┌────────────────────────────────────────┐
│ Una Historia = Una Funcionalidad │
│ Visible en Pantalla │
│ │
│ Código UI + Lógica + BD en mismo repo │
│ Desplegado todo junto │
└────────────────────────────────────────┘
Al pasar a una arquitectura de microservicios, esta equivalencia se rompe. Una misma funcionalidad de negocio depende ahora de un frontend independiente, varios servicios backend y, en muchos casos, integraciones externas. Cada uno de estos elementos tiene su propio ciclo de desarrollo, su propio backlog y su propia cadencia de despliegue.
Arquitectura Distribuida:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Frontend │─────▶│ Backend 1 │─────▶│ Backend 2 │
│ (Repo A) │ │ (Repo B) │ │ (Repo C) │
│ Deploy 1 │ │ Deploy 2 │ │ Deploy 3 │
└─────────────┘ └─────────────┘ └─────────────┘
▲ ▲ ▲
│ │ │
3 equipos 3 backlogs 3 velocidades
Insistir en que cada historia de usuario debe representar valor inmediato y visible para el usuario final genera consecuencias previsibles: bloqueos entre equipos, dependencia constante de integraciones y una percepción distorsionada de la velocidad real. El trabajo backend queda “invisible”, la calidad técnica se resiente y la entrega se vuelve errática.
La pregunta incómoda: ¿una API puede tener valor?
Uno de los puntos de fricción más habituales aparece cuando se cuestiona si una API backend, por sí sola, puede considerarse valor. Desde una interpretación estricta de Scrum, la respuesta suele ser negativa: si el usuario final no puede interactuar con ella, no hay valor entregado.
El problema de esta visión es que ignora cómo se construyen realmente los sistemas complejos. En un entorno distribuido, el valor no aparece de golpe al final del proceso, sino que se va materializando en forma de activos técnicos que reducen incertidumbre, habilitan trabajo paralelo y evitan retrabajo futuro.
De este modo, es necesario distinguir entre dos tipos de valor que coexisten en el flujo de entrega. Por un lado, el valor de negocio directo, que se manifiesta cuando una funcionalidad completa está integrada de extremo a extremo y disponible para el usuario final. Por otro, el valor de activo técnico, que se entrega cuando un componente queda listo, probado y certificado para ser usado por otros equipos.
Timeline de Entrega de Valor:
Día 1-3: Habilitadores completos
└─ Valor: equipos desbloqueados
Día 4-6: HU Backend completa
└─ Valor de ACTIVO: API certificada
Día 5-7: HU Frontend completa
└─ Valor de ACTIVO: UI certificada
Día 8-9: Integración E2E en QA
└─ Valor de NEGOCIO
Día 10: Producción
└─ Valor capturado por usuarios
Reconocer este segundo tipo de valor no implica bajar el estándar, sino hacerlo explícito. Una API bien diseñada y validada antes de la integración final reduce riesgos, acelera la entrega y mejora la calidad global del sistema.
Una analogía necesaria para entender el enfoque
La lógica detrás de este modelo resulta más evidente cuando se traslada al mundo físico. En una fábrica de automóviles, el motor, la transmisión y el chasis se construyen por separado. Cada uno de estos componentes tiene valor una vez que ha sido fabricado y probado, incluso aunque el coche completo todavía no exista.
Nadie consideraría desperdicio construir un motor certificado solo porque el vehículo aún no puede circular. De la misma manera, una API backend validada y desplegada en un entorno de pruebas tiene valor real, aunque el usuario final todavía no la vea. Ese valor reside en su capacidad de integrarse sin sorpresas y de servir como base sólida para el resto del sistema.
Cómo se traduce este modelo al desarrollo con microservicios
Cuando este razonamiento se aplica al desarrollo de software, la estructura se vuelve más clara. Una feature representa el objetivo de negocio final, pero su construcción requiere distintos niveles de trabajo que no pueden mezclarse sin generar confusión.
Primero aparecen los habilitadores, como la definición del contrato de la API o la configuración de la infraestructura. Estos elementos no tienen narrativa de usuario final, pero son imprescindibles para que el desarrollo avance sin bloqueos. A continuación, las historias de usuario de backend y frontend entregan componentes certificados de forma independiente. Solo cuando estos componentes se integran se materializa el valor de negocio directo.
FEATURE: "Transferir dinero entre cuentas"
Habilitador:
- Contrato OpenAPI definido y validado
HU Backend:
- API desplegada en QA
- Tests de contrato pasando
- Lista para consumo inmediato
HU Frontend:
- UI validada contra stubs
- Flujos de error implementados
Feature Completa:
- Integración E2E certificada
- Funcionalidad disponible en producción
Este enfoque no fragmenta la entrega; la hace explícita. Cada equipo sabe qué está entregando, para quién y con qué criterio de calidad.
Por qué esto no es waterfall encubierto
Una crítica frecuente es que esta separación recuerda a un modelo en cascada. La diferencia fundamental es que aquí no existen fases bloqueantes. Frontend y backend trabajan en paralelo, desacoplados mediante contratos y stubs, obteniendo feedback temprano y continuo.
En un modelo waterfall, los equipos esperan a que otros terminen para empezar. En este enfoque, los componentes se certifican de forma independiente y la integración se convierte en un paso predecible, no en un cuello de botella tardío.
Un concepto de usuario más amplio
Otro cambio clave es la evolución del concepto de “usuario”. En arquitecturas modernas, no solo las personas consumen funcionalidades. También lo hacen otros sistemas y los desarrolladores que integran servicios.
Una pasarela de pagos como Stripe lo ilustra con claridad: tiene compradores finales, aplicaciones que consumen la API y desarrolladores que necesitan documentación clara para integrar el servicio. Cada uno de ellos recibe valor distinto, y todos son usuarios legítimos. Ignorar alguno de estos niveles degrada el producto y ralentiza su adopción.
Cuando el dogma supera a la realidad
La experiencia demuestra que aplicar Scrum de forma rígida en sistemas distribuidos suele generar efectos contraproducentes. Organizaciones que solo reconocen valor cuando el cliente final ve algo en pantalla tienden a invisibilizar el trabajo técnico, acumular deuda y sufrir bloqueos constantes.
En contraste, aquellas que distinguen claramente entre valor de activo y valor de negocio logran reducir defectos, mejorar la previsibilidad y aumentar la motivación de los equipos. Reconocer el valor técnico no es una concesión, sino una condición necesaria para la sostenibilidad.
Niveles de trabajo como marco común
Para evitar ambigüedades, este enfoque distingue cuatro niveles de trabajo: Feature, Habilitador, Historia de Usuario y Tarea. Cada uno cumple una función específica y tiene criterios de finalización distintos, lo que permite planificar y medir el progreso sin mezclar expectativas.
Relación jerárquica:
1 Feature
├─ Habilitadores
├─ Historias de Usuario (Frontend / Backend)
│ └─ Tareas técnicas
Esta jerarquía no añade burocracia; añade claridad. Permite que cada equipo sepa cuándo su trabajo está realmente terminado y cómo contribuye al objetivo global.
Conclusión
La adopción de arquitecturas de microservicios exige una reinterpretación pragmática de los principios ágiles. El valor ya no aparece en un único momento ni en una sola capa del sistema. Se construye progresivamente, a través de activos técnicos certificados que habilitan la entrega final de valor de negocio.
Este documento establece una base para trabajar con esa realidad, permitiendo desacoplar equipos, visibilizar el trabajo técnico y mejorar la calidad global del sistema. A partir de aquí, el marco puede evolucionar hacia métricas más avanzadas, automatización de certificaciones y una gestión aún más madura de dependencias e integraciones.