The Hard Truth About WIP Limits

Mario Lucero

Mario Lucero

Guest Author

Table of Contents:

One of the main properties of Kanban is limiting work in progress (WIP). This allows you to match any team’s development (or your personal) capacity.

The most widely adopted practice is to set WIP limits per column (workflow stage). However, it is also acceptable to establish limits per person or team.

In my experience, WIP limits are very simple to understand but very complicated for most people to follow.

WIP Reality Check

One time, I was talking with the management team of a company and asked them how many projects did they manage to finish throughout the past year. The number they presented was equal to 10. Afterward, I asked how many projects they started in these 12 months. The answer was "between two and three times more than we finished.

The Common Approach to Starting New Work

Why do companies, people, and teams love to start tasks (or projects, user stories, and so on) without thinking about their capacity to deal with them?

My experience has shown that when you have many things to do, you start feeling anxious about each of them. Then, you want to start as soon as you can each of them to feel a relief (and unconsciously think everything is going well because you work on all of them).

Tricks to Reduce WIP

There are some simple tips I recommend on how to deal with WIP:

Be Efficient

Every day, think about what you can do to finish one task in your job (it has to be worthwhile) with less effort. You should be disciplined and avoid the temptation to work on other tasks unless it is absolutely necessary.

to do list

For instance, I was working with a team leader who was meeting his manager every Friday. Often, the manager was getting angry because the team couldn’t finish any work during the week.

The manager requested my help in dealing with this problem.

The first time I met with the team leader, we had the following conversation:

Myself: Hey Pablo (fiction name). How is it going?

Pablo: Hey Mario. I am struggling with many tasks today.

Myself: How many tasks do you have in progress?

Pablo: I have six tasks.

Myself: What is the most important of them that you can finish today?

Pablo: I suppose that "testing the web service that gets personal information of the user.

Myself: Well, you have to let only that task in the column "In Progress" and the rest of the tasks have to be put again in the "To Do" column (in this example, the Kanban board was basic with just "To Do, In Progress and Done" columns)

At the end of the office day, I met again with Pablo, who told me that he finished testing the web service.

We had similar meetings for the next several days, and things started to improve with Pablo's team.

Using "Pull" instead of "Push"

Every time someone assigns tasks to you, your manager is doing "Push". With this approach, the manager distrusts (or believes you have more capacity than you really have) the capacity of the employee.

Because of that he "pushes" tasks. Even if you don’t finish your current work, you will get more and more.

The main idea is to keep 100% busy all of the employees. This is called The resource utilization trap. The common understanding is that when everyone in your team is busy things are getting done.

In reality, what happens is a lot of multitasking and constant handover resulting in the continuous juggling of tasks without making significant progress.

The Pull system itself is a technique for controlling the flow of resources through a system. The goal is to replace only what has been consumed at the optimal time.

pull work

It is called a pull system because resources are pulled into the pipeline only as they are actually needed or requested.

I helped a company to implement "Pull" in a support team. In the beginning, the manager was pushing batches of tickets to the team with the assumption that each person needed roughly 4 hours to finish a ticket.

When they started using pull, team members had to start working on just one ticket at a time. They were allowed to take a new one as soon as they finished the one they were currently working on.

Eventually, their throughput increased significantly, and they started solving more tickets in less time.

Last but not least, it is important to note that this was only possible because the backlog of tickets wasn’t empty so there was a continuous flow adjusted to the amount of WIP of the team.

Stop Starting and Start Finishing

What is the real value of working on one task? To do 10%, 20%, or 30% of our job or finish as soon as possible and deliver value to the client?

We only deliver value when we finish tasks. In fact, we need to count how many tasks we are able to finish per day or per week in order to check our real capacity.

To sum it up, multitasking is a bad and difficult habit to give up. However, if you want to be more efficient at work, keep in mind my favorite tricks:

  1. Using "Pull" instead of "Push" (you and everybody have a capacity to do things properly)
  2. "Stop starting and Start finishing" (You will be rewarded only for finishing tasks) 

Tags

Kanban

Lean/Agile

Experts Speak

Mario Lucero

Mario Lucero

Guest Author

Mario is an Agile Coach and Scrum Trainer based in Santiago (Chile). He helps organizations deliver high-quality software with predictability and joy. Mario is the author of Agile Lucero - a blog dedicated to sharing Lean and Agile knowledge.