What does it mean for work to become blocked? It means that active work has been halted, because a problem has been encountered that prevents it from being completed. The problem is not immediately resolvable, typically outside of a team’s control. Blocked work is one of the most prevalent and costly problems that organizations face while managing work. Our ability to deal with blocked work effectively is one of the best skills and organization can gain.

This article describes some anti-patterns commonly seen when designing systems to visualize and manage blocked work.  The goal is that you gain a solid understanding of the pitfalls so you can avoid them, use a better alternative, and help others do the same.

Let’s start with two assumptions:

  1. We want to work on the most important things
  2. When we start important work, we want deliver it as soon as possible so the benefits can be realized

Sound reasonable?  With these in mind, let’s look at a board to manage work and see how different blocker scenarios play out.

Basic Workflow to Manage Work

The board below represents the simplest workflow we can imagine to track work.  Each green box is something important that we want delivered quickly.  If it helps, you can think of these as user stories, features, or some other work item that a customer or stakeholder would want (i.e. something someone would be willing to buy).

simple kanban board

No one wants to be idle, so a common response to blocked work is to put the work aside and pick up new work.  When this occurs, it’s important that they indicate that the work they put aside is blocked.

Blocked Work is Moved

blocked column

When items are moved to a blocked state or area, you can quickly see them and count how many since they’re all in one place.  Anyone that reviews the board can ask questions about the cause of the block and offer help to remove it.

The natural response is to fill the vacated position with the next queued item to deliver, presumably the most important.  Those that see this as positive, point out that the workers are no longer idle and we are being efficient with their time.  After all, the work has to get done eventually, doesn’t it?

filling-vacated-wip

Understanding the impact of this choice is important.  Here are three possible outcomes that may now occur:

  1. The blocked work is resolved quickly, but only after new work has started.  One of the three items will be stalled while the others progress.
  2. The blocked work remains unresolved longer than hoped, becoming stale. Meanwhile, other less important work continues to be delivered instead.
  3. The new work that’s pulled to fill the spot vacated by the blocked work also becomes blocked, exacerbating the problem.

Scenario #1 – Blocked Work Resolved Quickly

The best possible scenario is that the block is quickly removed, allowing the more important work to resume.  In most cases, the amount of work in progress represents just enough work to keep people busy and prevent overload or delay.  In our working example, three items represented a natural limit for the amount of work that could be handled.  By filling the previously vacated position, the number of items in progress was restored to three, while the blocked item remained unresolved.  Now that the item is no longer blocked, we now have to choose between 3 of the 4 items to focus our efforts. Which do we pick and who makes that choice?

unblocked-work-resumes

First, let’s note there is a cost to this choice, which is the cost of delaying the more important work. Remember, the work that was previously blocked was more important than the work that filled the temporary vacancy it left.  There’s an opportunity cost to swapping the order of delivery, often called the cost of delay, which may lead to a sub-optimal economic outcome.  We want the choice to be made using that consideration and made by those accountable for the economic impact.  For those performing the work, the impact may not known and they might select the work that best fits their working style (e.g. finish what they’re working on now, pick what’s most enjoyable, knock out the easiest one).

Ideally, you’d pick the blocked work to resume based on its value, but ongoing activities for the other work may make that difficult.  For example, you may have engaged another group, someone with a specialty skill, or acquired a scarce resource (i.e. like an environment or shared license) to perform the work that’s active.

Scenario #2 – Blocked Work Becomes Stale

In the previous scenario, the highly visible blocked work was resolved quickly. The most desirable response to seeing a blocked item is to aggressively remove the block. Unfortunately, resolution may not always come quickly. Two things can occur with blockers:

  1. The block is difficult to remove
  2. The blocked item is neglected

Both of these conditions lead to stale work items, due to their lengthy blockage.

stale blocked item

When work is blocked for long periods of time, we repeat the cycle of selecting new work over the blocked work.  While this may be the best alternative, it’s important to understand the magnitude of the stale blocked work.  At a minimum, record the amount of time the item has been blocked.  Since you are bearing the cost of delay, there is a real economic impact that gets worse over time.  Knowing the impact allows you to properly evaluate the severity of the blocker, possibly leading to increased attention.  With increased attention, the blocker may have a better chance at removal and prevention of similar blockers in the future.

Scenario #3 – Blocked Work Grows

The stale blocked item scenario presented was optimistic because only one item was ever blocked.  What happens if work regularly becomes blocked?

increasing blocked items

By making the decision to pull new work each time work gets blocked, we create the risk of a growing number of blocked items.  Not only can this lead to a sub-optimal economic outcome, but it can create a challenge to track and resolve all of these issues.

Since one of our goals is to remove the blockers, what happens when we get our wish?

many items unblocked

Recall that three items is the amount of work that can be actively performed. When we accumulate blockers, especially due to the same cause, their removal adds to the work in progress count.  In the scenario above, removing all of the blockers more than doubled the work in progress.  As noted earlier, this creates a conundrum about where to focus your efforts.  Regardless, some of the work will continue to be delayed since there is insufficient capacity to work on everything.  In other words, even though the blocker has been removed many of the costs will still be realized because work will still be delayed.

Improved Design Alternatives

At this point, we have focused on a discussion about blockers and the implications of handling them with a fairly simply board design.  The blocked column design carries with it a number of flaws:

  1. It creates a safe place for blockers, indicating that they are expected and welcome.  The side effect is a likelihood of getting more due to the hidden costs of delay over the visible costs of idle workers.
  2. It creates a potential condition for overloaded workers and sub-optimal choices between competing priorities.
  3. It takes the work out of context, putting the work in a “penalty box”.  When workflows are more involved this becomes a challenge.

The last of these flaws requires some explanation.  Let’s examine a more involved workflow that you might see in a software development organization. 

more involved workflow

In the workflow above, consider the following steps to deliver work:

  1. Prepare to start the work – shared understanding, work is small enough to be delivered fast, work has no unresolved issues
  2. Perform the work (a.k.a. “In Progress”) – whatever’s needed to fulfill the request
  3. Prepare for system test – any setup and coordination activities between groups before system testing can begin
  4. Test the system – assess whether the work performs correctly when integrated with other components and realistic data
  5. Prepare for release – activities needed to properly deploy and support the delivered changes

It’s possible that work could become blocked during any of these steps.  With this in mind, consider the implications of moving the work to a blocked column, or a similar designation.

blocked row with lost context

In this illustration, three items become blocked, each at a different stage of the workflow. Each blocked item is placed in the same location, a blocked row (consider this equivalent to a blocked column). When the items are moved from a specific to a more generic location, the context of the problem is lost, namely where it occurred. Besides all of the same issues of stale work and overload that we examined before, a new issue surfaces. It’s unclear how to resolve the item, which the context would help us understand, and where to return the item when it’s resolved.

One response I’ve seen to address this issue is to create a blocked row that retains the workflow steps as columns.

Blocked Row with Workflow Steps

While this design avoids the loss of context, it still formalizes the acceptance of blockers and incurs the rest of the challenges we reviewed with the blocker column.  There’s got to be a better way.

blocked row and retain context

Blocked Work Remains in Context

A variation of the blocked row with workflow columns can be created by modifying how blocks are indicated.  Rather than moving the blocked work to another row, just leave it where it is and indicate the block another way.

blocked in context with wip limits honored

Here we leave all of the work exactly where it is, regardless of whether it is blocked.  We indicate blockers by changing the card color to red.  Alternatively, you can add an icon, like a stop sign or a flag, that sets the work apart.  This solution is simpler than the previous options because we don’t create any additional space on the board for blocked work.  Because there is not designated space for blockers they remain in view and harder for us to ignore.  Despite all of this it’s still possible to have the same problems of stale work and overload when the issues are resolved.

blocked in context with wip limits violated

By continuing to pull new items when existing work becomes blocked we create more work in progress.  When blockers are removed overload occurs.  The delays that occur from blocked work and overload lead to an unpredictable system, and compromises your ability to plan and forecast effectively.

Final Design Improvement

Building upon the last design, let’s address the problem of work in progress growth by adding a policy to limit how much work exists in a workflow step, regardless of whether it’s blocked.

leave blocked work in tact

The numbers along the top of each column indicate the maximum number of work items allowed.  As you can see, there is a single blocked item in the “In Progress” column. Because the blocked items count against the limit, no new work can be started until one of the unblocked items is completed.  While it’s still possible to ignore the blocker, it’s far less likely.  This is because most people, especially in management, are uncomfortable with the idea of not starting new work because it runs counter with our cultural norm to stay busy and make efficient use of people’s time.

Walk-Off

As it turns out, the biggest cost to organizations is the delay of the work, and not the idleness of the workers.  Consequently, we want to create a system that identifies and removes blockers or impediments quickly and regularly.  We do this in a few ways:

  1. Do not create special places for blocked work.  Leave the work where it is.
  2. Clearly indicate the work is blocked.  It helps to include when the work became blocked and the reason it’s blocked.
  3. Set work in progress limits for your workflow steps
  4. Allow the blocked work to count against the limits and do not violate the limits.

Following this formula creates discomfort. Focus tends to shift to resolving the blocked work to relieve the discomfort, often finding ways to avoid blockers in the future.  This allows for a healthier organization that consistently improves, rather than settling for recurring causes of delay.

Often, management plays a role in ensuring blockers are removed and the improvements are made.  In doing this, they help their own cause in the following ways:

  1. The people that report to them are not overloaded with work or frustrated by continual stoppages.  Happier people leads to less turnover and better work.
  2. They are better able to make reliable plans because the work is getting completed regularly without large delays.  A predictable system results in more reasonable expectations about delivery timing and scope, creating less stress on everyone.

The best proof that these things work is to try them yourself and check the results.  I think you’ll be pleased.  Good luck!

Similar Posts