Wastes That Kill Your Flow

In my last post, I introduced nine wastes that hide in software teams.

Recognising them is the first step. The next step is learning how to remove them, starting with the ones that break flow.

In this post, we’ll look at the most common flow killers. These three wastes are often interconnected, and can quietly destroy momentum.

1. Mismanaging the Backlog

This is the cost of duplicating work, expediting low-value features, or delaying necessary bug fixes.

A poorly managed backlog is one of the most persistent sources of waste. One of the worst symptoms is backlog inversion, when low-priority items become high-priority (and vice-versa), but the backlog is never updated to reflect it. Team members then pick up tasks that look important but are not.

This leads to a phenomenon called backlog thrashing, when teams try to push more work through than they can handle. Everyone looks busy, stress rises, but very little of value gets finished.

Examples of this waste include:

How to reduce this waste:

A healthy backlog maintains flow; a neglected one blocks it at the source.

2. Waiting / Multitasking

This is the cost of idle time, which is very often hidden by multitasking.

When developers are blocked (waiting for information, for a build to finish, or for a dependency on another team), they rarely sit idle. Instead, they pick up a new task. This multitasking seems productive, but it introduces its own waste.

First, multitasking involves a mental transition to the new task, which can be time-consuming. Second, it creates a dilemma when the original high-priority task is unblocked. Does the developer finish the new, lower-priority task (delaying the important work) or immediately switch back (leaving more work-in-progress)?

How to reduce this waste:

Every minute spent context-switching is a leak in your team’s flow.

3. Ineffective Communication

This is the cost of incomplete, incorrect, misleading, inefficient, or absent communication among stakeholders.

This waste is a “killer” because it actively causes the other types of waste.

When communication is ineffective, you get delays, which leads to Waiting. Misunderstanding user needs leads to Building the Wrong Thing. Misunderstanding a technical solution leads to Overly Complex Solutions. Poor decision-making leads to Mismanaging the Backlog.

Examples of this waste include:

How to reduce this waste:

Without shared understanding, flow collapses into churn.

What’s Next?

Flow is critical, but it’s only half the story. It doesn’t matter how fast you’re going if you’re heading in the wrong direction.

In the next post, we’ll look at a different, perhaps even more expensive, kind of waste: Building the Wrong Thing and Unnecessarily Complicated Solutions.

More on that in the next post.