Flow

How efficient is your flow?

One of the questions that working professionals get asked the most is “When will my request be completed?” In order to answer, we often look at lead time metrics to give a predictable answer. Looking at lead times over a period of time can give us a pretty high confidence level in setting delivery expectations. It is a strategy for predictability.

When we look at improving those lead times, we often focus on how to improve the active work we do for the requests we receive. We might improve test automation, implement code review process and/or continuous delivery pipelines. Those are all great endeavors. However, too many teams are not aware that the biggest way to improve the lead times for our work may actually be focusing on reducing the time we spend NOT working on our requests.

Introducing the Flow Efficiency metric

Flow Efficiency examines the two basic components that make up your lead time: working time and waiting time.

lead time breakdown

Unless you are working on one thing at a time, and you never get interrupted, lead time has both of these components. Waiting time can be encountered for many reasons: dependencies, priority changes, too much work-in-progress, etc.

Stated in another way: work-in-progress isn’t always actually in progress.  Flow efficiency tells us how often that is true.

Calculating your flow efficiency

Measuring flow efficiency can be done for a single request, but its much more likely that you want to measure the flow efficiency of your process over all requests completed in a specific time period. So, for the items completed in that time period, you’ll need the following information.

  1. Overall Lead time (work + wait time)
  2. Active Work time (do not include time spent waiting)

You then calculate the flow efficiency by dividing the active work time by the overall lead time. Multiply the result of that equation by 100% and the result is your flow efficiency for the given time window.

flow efficiency formula

Visualizing your wait

The key to calculating flow efficiency is to know how long work spends waiting. If you are working with a board for a true pull system, your board structure will be configured to show when work is queued and ready to be pulled to the next step. Measuring how long work spends in those queue columns is needed to properly calculate flow efficiency.

People often want to know how granular they should go in measuring wait vs work times. Well, like many things, it is a balance between the overhead of tracking the data for the calculation and the benefit you can get from it. I don’t suggest that people try to track down to the minute. Some people want to start in days and some want to track the hours they spend working on a task in a given day. My advice? Just start somewhere and discover what the right balance is for you or your team. If its too much overhead people will abandon it so err on the easier side and then get more detailed if you find it is necessary.

What is a normal flow efficiency?

I have read many and varied statements on the flow efficiency of your standard team/organization and the most generous of them all states that teams who aren’t paying attention to this concept generally have flow efficiencies around the 15%(1) mark. So, 15% is “normal.” That means that work normally spends 85% of its lifecycle waiting on something.

Some causes of this wait are more easily remedied than others. Sometimes we can just stop making choices that incur wait time and, in others, we need help from other departments or organizations to resolve the issues. That is probably one of the reasons that David J Anderson says that a good flow efficiency is anything above 40%(2).

In almost all cases, the math tells us that we can achieve a much higher percentage reduction in lead time if we focus on resolving causes of wait over streamlining the work. That’s a massive opportunity for customer happiness.

Improving your flow efficiency

Like most metrics, your flow efficiency result will not tell you how to improve your efficiency.  Any attempt to do so in a standard format that is divorced from context would most likely cause more problems than it helps to solve. It is the responsibility of the consumer of any metric to understand what it aims to show you (and what it doesn’t). It’s also your responsibility to look for causes of the trends and data points reflected in the metric.

Once you dive into the details of the work, you can begin to discover the causes of the unnecessary wait times and the impact each one of those causes has. At that point, you can start to design experiments to try to reduce the wait and increase your flow efficiency.

Visualizing and reducing the wait, in addition to streamlining the work itself, can prove to be kryptonite to long lead times and just the ticket to building happier customers.

Working with flow efficiency? Share your successes and struggles in the comments section!


References

(1) Actionable Agile Metrics for Predictability: An Introduction by Daniel S. Vacanti . Page 34.

(2) Low Flow Efficiency: Resist temptation to design out waste by David J. Anderson. Blog Post.

Images inspired by Zsolt Fabok’s flow efficiency graphics