La clave del éxito de las prácticas modernas de desarrollo de software es mantener el foco en el flujo de trabajo. Los equipos alineados al flujo se concentran en un único flujo de valor, como un recorrido de usuario o un producto, lo que les permite entregar valor de extremo a extremo de manera eficiente. Sin embargo, estamos observando una tendencia preocupante hacia el capacity-driven development, dónde equipos alineados de esta forma asumen características o funcionalidades de otros productos o flujos cuando tienen capacidad disponible. Aunque esto puede parecer eficiente a corto plazo, representa una optimización local más adecuada para manejar picos repentinos de demanda. Cuando se normaliza, aumenta la carga cognitiva y la deuda técnica, y en el peor de los casos puede provocar un colapso por congestión, ya que el costo del cambio de contexto entre productos se acumula. Los equipos con capacidad disponible obtienen mejores resultados al centrarse en mejorar la salud del sistema. Para gestionar la capacidad de manera efectiva, utiliza límites al trabajo en progreso (WIP) para controlar el trabajo entre flujos adyacentes, considera la capacitación cruzada para equilibrar los períodos de alta demanda y aplica técnicas de dynamic reteaming cuando sea necesario.