Software product development organizations operate in an environment of ever-increasing volatility, uncertainty, complexity, and ambiguity. The pace of change is accelerating, business and technology complexity is growing, and organizations are struggling to keep pace. The software development industry has a $300 billion productivity problem, according to one study. Value is not flowing as it should. Flow-based software development is part of the continued evolution of contemporary software development approaches contributing to addressing this problem. It builds on agile and lean software development approaches and incorporates lessons from Deming’s management method, the Toyota Production System, Lean Product Development, Theory of Constraints, Operations Management, and other influences. Flow-based development is foundational to modern systems approaches, including DevOps, Continuous Delivery, Site Reliability Engineering, and more. Creating and sustaining flow in organizations is a challenging problem. Drawing on insights developed over many years working with multiple global product development organizations, this session presents a framework for establishing, understanding, and sustaining flow in organizations.
I presented this session at the XP2020 conference. The slides are available here.
This session addressed the following questions:
- What is flow?
- What is the relationship between flow, lean, and agile?
- Why do organizations adopt flow?
- Where to get started?
- What contributes to flow happening?
- How do we measure flow?
- What makes flow difficult to achieve?
- How can organizations overcome these impediments to flow?
- What is the role of culture in determining how effective flow can be?