Welcome to a 4-Part series on FLOW!
This post is an introduction along with key reflections.
What is Flow
“Flow” refers to the flow of customer value through an organization, from customer request to value delivery. It’s the work flowing through the Product Development process through market release and beyond.
Why Flow Matters
Flow is the secret sauce for delivering maximum value to users in the shortest possible time. By optimizing flow, you’ll be able to take control of your workflow and more quickly (and continuously) adapt your product strategy and development processes. The right solutions and Ways-of-Working will be identified faster because feedback loops will become shorter.
Focusing on flow sets you free to manage the system, not the people. Instead of managing people and optimizing for business and resource efficiency, you can focus on managing and optimizing flow. This is a powerful way to “Manage the System and not the People”. You will be free to co-create an organizational context where all aspects of the work can move together in a way that balances both flow and resources.
How Agile Leaders Optimize Flow
Agile leaders optimize flow through iterative and incremental organizational change. They use Lean Agile practices to put into place structures, processes, and ways-of-working that will ensure the flow is as smooth as possible without disrupting other organizational activities. Their goal is to reach the optimal flow efficiency and delivery of value with minimal waste.
Agile leaders make it safe and economic to work in small batches. They move away from large batches of work delivered in projects and move towards small batches of work delivered continuously. The result is shorter lead times, higher quality, lower risk, and lower costs.
Agile leaders build in slack time to ensure their team members have the capacity available all the time so there’s always a team member immediately available to start work. As a result, the quality naturally improves because team members will be focused on a single product or project. Their entire attention will be on the tasks that comprise the work, leaving a minimal chance for mistakes caused by frequent context switching.
Agile leaders manage for throughput rather than capacity or utilization. They implement Kanban principles by making all work visible, limit work in process, and aim to stop starting work and start finishing it as soon as possible.
Traditional organizations, on the other hand, do the opposite. They deliver large batches of work and optimize for business and resource efficiency, all of which causes waste. Resource efficiency refers to how much of the capacity of your teams that you’re putting to use. Traditional organizations work towards achieving maximum resource efficiency by keeping their teams busy 100% of the time, often working on more than one project. However, from experience, we know this doesn’t work. Computer processing units (CPUs) and traffic systems come to a standstill when overutilized, as do people! Overutilization and frequent context switching leads to longer lead times, diminished quality, inconsistent flow and unreliable delivery of value to customers, if at all.
Moreover, the project paradigm of traditional organizations only serves to worsen these problems. A few examples of what I’ve seen in organizations are listed below:
- Projects batch features together in ways that result in lower-value features being delivered along with a few high-value ones.
- Project success is often measured by completing the original plan on time and budget, which doesn’t reflect whether or not actual value was created for customers and for our organization. This drives several damaging behaviors, such as judging Product people only on their ability to create comprehensive requirements and Developers only on having code completed.
- Projects can take so long to complete that stakeholders try to cram as many features into the project as possible, given that it can be hard to get new features added once the project has completed.
- Project planning happens when the least information is known, which means more work is added as more information is obtained, leading to increased cost, effort. and complexity to production environments.
Starter Questions for Reflections
Optimizing flow starts with uncovering those strategic, and often small, windows of opportunity to put into place the structures, processes, and ways-of-working of Agile Leaders.
Recognizing such windows of opportunity starts with reflection.
Below is a list of reflection questions for Leaders, Managers, Team Leads, Scrum Masters or anyone in any development organization wanting to optimize flow and deliver even more value to customers.
The next post in this series will be a collection of actionable starter steps building on these reflections, created in collaboration with fellow Dandy Johan Wildros, that anyone can use to start moving the needle even more once those opportunities are spotted!
Flow-based reflection questions – Stay tuned for next-week’s Flow Starter Steps!
|Where can we eliminate low-value work?|
|Is there a way we can remove impediments to help a team achieve a regular or shorter cycle time?|
|How much WIP can our teams handle?|
|Do our teams regularly address technical debt? if not, why not?|
|What is one handover that we could eliminate today OR incorporate the activity in our team?|
|What can we do to help our team’s throughput?|
|How often are we forced to switch tasks because of urgent needs that arise?|
|How long does it take before our code is tested?|
|How long does an item remain in our backlogs before it’s started?|
|Is the trend, or number of defects, going up or down?|
|Where, in the process, are the most defects introduced?|
|Are dependencies being managed, or better yet, broken?|
|How can our teams collect more feedback from customers?|
|How do we know if our features create value for our customers? What feedback loops are in place?|