Core Principle
Lean flow theory, originating in the Toyota Production System and formalized by Reinertsen’s application of queuing theory to product development, is the theoretical foundation for continuous delivery, trunk-based development, and modern DevOps practices. The core insight: batch size is the single most important determinant of cycle time, and fast feedback is the mechanism by which quality improves.
Why This Matters
The lineage is: Toyota Production System (1950s) → Lean Manufacturing (Womack & Jones, 1996) → Lean Product Development Flow (Reinertsen, 2009) → Continuous Delivery (Humble & Farley, 2010) → Accelerate/DORA (Forsgren, Humble & Kim, 2018). Understanding this lineage gives you the theoretical vocabulary to explain why practices like trunk-based development work, not just that they do.
Evidence/Examples
Reinertsen’s three key principles from queuing theory:
- Smaller batches flow faster through a system, with less variability, generating feedback sooner
- Large batches create queues, and queues are invisible inventory with carrying costs. In software: open branches, pending merges, staging environments are all WIP inventory
- Fast feedback reduces uncertainty. The sooner you learn a change is broken, the cheaper it is to fix. This is an information theory argument, not just an efficiency argument
The Poppendiecks’ vocabulary for applying lean to software:
- Waste: anything that doesn’t deliver value
- Flow: smooth movement of work through a system
- Pull: downstream demand drives upstream work
- Amplify learning: short feedback cycles
Implications
- Practices that increase batch size (long-lived feature branches, release trains, staging gates) degrade both speed and quality
- Practices that decrease batch size (trunk-based development, feature flags, continuous deployment) improve both
- The argument is mathematical (queuing theory), not just empirical, which makes it more portable across contexts
Related Ideas
- The Speed-Stability False Tradeoff
- Small Batch Sizes and Feedback Loops
- Trunk-Based Development
- Test-Driven Development
Questions
- How does Reinertsen’s model account for cognitive switching costs? Smaller batches mean more context switches.
- Is there a minimum viable batch size below which the overhead of deployment exceeds the feedback benefit?
Sources
- Reinertsen, D.G. The Principles of Product Development Flow (2009). Celeritas Publishing.
- Poppendieck, M. & Poppendieck, T. Lean Software Development: An Agile Toolkit (2003). Addison-Wesley.
- Humble, J. & Farley, D. Continuous Delivery (2010). Addison-Wesley.
- Womack, J. & Jones, D. Lean Thinking (1996). Simon & Schuster.