Kanban
Kanban is a lean approach to agile software development.
Actually, Kanban means many things. Literally, Kanban is a Japanese word that means "visual card". At Toyota, Kanban is the term used for the visual & physical signaling system that ties together the whole Lean Production system.
Most agile methods such as Scrum and XP are already well aligned with lean principles. In 2004, however, David Andersonpioneered a more direct implementation of Lean Thinking andTheory of Constraints to software development. Under the guidance of experts such as Don Reinertsen, this evolved into what David called a "Kanban system for software development", and which most people now simply refer to as "Kanban".
So while Kanban as applied to software development is new, Kanban as used in Lean Production is over a half century old.
Does Kanban matter to me?
Do any of these sound familiar?
- “We’ve done Scrum for a long time now and our process improvement has levelled off. How can we take our process to the next level?”
- “Our needs and priorities shift on a daily basis”
- “We don’t like fixed-length, fixed-commitment iterations”
- “We are spending too much time planning and estimating”
How does Kanban work?
There are many flavors, but the core of Kanban means:
- Visualize the workflow
- Split the work into pieces, write each item on a card and put on the wall.
- Use named columns to illustrate where each item is in the workflow.
- Limit WIP (work in progress) – assign explicit limits to how many items may be in progress at each workflow state.
- Measure the lead time (average time to complete one item, sometimes called “cycle time”), optimize the process to make lead time as small and predictable as possible.
This is a direct implementation of a lean pull scheduling system.
Here’s an example of a simple Kanban board, with WIP limits in red.
Here’s a more complex one (see Kanban kick-start example for a closer look & description)
What are the benefits of Kanban?
Some commonly observed benefits are:
- Bottlenecks become clearly visible in real-time. This leads people to collaborate to optimize the whole value chain rather than just their part.
- Provides a more gradual evolution path from waterfall to agile software development, thereby helping companies that previously have been unable or unwilling to try agile methods.
- Provides a way to do agile software development without necessarily having to use time-boxed fixed-commitment iterations such as Scrum sprints. Useful for situations where sprints don’t make much sense, such as operations and support teams with a high rate of uncertainty and variabilty.
- Tends to naturally spread throughout the organization to other departments such as HR and sales, thereby increasing visibility of everything that is going on the company.
Can I combine Kanban with my current process?
Yes. In fact, you should combine it.
In Kanban the first step is to visualize your current process, just as it is, in order to see where the bottlenecks are. Then you introduce WIP limits and start a path of evolution that may or may not modify or replace your current process over time.
See “Kanban & Scrum – making the most of both”, where Henrik Knibergand Mattias Skarin illustrate how Kanban and Scrum relate to each other.
Where is Kanban used?
Our coaches at Crisp have helped several clients use Kanban to improve their process. In fact, a surprising number of our clients have found that Kanban is an extremely useful complement (or sometimes even a replacement) to other popular agile methods such as Scrum. Typical manager comment: "It really helps us visualize our projects and situation".
There is also an increasing number of case studies available atwww.limitedwipsociety.org. Here are a few examples:
- Improving operations using Kanban, Mattias Skarin, Developerdays 2009
- David Anderson's case study - and why lead time is best metric
- David Joyce shows how a Scrum team improves by moving to Kanban with Statistical process control data
Common misunderstandings about Kanban
- Myth: With Kanban you don’t use iterations
- Fact: With Kanban iterations are optional. Do it only if you have a need for it in your context.
- Myth: With Kanban you don’t estimate
- Fact: With Kanban estimation is optional. Do it only if you have a need for it in your context.
- Myth: Kanban is better than Scrum/XP/RUP/whatever
- Fact: Kanban is just a process tool, and there is no such thing as a universally good or bad tool. It all depends on your context. See this article for more info.
- Myth: Kanban is a drop-in replacement to Scrum/XP/RUP/whatever
- Fact: Kanban is just about managing workflow. It hardly replaces anything. What it does do, however, is drive change. In Kanban you start with whatever process you have, visualize it, introduce WIP limits, and then evolve from there.
Upcoming Kanban courses & events
We offer training courses in collaboration with David Anderson, who pioneered the whole concept.
- May 31- June 1: Kanban training with David Anderson
Recent Kanban courses & events
- April 21-23: Lean Software and Systems conference, Atlanta
- Jan 26: Tutorial “Kanban, a lean approach to agile software development” at JFokus in Stockholm, with Henrik Kniberg.
- Feb 17-19: Certified ScrumMaster + Kanban course with Henrik Kniberg, 3 days, Stockholm.
- Feb 23: Kanban Applied course with Mattias Skarin, 1 day, Stockholm.
- Mar 29-31: Kanban coaching workshop with David Anderson, 3 days, Stockholm.
- Dec 14-15, 2009: Kanban training class with David Anderson, Stockholm
Further reading
- Kanban (book by David J Anderson)
- Kanban & Scrum, making the most of both (book by Henrik & Mattias)
- Converting a Scrum team to Kanban (article by Mattias)
- www.limitedwipsociety.org - main Kanban resource site
- One day in Kanban land (comic strip by Henrik)
- Kanban kick-start example (template by Henrik)
- How can support and operations be Agile (slides by Mattias)
- Mattias' blog entries on Kanban
- Henrik's blog entries on Kanban
- Queue utilization is a leading indicator (Corey Ladas)
Source
No comments:
Post a Comment