Methods & Tools Software Development Magazine

Software Development Magazine - Project Management, Programming, Software Testing

 

Kanban for Skeptics

Nick Oostvogels, http://www.skycoach.be, @NickOostvogels

As a change agent, you constantly need to reassure people that the path we follow is worthwhile traveling. This need is often expressed in the form of critique and difficult questions. When I coach teams, this is often the case. The same thing happens when introducing Kanban.

However, I noticed that Kanban raises much harder questions on a management and leadership level, once people are introduced to the basics and start to explore the subject on their own. The type of questions Kanban raise, seem to be hard to answer without lapsing into hour-long discussions. This is normal because Kanban is a change management approach, not a methodology and therefore much less prescriptive. In order to provide reassurance, as a coach, you need to trace the questions all the way back to the principles of Kanban, which are grounded in Lean thinking [1].

This is why I wrote a free e-book ĎKanban for Skepticsí [2], that lists the 5 most common arguments against Kanban.

What is Kanban?

When the term Kanban is used in the field of software engineering, people think it is only the practice of adding Work In Progress (WIP) limits to the different stages in a development lifecycle.

In theory, Kanban is a change management approach that employs a WIP limited pull system.

The limited set of rules and principles help people focus on customer value and avoid stacking up half finished work, which is still a common issue in the software industry.

David Anderson has written a nice summary on the principles of Kanban [3]:

First follow the foundational principles:

  • Start with what you do now
  • Agree to pursue incremental, evolutionary change
  • Initially, respect current roles, responsibilities & job titles

Then adopt the core practices:

  1. 1. Visualize workflow
  2. 2. Limit Work In Progress
  3. 3. Manage Flow
  4. 4. Make Process Policies Explicit
  5. 5. Improve Collaboratively

But because Kanban is not a process, people will perceive the change differently. In day-to-day life, the way they work wonít change much, in the beginning. The only things they will feel in their day to day job are the principles that employ a WIP limited pull system. These will slowly introduce different behavior and continuous improvement.

5 common arguments

In my e-book Kanban for Skeptics, I explore 5 common arguments against Kanban.

  • We lose our ability to plan.
  • It will take longer.
  • Things will get stuck, we canít keep WIP limits.
  • Stakeholders donít care about feeding the flow.
  • We will lose team cohesion.

Although these arguments are invalid, we must acknowledge them as challenges for all leaders trying to introduce Kanban in organizations. My e-book will help you get the discussion started.

Letís explore one of the arguments.

Things will get stuck, we canít keep WIP limits

Work In Progress (WIP) limits visualize the maximum capacity of each stage in the value stream. If a WIP limit of 3 is set on the development column of the Kanban board, this means the developers canít work on more than 3 tasks simultaneously.

When people hear about the concept of Work In Progress limits, their first reaction is that it will never work in their organization. They expect a major efficiency drop if they would apply it to the different workflow stages. "Our testers can never keep up with the pace of our developers when testing the features. Developers would be idle for half of the time". This is applicable to all different roles in the organization all the way up from sales to operations downstream.

The way most organizations fix this is by working asynchronously. When testers are looking at the features, development is starting to work on new requests, to maximize their efficiency.

Remember that Kanban doesnít focus on maximizing resource utilization. Instead it focuses on maximizing end-to-end flow efficiency, which is a completely different goal.

Improving flow

The focus of Kanban on end-to-end efficiency all points towards pulling value from the customer with as much added value as possible. So instead of maximizing utilization rates, the team focuses on getting value through the flow as quickly as possible. In some cases this may cause people to be idle, making sure they are not working on things that cause an increase in work in progress and the risk of a value mismatch.

Instead of all blindly starting to produce as much as possible, the team focuses on improving the flow by removing bottlenecks [4] and redesigning the flow in order to keep up with the new stream of demand. This is an exercise that never stops, due to the variability in the consumer market. Thanks to the clear focus on end-to-end flow, the team makes sure they keep working in a pull system, driven by customer demand.

If weíre honest, we all know that itís in our nature to start looking for new challenges when the major problem solving of a task is done. This leads to a huge pile of tasks that are only 90% finished. The end-to-end focus of Kanban will push you to finish the remaining 10%.

There is no exact science on determining WIP limits. As soon as they are chosen, bottlenecks will appear. This doesnít have to be a disaster. When the organization embraces the idea of a pull system, they will understand that WIP limits help to improve end-to-end efficiency. The first signs of a bottleneck appearing will drive continuous improvement. People will start to get nervous because they canít pull a new feature to work on.

It will drive team members to collaborate on 2 levels. A first reaction will be to go out and check what the problem is. Why are you stuck? Can I help you to get going again? This will eventually get the flow going again, but soon things will get stuck again, leading to the second reaction. How can we solve this bottleneck? If you think about it, the WIP limits cause the team to self adjust to changes that affect the end-to-end flow.

Emergencies

Another common remark is "Weíre not able to keep WIP limits because of emergencies that pop up from time to time". In a well-balanced flow, all stages in the Kanban flow are close to their WIP limits. This means that when an emergency pops up, the team wonít be able to start solving it until new capacity becomes available. This is not acceptable because an emergency canít wait for half a day before someone starts working on it.

Reality proves to be different, even in Kanban land. When an emergency arrives, it needs to be dealt with, immediately! This means WIP limits can be broken. How- ever, the decision needs to be made very consciously because of the impact.

Introducing an emergency into the flow causes people to drop what theyíre doing and switch context. This comes with a cost. The flow will be interrupted and lead times will be impacted. You probably understand that itís important to reduce these interruptions to a minimum. Otherwise variability of the Kanban flow will increase, tearing down its reliability and frequent delivery of value. It doesnít take long before you fall back into estimating and planning.

One way to reduce the number of emergencies that interrupt the flow, is by making sure new items are pulled from the queue on a regular basis. When on average, it takes only 2 hours for a feature at the top of the queue to get pulled, far fewer emergencies need to be pushed into the flow. When you can rely on the pull frequency of the Kanban flow, itís much easier to just prioritize it in the queue instead of interrupting everybodyís work.

Off course there will always be emergencies that need to be dealt with immediately. This is where the concept of Classes of Service [5] can offer you some flexibility. By categorizing the type of work that enters the Kanban flow, we agree to the service levels that apply to these different categories. Some categories have much higher due date performance than others. This gives you some room to absorb variation because of emergencies that disrupt the flow.

Many Kanban implementations use a fast lane to deal with emergencies. This is a horizontal lane that spreads across all workflow stages and has a WIP limit of itís own.

When an emergency arrives, for instance the payment module is offline, it is pulled through the fast lane with priority over all other work items. This is often the case when you work on an existing product and critical issues can appear at any given time. At that point, the WIP limits will obstruct the hotfix that needs to be released as fast as possible.

By using a fast lane, we implicitly give an emergency priority over all other work in the flow. But to prevent the fast lane to disrupt the flow too often, we will also limit its work in progress, only 1 item can reside in the entire horizontal lane across all workflow stages.

Summary

Off course introducing WIP limits is going to cause problems! The question is, why is that bothering you? The purpose of WIP limits is to make it easier to work in a pull system that is more effective from start to end. The WIP limits will signal an uneven balance in your flow. From that point, you can start working on improving it.

Free e-book

You can read about the other 4 arguments against Kanban by downloading my e-book for free at leanpub.com/kanbanforskeptics and automatically get next versions in the future.

References

  1. Womack, James P. & Jones, Daniel T. Lean Thinking: Banish Waste and Create Wealth in Your Corporation. NY: Free Press, 2003.
  2. http://leanpub.com/kanbanforskeptics
  3. http://www.djaa.com/principles-kanban-method
  4. Goldratt, Eliyahu M. & Cox, Jeff. The Goal: A Process of Ongoing Improvement. Boston, MA: North River Press, 2004.
  5. http://www.dennisstevens.com/2010/06/14/kanban-what-are-classes-of-service-and-why-should-you-care/

More articles on Kanban

Aspects of Kanban

Making Your Culture Work with Agile, Kanban & Software Craftsmanship

More Agile and Lean Knowledge

Scrum Expert

Agile Videos and Tutorials


Click here to view the complete list of archived articles

This article was originally published in the Summer 2014 issue of Methods & Tools

SpiraTeam Agile ALM


Agile Alliance Technical Conference

SQE Live Virtual Training