Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
The Lean-Agile eBook Practitioner Series<br />
GETTING STARTED<br />
WITH KANBAN<br />
A GUIDE FOR IMPLEMENTING<br />
LEAN & AGILE COLLABORATION<br />
ACROSS THE ENTIRE ENTERPRISE<br />
Brad Murphy, CEO<br />
brad.murphy@gearstream.com
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
CONTENTS<br />
1. AN INTRODUCTION TO KANBAN......................... 4<br />
2. VISUALIZE THE WORKFLOW..................................12<br />
3. LIMIT WIP...................................................................................20<br />
4. MEASURE AND MANAGE FLOW......................... 26<br />
5. MAKE PROCESS POLICIES EXPLICIT............. 36<br />
6. IMPROVE COLLABORATIVELY<br />
(USING MODELS)...............................................................44<br />
7. THE NEXT MOVE IS YOURS......................................48
FOREWORD<br />
Most CEOs dream of<br />
a future in which all<br />
employees, teams, and<br />
departments work in<br />
complete synchronicity.<br />
In this dream, a<br />
giant lever on human<br />
capital acts as a secret<br />
weapon in an age of<br />
global competition,<br />
hypercompetitive<br />
markets, and continuous<br />
commoditization of<br />
products and services.<br />
CEO surveys rank innovation and human capital among<br />
the primary corner office concerns, demonstrating that<br />
reality is far from this ideal scenario.<br />
How people organize and collaborate to get things<br />
done is the essence of business. When people are<br />
motivated and empowered to work together in highperforming<br />
teams, magic happens.<br />
The Agile movement has had much to say about<br />
enabling these kinds of hyperperforming teams so<br />
desperately needed today. It has also frequently<br />
promoted ideals that have proven elusive for most<br />
companies to implement, including team empowerment<br />
and self-direction.<br />
As an example, the fifth principle of the Agile Manifesto<br />
suggests that you should “build projects around<br />
motivated individuals” by “[giving] them the<br />
environment and support they need, and trust them to<br />
get the job done.” This implied a management style and<br />
skill set that is lacking in most IT divisions.<br />
So, how does <strong>Kanban</strong> succeed at scale where other<br />
methods have failed?<br />
Fundamental to <strong>Kanban</strong> is the principle of extreme<br />
visualization, within and across teams. When actualized,<br />
all teams are on the same page, understanding the<br />
relative volume, priority, and pacing of work items<br />
across their entire collaborative work community.<br />
The effective application of <strong>Kanban</strong> principles and<br />
practices results in teams that deliver<br />
disproportionately better results with respect to rates<br />
of innovation, output, productivity, and predictability.<br />
<strong>Kanban</strong> may well represent our best hope for bringing<br />
true innovation to business execution—and it may well<br />
be that elusive blueprint for true strategic advantage.<br />
By Brad Murphy<br />
Founder/CEO <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 3
1. AN INTRODUCTION<br />
TO KANBAN
The word kanban has humble origins but has become synonymous with innovation—<br />
consistent innovation at companies like Microsoft and cutting-edge computer<br />
gaming companies. <strong>Kanban</strong> is a Japanese word that found its way into the Toyota<br />
Production System (TPS). Originally, kanban was an “open for business” sign—a<br />
visual indicator. On the Toyota production floor, kanban became a card signaling<br />
a need for parts replenishment.<br />
JAPAN<br />
If a chassis assembler ran low on a<br />
particular bolt, a color-coded card<br />
would be placed outside the<br />
workstation before running out of a<br />
particular item. Employees whose<br />
job was replenishment patrolled<br />
the production floor ceaselessly,<br />
refilling stock as needed. Thus,<br />
production continued<br />
uninterrupted.<br />
TPS formed the basis of Lean<br />
manufacturing, which bled over<br />
into Lean software development as<br />
a team concept.<br />
The purest view of a Lean control<br />
system is one that delivers the<br />
most value to the customer as<br />
quickly and efficiently as possible.<br />
There are several ways to optimize<br />
value delivery. In whichever<br />
industry they are used, Lean<br />
Principles use the following actions<br />
(and more) to ensure continuous<br />
and speedy workflow and produce<br />
customer value:<br />
• Limiting work in progress<br />
(WIP) so that the workload is<br />
manageable and feasible. Ideally,<br />
any one column (called a “state”)<br />
has one task at a time.<br />
• Implementing a pull system so<br />
that work begins only if work is<br />
required (for example, in reaction<br />
to a customer order).<br />
• Visualizing the workflow in<br />
steps that ultimately lead to<br />
the customer. This workflow is<br />
visualized on a <strong>Kanban</strong> board,<br />
usually a physical board with<br />
each work item represented on a<br />
single card (often, a sticky note).<br />
• Identifying bottlenecks and<br />
constraints in that workflow. This<br />
becomes easy using the visual<br />
<strong>Kanban</strong> board. For example:<br />
Are several work items backed<br />
up in one state, while the state<br />
after it is empty? The individuals<br />
responsible for work at the<br />
bottleneck need help.<br />
• Eliminating waste, such as<br />
unnecessary steps in the<br />
workflow, sources of defect,<br />
and the resultant rework.<br />
Inherent in the <strong>Kanban</strong> workflow<br />
is process improvement. The team<br />
reflects upon a body of work<br />
(perhaps all the work in the last<br />
week or two weeks) during a<br />
regularly scheduled retrospective,<br />
asks itself what went well and what<br />
went poorly, and then revises the<br />
upcoming workflow for<br />
improvement. Retrospectives allow<br />
the team to gather real-time<br />
metrics and chart how those<br />
metrics improve.<br />
The result is incremental, iterative<br />
improvement of both the products<br />
and the workflows themselves.<br />
Another result is flawless product,<br />
delivered timely, because team<br />
members apply their full attention<br />
and ingenuity to one piece of work<br />
at a time.<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 5
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
??<br />
?<br />
WHY YOU<br />
NEED<br />
KANBAN?<br />
A company may use<br />
Agile, but find that<br />
despite its promise<br />
compared with classic<br />
waterfall techniques,<br />
it, too, has some limits.<br />
Maybe the initial<br />
performance benefits<br />
have leveled off. Maybe<br />
teams still struggle with<br />
backlogs or risk-averse<br />
management has never<br />
gotten over the<br />
revolutionary tone<br />
of Agile. I was, after<br />
all, first described in<br />
a “Manifesto.”<br />
<strong>Kanban</strong> helps to overcome inertia and resistance to change.<br />
David J. Anderson described four reasons for implementing <strong>Kanban</strong>:<br />
1. To drive evolutionary, incremental<br />
change with minimal resistance<br />
2. To achieve sustainable pace by<br />
balancing throughput against<br />
demand<br />
3. To establish highly mature<br />
behavior aligned with senior<br />
management’s desire to have a<br />
highly predictable business<br />
4. To attain a better risk profile<br />
If your organization attempts to<br />
create revolutionary product but<br />
consistently fails to do so, can’t<br />
manage its workload, or<br />
management is primarily a<br />
bottleneck, then keep reading—this<br />
book (and <strong>Kanban</strong>) is for you!<br />
Why walk when we can run?<br />
New <strong>Kanban</strong> practitioners are eager<br />
to get going. They want revolution,<br />
not evolution. They are enthusiastic<br />
about improving their processes<br />
and delivering more value, which<br />
is good!<br />
But <strong>Gear</strong> <strong>Stream</strong>’s experience is<br />
that revolution flames out, quickly.<br />
Continuous incremental<br />
improvement and innovation is<br />
more achievable and sustainable<br />
in software development than<br />
attempting to scale a single, radical<br />
idea across the entire organization.<br />
This eBook provides companies<br />
with an understanding of <strong>Kanban</strong><br />
such that they can both enable<br />
innovation and harness it in<br />
workflows.<br />
In time, as <strong>Kanban</strong> becomes a<br />
practice, innovation becomes<br />
embedded as well.<br />
RADICAL IDEAS<br />
ARE MARVELOUS—<br />
BUT INCREMENTAL<br />
IMPROVEMENTS ARE<br />
SOMETHING YOU CAN<br />
DO EVERY DAY AND<br />
WITH LESS RISK<br />
OF FAILURE!
THE<br />
PRINCIPLES<br />
OF KANBAN.<br />
Some magnificent minds<br />
have applied themselves<br />
to the problem of<br />
<strong>Kanban</strong> in software<br />
development—people like<br />
David J. Anderson, Don<br />
Reinertsen, and Mary<br />
and Tom Poppendieck.<br />
PRINCIPES OF KANBAN<br />
1. Visualize the workflow—know<br />
exactly where any work item is at<br />
any point in development<br />
2. Limit Work in Progress (WIP)—<br />
reduce cycle time (more on that<br />
later) and defects<br />
3. Measure and manage flow—use<br />
economic valuation to your<br />
benefit, not as a stumbling block<br />
4. Make process policies explicit—<br />
especially definitions of ready<br />
and done, acceptance criteria,<br />
and WIP limits<br />
5. Improve collaboratively—<strong>Kanban</strong><br />
tools and time-tested Lean<br />
methods provide a means for<br />
learning collectively<br />
Anderson later suggested two more<br />
principles:<br />
6. Provide Leadership—grant<br />
permission for idea development<br />
and process innovation to<br />
anyone, anywhere<br />
7. Implement organizational<br />
feedback—quantitative measures<br />
of demand and capability<br />
and qualitative measure of<br />
collaboration and teamwork<br />
Each of the chapters in this book<br />
covers one of those five original<br />
principles. We believe the sixth<br />
and seventh are inherent in the<br />
<strong>Kanban</strong> process and will cover those<br />
throughout the other five chapters.<br />
These principles support the<br />
overarching goal of delivering<br />
customer value quickly and<br />
efficiently.<br />
The key enablers are 1) reduction<br />
in cycle time and 2) increased<br />
workflow effectiveness. Applied<br />
together these create prioritization<br />
at all levels of the organization<br />
through selection of items that are<br />
of the highest value to the customer.<br />
What are the<br />
prerequisites?<br />
None.<br />
You need not practice Lean or Agile<br />
to apply <strong>Kanban</strong>, but <strong>Kanban</strong> is an<br />
excellent way to get started in either.<br />
<strong>Kanban</strong> allows an organization to<br />
“start small” in one department or a<br />
function. Using <strong>Kanban</strong> to maximize<br />
its throughput and quality creates<br />
local improvement without global<br />
disruption.<br />
The only immediate change is that<br />
you make the current process<br />
visible, policies explicit, and<br />
structural impediments obvious.<br />
Change occurs as you begin a<br />
steady path of improvement.<br />
It is our experience that other<br />
departments and functions see the<br />
impact, and <strong>Kanban</strong> “goes viral.”<br />
Do not expect sweeping change!<br />
You are working with your existing<br />
processes, systems, and structures.<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 7
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
SCRUM AND<br />
KANBAN –<br />
WHAT’S THE<br />
DIFFERENCE?<br />
Generally speaking,<br />
<strong>Kanban</strong> is more adaptive<br />
than Scrum. Its only real<br />
constraints are to<br />
1) Visualize your<br />
Workflow,<br />
2) Obey WIP limits, and<br />
3) Commit to continuous<br />
improvement.<br />
A team that is practicing Scrum typically adopts <strong>Kanban</strong> because it believes it can move<br />
faster by getting rid of some of the rigors of Scrum.<br />
Scrum and <strong>Kanban</strong> invite<br />
comparisons because they have<br />
much in common. For example:<br />
• Both are considered Lean and<br />
Agile<br />
• Both use a pull system<br />
• Both limit WIP<br />
• Both prescribe transparency to<br />
drive process improvement<br />
• Both use self-directed, crossfunctional<br />
teams<br />
Scrum<br />
Prescribes timeboxed iterations<br />
Team commits to a specific amount of work<br />
for an iteration<br />
Uses velocity as the default metric for planning<br />
and process improvement<br />
Prescribes a consistent size of work item, so<br />
each can be completed within one sprint<br />
Prescribes three roles: Product Owner, Scrum<br />
Master and Team<br />
• Both break a project into small<br />
deliverables (call them user<br />
stories, work items, minimal<br />
marketable features [MMFs], or<br />
what have you)<br />
But there are some differences, and<br />
author Henrik Kniberg (Lean From<br />
the Trenches) sums them up nicely.<br />
<strong>Kanban</strong><br />
Time-boxed iterations optional; separate cadences for<br />
planning, release; process improvements allowable<br />
Commitment optional<br />
Uses lead time (or cycle time)<br />
Prescribes no particular size<br />
Prescribes no roles<br />
Consistency in the size of work<br />
items is one of the most significant<br />
differences. In Scrum it is called a<br />
Minimal Marketable Feature (MMF),<br />
which Denne and Cleland-Huang in<br />
Software by the Numbers describe<br />
as “A chunk of functionality that<br />
delivers a subset of the customer’s<br />
requirements.” The MMF is capable<br />
of returning value to the customer<br />
when released. <strong>Kanban</strong> allows for<br />
variation. A common feature in<br />
<strong>Kanban</strong> is to describe items by<br />
T-shirt sizes, like small, medium,<br />
large, and extra large.<br />
So which is the superior tool?<br />
Neither. In fact, Scrum teams may<br />
use <strong>Kanban</strong> (hence the term
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
KANBAN AND<br />
PROJECT<br />
MANAGEMENT<br />
– WHAT’S THE<br />
DIFFERENCE<br />
Do you want the whole<br />
list or just the top 10?<br />
CLASSIC PROJECT MANAGEMENT AND KANBAN<br />
ARE NOT THE SAME THING. KANBAN IS MORE<br />
FINITE IN SCOPE, FOCUSED PURELY UPON WIP<br />
AND THE VALUE STREAM.<br />
Project management is more prescriptive. It assigns 30+ roles,<br />
including Project Manager, Executive Sponsor, Project Sponsor/<br />
Project Director, and Key Stakeholders. It also requires inputs from HR,<br />
accounting, risk management, and so forth.<br />
Project management prescribes more than 70<br />
artifacts, including the following:<br />
• a Project Charter<br />
• a Work Breakdown Structure (WBS)<br />
• a Risk Management Plan<br />
• a Stakeholder Analysis<br />
• an Issue Log<br />
• a Change Control Plan<br />
<strong>Kanban</strong> is not a substitute for classic project<br />
management, but at its best, it negates the need for<br />
much of that hands-on management and paperwork.<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 9
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
SO IN<br />
KANBAN,<br />
NO ONE’S<br />
IN CHARGE?<br />
Not true.<br />
While <strong>Kanban</strong> does not<br />
prescribe formal roles,<br />
that hardly means<br />
anarchy in your<br />
engineering team.<br />
<strong>Kanban</strong> is meant to work with the existing hierarchy and framework. It does<br />
not prescribe roles because you already have them! QA continues to ensure<br />
quality, developers develop, and so forth. In fact, if you find yourself creating<br />
roles to make <strong>Kanban</strong> work, you are likely complicating your processes instead<br />
of simplifying them.<br />
Having said that, you should be able to name a Product Owner, just as you<br />
do in Lean, Agile, and classic Project Management. Whatever process you<br />
use, a Product Owner sets the <strong>Kanban</strong> priorities. He or she is the customer or<br />
represents the customer.<br />
Then who approves changes?<br />
That depends upon what you are<br />
changing.<br />
Note:<br />
A good Scrum team follows the<br />
same principle.<br />
The Product Owner is authorized<br />
to change work priorities; the team<br />
approves process changes.<br />
That’s right: the team itself knows<br />
how best to produce work. The<br />
team knows what enables smooth<br />
workflow and what enables shorter<br />
cycle times.<br />
This is not a no-rules environment<br />
of constant change. Changes are<br />
proposed, discussed, and agreed<br />
upon during retrospectives.
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
THAT’S<br />
PRETTY<br />
RADICAL!<br />
Remember, <strong>Kanban</strong> is a tool used to manage your existing<br />
process . . . and improve it. As part of improving that process,<br />
you will undoubtedly find yourself reducing documentation,<br />
making things more visible, and reducing WIP.<br />
Not really.<br />
Regarding documentation, if there<br />
is some prescribed process<br />
dictating requirements about the<br />
product (e.g., in military<br />
procurement or the FDA), then you<br />
are far less free to make process<br />
changes than a company that<br />
produces video games. And you<br />
probably can’t eliminate certain<br />
documentations or change<br />
how their data is collected<br />
and presented.<br />
If these are necessary, your <strong>Kanban</strong><br />
board can incorporate the change<br />
control process of classic project<br />
management, and cycle times will<br />
have to include documentation.<br />
KANBAN DOES NOT REVOLUTIONIZE YOUR<br />
PROCESS ALL AT ONCE. IT IMPROVES THE<br />
ONE YOU USE, KEEPING WHAT WORKS!<br />
Key <strong>Kanban</strong> Points:<br />
• <strong>Kanban</strong> helps overcome inertia<br />
and resistance to change<br />
• <strong>Kanban</strong> is less prescriptive<br />
than Agile or classic Project<br />
Management<br />
• <strong>Kanban</strong> requires no roles (but<br />
does not eliminate them)<br />
• The <strong>Kanban</strong> team approves its<br />
own changes (where practical)<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 11
2. VISUALIZE THE<br />
WORKFLOW
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
VISUALIZE<br />
THE<br />
WORKFLOW<br />
A <strong>Kanban</strong> board<br />
visualizes your process as<br />
simply as possible. And it<br />
lets you know if your WIP<br />
is progressing as it should.<br />
<strong>Kanban</strong> operates on the<br />
following assumptions:<br />
1) Humans are, at their<br />
core, visual thinkers<br />
<strong>Kanban</strong> operates on the idea that you can only control<br />
what you can see. So, you must see your workflow, from<br />
start to finish. And, you must see where a particular work<br />
item is in that workflow. Is it in Development? Testing?<br />
Has it been delivered?<br />
You can also begin to see bottlenecks. Why are there<br />
five features in Testing but none at the later stages (like<br />
delivery to the customer)? What can we do differently to<br />
improve this flow?<br />
You can control the flow by limiting the WIP. Perhaps<br />
you allow only two features in Development at any one<br />
time. If so, then Testing is unlikely to be bogged down.<br />
You can change the process of workflow. Perhaps<br />
adding automated testing or TDD will improve the flow<br />
of the work.<br />
Ideal is a nonstop flow of features, from conception<br />
through delivery.<br />
2) You can’t control what<br />
you can’t see<br />
A <strong>Kanban</strong> card has all the<br />
visual indicators you need<br />
to know where a work<br />
item is; in other words,<br />
where the flow is working<br />
smoothly and where it is<br />
backed up and needs your<br />
attention.<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 13
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
MAP THE PATH<br />
OF THE WORK<br />
Create a value stream<br />
map (VSM), which<br />
follows the creation of<br />
value for a customer.<br />
The map should follow<br />
a work item, like a code<br />
requirement or feature, all<br />
the way through design,<br />
development (in the case of<br />
software), and production<br />
(for manufacturing)<br />
through to delivery and<br />
customer acceptance.<br />
HOW DO YOU GO ABOUT<br />
CREATING A VSM?<br />
Capture the as-is process.<br />
For now, you are trying to draw a<br />
realistic picture of your process.<br />
Rather than asking people what the<br />
process is (they will sanitize or<br />
idealize), ask what steps a finished<br />
piece of work went through from<br />
start to finish. Start with: What<br />
happens first? After that keep<br />
asking: Then what happens?<br />
Chances are, you’ll begin to identify<br />
some inefficiencies, surprises, and<br />
downright strange behavior.<br />
Perhaps (and this is a real case)<br />
you’re a game developer and the<br />
validation department runs every<br />
functionality past a mailroom<br />
attendant, reasoning that he’s an<br />
average Joe and if he can use it<br />
then it’s well designed. Resist the<br />
temptation to redesign the value<br />
stream now—just map it.<br />
Look for handoffs rather than<br />
steps.<br />
Each handoff from one person or<br />
group to another represents a state<br />
in development on your <strong>Kanban</strong><br />
board, represented by a column.<br />
Likely, there is a handoff between<br />
Development and Validation; so,<br />
each should be represented in a<br />
state. While Unit Testing is a step in<br />
the process, a developer typically<br />
performs it, so, there is no handoff;<br />
hence, Unit Test is not a state on<br />
the <strong>Kanban</strong> board.<br />
Once again, begin with requirement<br />
creation (the idea stage) and finish<br />
with delivery to the customer. Do<br />
not attempt to capture every<br />
interaction in your customer<br />
relationship (for example,<br />
invoicing)—just those that make<br />
development flow.<br />
Use simple tools.<br />
Some elaborate and elegant<br />
software tools are available to<br />
create VSMs. You may be tempted<br />
to use a classic project<br />
management tool and Gantt chart.<br />
But think simply—like pens-and-aflipchart<br />
simple or sticky-notes-ona-wall<br />
simple. The spirit of <strong>Kanban</strong><br />
is, after all, to visualize, simplify, and<br />
drive out unnecessary complexity. If<br />
you really must use a software tool,<br />
a diagramming tool like Microsoft<br />
Visio is sufficient.<br />
?KM
Think linearly.<br />
VSMs are literally drawn in a<br />
straight line from conception<br />
through delivery. There will be<br />
some loops in the process (for<br />
example, a return from validation<br />
back through development)<br />
and interdependencies, but the<br />
stream itself should be straight.<br />
Limit yourself to your own<br />
domain or purview.<br />
That is, focus only on the flow of<br />
work in your department or which<br />
you control. Other steps may be<br />
outside your domain and scope. As<br />
the organization matures in <strong>Kanban</strong>,<br />
you may visualize those areas in the<br />
<strong>Kanban</strong> system, but save that<br />
for later.<br />
Persist!<br />
You may find this value stream<br />
mapping tedious and frustrating at<br />
first. It is, after all, a new skill and<br />
fresh way of looking at the world.<br />
Don’t be tempted to skip over it and<br />
create your <strong>Kanban</strong> board first.<br />
Resist that temptation, else, you risk<br />
throwing out good process with<br />
bad. You also risk alienating the<br />
people along your value stream. A<br />
basic tenet of change management<br />
is that you need “buy in” from team<br />
members to avoid failed change.<br />
Which leads us to . . .<br />
Meet resistance with assurance.<br />
Likely, as you investigate the path of<br />
work, you will meet with resistance<br />
and suspicion. It is natural for<br />
people to wonder “Am I going to be<br />
in trouble if they don’t like what I tell<br />
them?” “Are they going to figure<br />
out that I’m unnecessary and get rid<br />
of me?” “Will I look incompetent<br />
if I don’t know exactly what the<br />
process is in my department?”<br />
The team must trust the process. In<br />
fact, the fifth principle of the Agile<br />
manifesto suggests that you should<br />
“build projects around motivated<br />
individuals” by “[giving] them the<br />
environment and support they<br />
need, and trust them to get the job<br />
done.” Make certain that team<br />
members along the value stream<br />
understand that the objective is not<br />
to “fix the process.” You may not<br />
change the process at all! Rather, it<br />
is to get a handle on the process<br />
and make sure that it works as<br />
smoothly and efficiently as it<br />
possibly can. Let them understand<br />
that <strong>Kanban</strong> is state-of-the-art<br />
software engineering used at,<br />
among others, Microsoft.<br />
KEEP IT SIMPLE.<br />
SOME OF THE<br />
MOST EFFECTIVE<br />
KANBAN BOARDS<br />
WE’VE SEEN HAVE<br />
BEEN STICKY<br />
NOTES ON A<br />
WHITEBOARD.<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 15
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
VISUALIZE<br />
THE PROCESS<br />
ON A KANBAN<br />
BOARD<br />
Now, turn your VSM into a<br />
<strong>Kanban</strong> board.<br />
Just like your VSM, your <strong>Kanban</strong> board will be linear—an array of columns (or states),<br />
progressing from left to right, describing the flow of the work.<br />
Use simple tools.<br />
Here again, you will find elegant<br />
software tools and elaborate<br />
solutions for <strong>Kanban</strong>. And here<br />
again, think simply instead.<br />
A <strong>Kanban</strong> board should be visible,<br />
clear, and available to the entire<br />
team. If the team is co-located, then<br />
use a corkboard with pushpins and<br />
cards or, better yet, a whiteboard<br />
with sticky notes. If your team is<br />
virtual, then perhaps you do need<br />
an electronic system on your<br />
company’s internal cloud or wiki.<br />
It is best to start with something<br />
impermanent, like a whiteboard,<br />
using columns drawn with erasable<br />
markers. Later, when your <strong>Kanban</strong><br />
board is more finalized, you can<br />
invest in vinyl tape and a more<br />
elegant presentation.<br />
Start with broad strokes.<br />
You want a not-too-simplistic,<br />
not-too-detailed representation<br />
of your workflow. At its simplest,<br />
your workflow is as follows:<br />
Backlog > In progress > Done<br />
But, that is too simple. “In progress” could be anywhere along the value<br />
stream, from specification to QA. And what does “Done” mean? Sitting in<br />
some outbox or delivered to the customer?<br />
A more realistic, inclusive representation might look like this:<br />
Backlog > Analysis > Development<br />
> Validation > Deployment<br />
And the finished <strong>Kanban</strong> board, with each of those states represented,<br />
looks something like Figure 1:
BACKLOG ANALYSIS DEVELOPMENT VALIDATION DEPLOYMENT<br />
Figure 1 A Simple <strong>Kanban</strong> Board<br />
Isn’t that just an Agile task board?<br />
It looks like one. But a <strong>Kanban</strong> board differs from an Agile task board in that it includes limits (more on<br />
that in the next section). So, let’s dig a bit deeper.<br />
A simple test<br />
If your <strong>Kanban</strong> board truly represents your process, you should be able to place any work item from your<br />
current project somewhere on the board. Try it! If you cannot place all of the features, then you have<br />
missed a step in your design. Perhaps the step is unnecessary or only occasionally necessary. In either<br />
case, you are charting your actual process and must add the step to your <strong>Kanban</strong> board.<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 17
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
Vs<br />
WIP VERSUS<br />
DONE<br />
Now that you have defined<br />
your states, divide each<br />
of the states (except<br />
Deployment) into two<br />
columns.<br />
Divide the backlog into To Do and Ready columns. Later, you will define criteria<br />
a work item must meet to be ready for the cycle. Divide the remaining states into<br />
WIP and Done columns (see Figure 2). By doing so, you enable workers at the<br />
downstream state to know exactly which items to pull from upstream; those items<br />
are in the Done columns (called “buffers” or queues).<br />
Of course, that queue is more obvious on a manufacturing floor where physical<br />
goods stack up than it is on a server, but a <strong>Kanban</strong> board visualizes the queue.<br />
BACKLOG<br />
ANALYSIS DEVELOPMENT VALIDATION DEPLOYMENT<br />
TO DO<br />
READY<br />
IN<br />
PROGRESS<br />
DONE<br />
IN<br />
PROGRESS<br />
DONE<br />
IN<br />
PROGRESS<br />
DONE<br />
IN<br />
PROGRESS<br />
Figure 2: A <strong>Kanban</strong> board that includes buffers (“Done” columns).
No buffers, buffer limits or slack time<br />
You may have heard of “buffer limits” on the Done<br />
columns. The idea is to set limits on the Done<br />
columns and to halt work while people in the next<br />
state catch up.<br />
This practice has fallen out of favor as being<br />
unnecessarily complex and an impediment to flow.<br />
The general thinking in the <strong>Kanban</strong> community is that<br />
it is a “no-brainer” to have a single WIP limit that spans<br />
work in progress and work that is done.<br />
Key Visualization Points<br />
• Use simple tools<br />
• Follow the code<br />
• Be accurate<br />
• Think linearly<br />
• Make no changes (yet)<br />
• Do not proceed until this is finished<br />
• Queues, buffers, and slack time represent more<br />
WIP and longer cycle times<br />
• Meet resistance with assurance<br />
Ideally, there are no buffers or slack time<br />
A queue or buffer between states (those Done<br />
columns) absorb variation. It allows that some work<br />
items will be done more quickly, while some will<br />
take longer.<br />
Once you’ve mastered <strong>Kanban</strong>, you can begin to set<br />
policies for the right level of WIP so that there is<br />
effectively very little buffer or slack time. To the degree<br />
you can minimize buffers and slack time, you have<br />
more continuous flow and a better system.<br />
While you are learning and mastering the techniques of<br />
ensuring continuous flow, limit buffers and slack time<br />
to the extent that is practical. Treat that extra WIP as a<br />
waste to be avoided. Hold fast to the ideal that the<br />
time between when your work starts and is done<br />
should be as short as possible.<br />
Picture the customer making a request and then<br />
waiting in your lobby until it is done.<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 19
3. LIMIT WIP
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
LIMIT WIP<br />
The goal of limiting<br />
WIP is to limit<br />
demand to match<br />
capacity.<br />
Limiting WIP in each state to or near its capacity ensures<br />
continuous flow. That enables you to deliver new value quickly<br />
and creates a rapid, continuous flow of value, from a customer<br />
request through delivery.<br />
Simply put, there is a limit to the capacity of your system.<br />
Think of your system as a ¾-inch garden hose with a capacity of 23 gallons per<br />
minute. Your upper limit is 23 GPM no matter what you do. All the pressure in the<br />
world will not increase the hose’s capacity, but it will eventually burst the hose.<br />
Your team has its limits as well, and higher pressure does not increase output.<br />
Quite the opposite.<br />
Dumping all the software development work into your system and crying “Quick!”<br />
does not guarantee that it will be done in a timely manner. A developer with 22<br />
work items can only work on one at any moment. Rather than finishing them one<br />
by one, the developer may instead try to multitask and switch among the 22, but<br />
none of them is actually delivered on time (an estimated 20 percent of time is lost<br />
“context switching” between tasks). Additionally, too much WIP boosts the defect<br />
rate, which, in turn, lengthens the average cycle time. And no one wants to work<br />
on “bugs”!<br />
WIP limits reduce errors and time wasted in switching<br />
between tasks.<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 21
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
KANBAN<br />
MAKES WIP<br />
OVERLOAD<br />
IMPOSSIBLE.<br />
In <strong>Kanban</strong>, you use WIP<br />
limits at every step of the<br />
development cycle based<br />
on the capacity to deliver<br />
the work in progress. For<br />
example, a team may<br />
specify two work items per<br />
developer and one request<br />
per tester. In this way,<br />
work progresses along<br />
the <strong>Kanban</strong> board using a<br />
pull system. Only when a<br />
downstream step or state<br />
is below its WIP limit (e.g.,<br />
having two work items<br />
when its WIP limit is three)<br />
may the workers in that<br />
state pull a task from the<br />
upstream Done column.<br />
And, it shortens cycle time<br />
We’ve mentioned cycle time, but<br />
let’s dig a little deeper.<br />
Cycle time is the length of time<br />
between when work begins on a<br />
request and when the item is<br />
delivered.<br />
Little’s<br />
Law<br />
Ideally, your cycle time is fairly<br />
predictable. You can tell a customer,<br />
“We can deliver that amount of<br />
work in two weeks” and be spot on.<br />
It is easiest to predict cycle times<br />
accurately when features are about<br />
the same size or at least of an<br />
average size.<br />
Cycle Time =<br />
In software engineering, it works like this:<br />
Cycle Time = # of work items in process (WIP) / Average Completion Rate<br />
Cycle time is a function of Little’s<br />
Law, a mathematical theorem that<br />
applies to queues. Fast-food chains,<br />
for example, use it to determine<br />
how many workers they will need<br />
to handle the average lunch rush.<br />
WIP<br />
Throughput per unit<br />
of time<br />
If, for example, your customer comes to you with six items and your team completes, on<br />
average, three items per week, then:<br />
6 Items / 3 Items per week on average = 2 weeks Cycle Time<br />
Recall that there are several hands-on ways to improve cycle time, including the following:<br />
• Reduce the number of work items in process. Simply put, you can deliver one item<br />
sooner than you can deliver three. And, you reduce the risk of delivering all three items in<br />
a batch.<br />
• Improve average completion rates by:<br />
−−<br />
Reducing rework (usually considered a waste)<br />
−−<br />
Identifying and removing typical blockers or bottlenecks<br />
−−<br />
Identifying and analyzing work items that are too large (labor intensive)
DELAY COSTS<br />
Limiting WIP and<br />
shortening cycle times<br />
ensure a continuous<br />
flow of value. They also<br />
reduce the costs of<br />
delay (COD).<br />
$<br />
$<br />
$<br />
$<br />
$ $ $<br />
There is an inherent cost of delay (COD) associated with every<br />
work item. These costs are economic, and key among them is<br />
the cost of decay—the longer a work item is in development,<br />
the higher the likelihood that changes will be needed and the<br />
greater the scope of those changes.<br />
Some advanced software engineering organizations have<br />
accountants on staff to develop profit-and-loss (P&L)<br />
statements for each project. But there are costs as well in<br />
brand share, customer esteem, and team morale. You are<br />
largely guaranteed to reduce costs of delay by reducing WIP<br />
and by using the above methods of assigning urgency/class<br />
of service, be those costs in dollars, customer esteem, or<br />
team morale.<br />
You can calculate dollar values for costs of delay, but those calculations<br />
are complex and beyond the scope of this text. Besides, with your<br />
business savvy, you know a high-cost item when you see one.<br />
If you had the bandwidth to work on only one item, would it be a<br />
blocker bug on your current release or the improved user interface<br />
of your next release?<br />
Conventional wisdom is that the sooner you introduce a feature,<br />
the sooner you profit from it, but there is never a $0 cost of delay.<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 23
ASK YOUR<br />
TEAM TO SET<br />
ITS LIMITS<br />
Setting WIP limits is both<br />
an art and a science.<br />
Initially, ask your team to set its own WIP<br />
limits: After all, it will be their job to enforce<br />
the limits and complete the work.<br />
Your six-person development team might<br />
decide that it needs two developers per user<br />
story; so, its WIP limit would be three. Your<br />
validation team may calculate that it works<br />
faster (based on its average output) and can<br />
manage a higher WIP limit of five.<br />
Consider two different approaches that this<br />
team might use in setting their WIP limits:<br />
The Conservative Approach: Set WIP limits just<br />
loose enough for your current workflow to continue<br />
unhindered; then identify your bottleneck and adjust<br />
one limit at a time.<br />
The Radical Approach: Set WIP limits on activity<br />
columns tighter than you expect your system will be<br />
able to handle and buffer each stage; then observe<br />
where work builds up, and gradually loosen until work<br />
flows through the system.
ALLOW FOR<br />
ADJUSTMENTS<br />
Both approaches require<br />
some experience, so don’t<br />
expect to get it right the<br />
first time.<br />
There is no final consensus as to which one is better, but<br />
setting limits with your policies in mind seems to work in<br />
both circumstances.<br />
<strong>Kanban</strong> is a self-correcting methodology. If after several<br />
<strong>Kanban</strong> meetings you notice that Customer Acceptance begins<br />
every day with an empty WIP column, then its WIP limit could<br />
be higher. If bottlenecks frequently occur in Development, then<br />
perhaps its WIP limit needs to be lower and more developers<br />
must be assigned to each story or work item.<br />
Just as the team made the initial decision about WIP limits,<br />
it should also make the decision to change them.<br />
Key WIP Limit Points<br />
• A continuous flow of work is represented by low Cycle Time<br />
• Cycle Time can be decreased by limiting WIP<br />
• Reducing WIP reduces the number of defects<br />
• Allow the team to set its WIP limits<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 25
4. MEASURE AND<br />
MANAGE FLOW<br />
Experience has taught me how important it is to just keep going, focusing on running fast<br />
and relaxed. Eventually, it passes and the flow returns. It’s part of racing.<br />
- Frank Shorter
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
MEASURE<br />
AND MANAGE<br />
FLOW<br />
So far, <strong>Kanban</strong> may feel informal and off the cuff. You are<br />
writing on sticky notes, after all. Now it becomes a bit more<br />
structured, with metrics to measure flow and improvements<br />
and intervals that ensure continuous flow.<br />
All the classic change methodologies, like Lean, Total Quality Management<br />
(TQM), and Six Sigma use metrics. <strong>Kanban</strong> is no different. Let us repeat the<br />
key objectives of <strong>Kanban</strong>:<br />
1) Reduce cycle time<br />
2) Increase workflow<br />
You will need hard measures of cycle time and workflow<br />
to make any lasting change.<br />
Also, true smooth, continuous flow does not simply happen, although<br />
<strong>Kanban</strong> ensures that it happens more naturally. Flow must be actively<br />
managed, for example, by recognizing and swarming a bottleneck until<br />
flow is restored.<br />
It helps to have some predictability, some expectations of flow. Setting a<br />
release cadence at a regular interval fosters trust with the customer and<br />
gives the team a feeling of accomplishment.<br />
Note:<br />
A release cadence should be applied to new work that has completed the<br />
development cycle—not customer support bug fixes (which should be<br />
completed and released immediately) or when <strong>Kanban</strong> is used by a nondevelopment<br />
team<br />
0 1 2 3 4 5 6 7 8 9 10<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 27
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
MEASURE<br />
PERFORMANCE<br />
WITH METRICS<br />
Perhaps the word “metrics”<br />
elicits a groan from you<br />
and your team. It is a<br />
loaded word that signifies<br />
accountability. Typically,<br />
management demands<br />
metrics and then demands<br />
explanations if they don’t<br />
like what they see.<br />
That’s not the way to think.<br />
Metrics are tools for the <strong>Kanban</strong> team. The team<br />
generates its own metrics and then uses them to ensure<br />
continuous improvement.<br />
Think of metrics not as a chore, but as an enabler.<br />
Metrics enable a software engineering organization to<br />
recognize its own excellence and “improve its game”<br />
(by improving the processes).<br />
In advanced <strong>Kanban</strong>, you would concern yourself with<br />
both financial and production metrics. Financial metrics<br />
include investment, throughput, and operating expense<br />
(called I, T, and OE). But first things first. Measuring and<br />
improving production metrics will improve those<br />
financial metrics automatically.<br />
That brings us back to management. We say that<br />
metrics are for the team’s use, but management must<br />
have access to them too. After all, Agile development<br />
teams are treated as a profit center, and any profit<br />
center must justify itself through continuous<br />
performance. Flow and cycle time metrics are proof of<br />
that performance.<br />
Do not succumb to “Metrics Madness”! Too many<br />
metrics drive the perceived failure of Six Sigma.<br />
Metrics take time to collect and analyze. Reinertsen<br />
in Managing the Design Factory observed that<br />
information differs in value, and we must generate<br />
information of only the highest possible value. Because<br />
<strong>Kanban</strong> operates on the principles of maximizing value<br />
by maximizing flow and minimizing cycle times, begin<br />
your mastery of <strong>Kanban</strong> by focusing upon production<br />
metrics.<br />
As you advance, you can master defect rate metrics,<br />
even financial metrics like operating expense. But for<br />
now, the <strong>Kanban</strong> team should concern itself with only<br />
three—throughput, cycle time, and cumulative flow.<br />
In <strong>Kanban</strong>, metrics are not a liability or a<br />
chore. They are like a lap time or golf<br />
score—an opportunity for the team to<br />
prove itself and improve itself.<br />
Throughput<br />
Throughput is very easy to measure.<br />
Throughput = Items removed/Time<br />
Think of the <strong>Kanban</strong> board as a conveyor belt, with<br />
finished work picked off the conveyor at the end. How<br />
many items get picked off (and disappear from) your<br />
<strong>Kanban</strong> board in a week? That is your throughput.<br />
Most software <strong>Kanban</strong> teams measure throughput in<br />
one-week increments. A day is typically too short, and a<br />
month is too long. But if measuring per day or month<br />
suits your organization best, by all means, do so.<br />
Ignore the size of or circumstances surrounding the<br />
work items when you measure throughput. To use the<br />
popular phrase, throughput “is what it is,” and it may be<br />
ten items this week and six next week and eleven the<br />
week after. Variation is natural.<br />
As time passes, if you find that throughput is<br />
unpredictable and varies widely, then you may wish to<br />
perform some more sophisticated math that takes into<br />
account T-shirt size, type of work, and so forth.<br />
But save that for later. For now, and as weeks pass, you<br />
are simply accumulating data. Your average throughput<br />
will become more accurate with each week that you<br />
measure it.
Cycle Time<br />
Recall that the cycle time of a work<br />
item begins when the actual work<br />
begins and ends when a task is<br />
finished.<br />
Cycle time metrics help you<br />
determine if process improvements<br />
are yielding the expected results.<br />
They also help the team make<br />
realistic time commitments; for<br />
example, writing Service Level<br />
Agreements with its customers (we<br />
explore service level agreements in<br />
Chapter 4, “Make Process Policies<br />
Explicit”). When the team can<br />
commit to delivering six new<br />
features with an 85 percent level of<br />
confidence, based on historic cycle<br />
time data, then your process is<br />
yielding predictive results.<br />
Figure 4 depicts an even simpler<br />
form of cycle-time diagram. In this<br />
instance, we still measure cycle<br />
time, in days along the Y-axis, but<br />
the cycle time of each work item as<br />
it is done is seen on the X-axis as<br />
individual work items, in order of<br />
being done. Here again, as<br />
processes improve, cycle times<br />
should improve as well. You won’t<br />
see a perfectly steady downward<br />
trajectory because throughputs<br />
and work item sizes are not<br />
absolutely consistent. Still, you<br />
should see a general downward<br />
trend. The average cycle time in<br />
this diagram is just above six days,<br />
a considerable improvement over<br />
the nine days at the beginning of<br />
the project.<br />
10<br />
9<br />
8<br />
7<br />
6<br />
5<br />
4<br />
3<br />
2<br />
1<br />
0<br />
0<br />
Figure 3: A cycle time diagram that charts averages<br />
10<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
10<br />
DAYS<br />
8 06/05/2013<br />
9 10 11 12<br />
13<br />
14<br />
A simple cycle-time diagram is<br />
depicted in Figure 3. This example<br />
shows the average cycle time in<br />
number of days over the course of<br />
the project. Ideally, as more work<br />
items flow more smoothly, the<br />
average cycle time decreases.<br />
Spikes in average cycle time<br />
indicate inefficiency, such as<br />
frequent expediting or rework, and<br />
signals the need for a process<br />
improvement.<br />
9<br />
8<br />
7<br />
6<br />
5<br />
4<br />
3<br />
2<br />
1<br />
0<br />
0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
Figure 4: A cycle time diagram charting each work item as<br />
it is completed<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 29
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
CUMULATIVE<br />
FLOW<br />
DIAGRAMS<br />
(CFDS)<br />
A cumulative flow<br />
diagram (CFD) is a<br />
simple area graph that<br />
depicts the quantity<br />
of work in a given<br />
state, measured at<br />
regular intervals. A<br />
week is typical in Agile<br />
software development.<br />
A CFD is a powerful tool that tracks<br />
and measures workflow. It visually<br />
represents several measures at once,<br />
including input (number of work<br />
items), throughput, WIP, and cycle<br />
time. It is updated once a week (or<br />
more) and used to see how WIP and<br />
lead times progress over the life<br />
cycle of development. Plenty of<br />
software tools are available, but<br />
most new to <strong>Kanban</strong> use the Area<br />
Chart functionality in Microsoft<br />
Excel. Figure 5 depicts two<br />
variations of a CFD. The first shows<br />
the three most obvious states in<br />
Agile software development, being<br />
Total Features<br />
140<br />
120<br />
100<br />
80<br />
60<br />
40<br />
20<br />
0<br />
In Backlog, In Progress, and Done.<br />
The second represents all the states<br />
on your <strong>Kanban</strong> board, such as:<br />
• Analysis<br />
• Development<br />
• Validation<br />
• Customer acceptance<br />
As time goes on, the number of<br />
completed items rises. The work in<br />
progress stays fairly minimal for<br />
each state and never exceeds the<br />
cumulative WIP limits set for<br />
the system.<br />
Total Features<br />
140<br />
120<br />
100<br />
80<br />
60<br />
40<br />
20<br />
0<br />
05/11<br />
12/11<br />
19/11<br />
26/11<br />
03/11<br />
10/12<br />
17/12<br />
24/12<br />
31/12<br />
07/01<br />
14/01<br />
21/01<br />
28/01<br />
04/02<br />
11/02<br />
18/02<br />
25/02<br />
04/03<br />
11/03<br />
18/03<br />
25/03<br />
01/04<br />
Date<br />
Backlog In Progress Done<br />
05/11<br />
12/11<br />
19/11<br />
26/11<br />
03/11<br />
10/12<br />
17/12<br />
24/12<br />
31/12<br />
07/01<br />
14/01<br />
21/01<br />
28/01<br />
04/02<br />
11/02<br />
18/02<br />
25/02<br />
04/03<br />
11/03<br />
18/03<br />
25/03<br />
01/04<br />
Analysis<br />
Customer Acceptance<br />
Date<br />
Development<br />
Validation<br />
Figure 5A: A simple CFD, and one that includes<br />
each state.<br />
Figure 5B: All the states on a <strong>Kanban</strong> board
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
4/8<br />
4/9 4/10 4/11<br />
4/12 4/13 4/14 4/15 4/16 4/17 4/18 4/194/20 4/21<br />
INTERPRET<br />
YOUR CFD<br />
BACKLOG SIZE<br />
WORK REMAINING<br />
30<br />
25<br />
Learning to interpret<br />
a CFD is not difficult.<br />
Figure 6 offers an<br />
illustration of how<br />
different aspects of<br />
the graph are used to<br />
generate metrics.<br />
NEW ITEMS<br />
CYCLE TIME<br />
LEAD TIME<br />
WORK IN PROGRESS<br />
20<br />
15<br />
10<br />
5<br />
0<br />
Figure 6: Deployed Interpreting a CFD.<br />
Pre-Production Testing<br />
Your velocity over time is defined by the “Done” area, while WIP is<br />
indicated<br />
Dev/Test<br />
by the space<br />
Cycle<br />
between this line<br />
Choosing<br />
and the “Backlog”<br />
& Defining<br />
line.<br />
• A sign that a bottleneck is occurring would be an increase in the width<br />
of a portion of the WIP area (seen at a couple of points on the graph).<br />
• A clear sign that work is exceeding capacity in your system is if the<br />
pitch of the “Backlog” area is steeper than the “Done” area (4/17–4/18).<br />
• Your current best estimate of a final release date would be estimating<br />
the point at which the gradients of “Backlog” and “Done” intersect (not<br />
seen on this graph).<br />
• You can also determine from the diagram your Average Cycle Time and<br />
Quantity in Queue.<br />
Key Metrics Points<br />
• Metrics are created by the team and for the team’s use<br />
• Focus first upon value-driven metrics of flow and cycle time<br />
• A downward-trending cycle time indicates improvement<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 31
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
MANAGE<br />
FLOW BY<br />
RELIEVING<br />
BOTTLENECKS<br />
A bottleneck is the point<br />
in your process with<br />
the lowest production<br />
rate. Bottlenecks must<br />
be actively managed.<br />
They interrupt flow<br />
and increase cycle<br />
times, meaning that<br />
they decrease the value<br />
you deliver, both for<br />
your customer and the<br />
organization. In short,<br />
they cost money.<br />
In theory, for every one hour<br />
that a bottleneck exists, one<br />
hour of production is lost at<br />
every stage downstream.<br />
So the cost multiplies.<br />
But once you relieve the<br />
bottleneck, you have<br />
generated multiple hours<br />
of value-added work<br />
downstream.<br />
A bottleneck is immediately visible<br />
on your <strong>Kanban</strong> board. Look for the<br />
following:<br />
• Work items that are not moving<br />
over time, and<br />
• Vacant space. Perhaps there<br />
is no work in the Validation<br />
column because it has no<br />
finished work to pull from<br />
Development.<br />
Because <strong>Kanban</strong> teams check in at<br />
least once daily at the <strong>Kanban</strong><br />
board, any bottleneck you find<br />
should be less than one day old.<br />
This allows you to find a solution<br />
before a large amount of partially<br />
completed work builds up.<br />
The solution is typically to “swarm”<br />
the blockage—to reallocate<br />
resources to relieve the bottleneck.<br />
Swarming sounds pretty<br />
disorganized, but it is not.<br />
Choose carefully who swarms.<br />
• Look for a skills gap. Perhaps a<br />
particular developer lacks the<br />
skills to complete a given work<br />
item that another developer has.<br />
• Relieve the bottleneck of some<br />
of its workload. Can a developer<br />
or a QA tester “swim upstream”<br />
for a few hours to perform some<br />
tasks in Analysis?<br />
• Let it be. Do nothing. If those<br />
in the bottleneck are aware of<br />
the situation and can resolve it<br />
within a few hours, no further<br />
action is required.<br />
It is important that your team<br />
understands that bottlenecks are<br />
not a failure. In the classic Theory of<br />
Constraints set forth by Eliyahu<br />
Goldratt in his 1984 book The Goal,<br />
bottlenecks are dynamic.
BEFORE<br />
At any one time, some point in production moves slower than the rest.<br />
The best-run systems do not have more than one bottleneck at a time, and<br />
removing one bottleneck reveals another, allowing you to improve the process.<br />
AFTER<br />
But if the bottleneck is consistently<br />
at one point in the value stream,<br />
then you have a static bottleneck.<br />
You might observe on your CFD<br />
diagram that the width of a<br />
particular state (like Developed or<br />
Tested) widens over the course of<br />
the project. This signifies high<br />
inventory at that step. These<br />
historic bottlenecks signal the need<br />
for some process improvement or<br />
more permanent solution, like –<br />
• Adjusting WIP limits<br />
• Reducing batch sizes<br />
• Adjusting the work balance, for<br />
example, with more stringent<br />
standards at the upstream step<br />
such that work in the bottleneck<br />
step is easier and flows faster<br />
• Adding staff, which raises<br />
operating expense (OE). But<br />
if your Development group is<br />
operating at capacity and is<br />
a consistent bottleneck, then<br />
perhaps it simply needs more<br />
capacity to deliver more value.<br />
Bottlenecks are not a sign<br />
of failure. At any time, one<br />
part of the process will move<br />
slower than the rest. But if<br />
the bottleneck is consistently<br />
in the same place, the<br />
process needs adjusting.<br />
Key Bottleneck Points<br />
• The value a system delivers is<br />
limited by its bottleneck<br />
• Bottlenecks do not indicate<br />
failure<br />
• Dynamic bottlenecks signal the<br />
need to redeploy resources<br />
• Static, unmoving bottlenecks<br />
signal the need for a permanent<br />
change<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 33
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
ENSURE<br />
FLOW WITH<br />
CADENCES<br />
You may also rely<br />
upon regular intervals,<br />
called cadences, for<br />
planning, delivery,<br />
and retrospectives.<br />
Like the daily standup<br />
meetings, these<br />
ensure that each work<br />
item gets the attention<br />
it requires; in other<br />
words, it is prioritized,<br />
put into the queue,<br />
troubleshot, and<br />
approved.<br />
Cadence is a pace—a kind of<br />
heartbeat, or drumbeat, for<br />
delivering work. Have you<br />
ever heard the coxswain of a<br />
rowing team calling, “Stroke,<br />
Stroke, Stroke”?<br />
That is a cadence. The songs<br />
that soldiers and sailors use<br />
in formation to pace<br />
themselves (“Superman’s<br />
the Man of Steel/Ain’t no<br />
match for a Navy Seal”)<br />
are cadences as well. Agile<br />
software development with<br />
its time-boxed iterations<br />
(typically one to four weeks)<br />
establishes a cadence.<br />
Three cadences typical of both<br />
Agile and <strong>Kanban</strong> are as follows:<br />
• Planning cadence<br />
• Delivery cadence<br />
• Review/retrospective cadence<br />
Cadence cautions<br />
Cadence is more critical as a<br />
Scrum practice than in <strong>Kanban</strong>.<br />
A team that has practiced Scrum<br />
likely has already established its<br />
cadences and may be ready to<br />
shed some of the structural walls of<br />
Scrum. It may have established a<br />
once-weekly retrospective meeting<br />
only to conclude that the meetings<br />
pull the team away from generating<br />
value and do not contribute to<br />
their growth.<br />
True, too, cadence is more<br />
practicable with Scrum’s timeboxed<br />
iterations and MMFs of<br />
roughly equal size.<br />
Still, cadence has its charms,<br />
among them that people are<br />
generally more productive with<br />
some regular structure and rhythm.<br />
As you begin your <strong>Kanban</strong> journey,<br />
experiment with a delivery cadence<br />
and a retrospective cadence.<br />
Delivery cadence<br />
The delivery cadence is the interval<br />
by which the team releases features<br />
or stories to the customer. The<br />
typical delivery cadence is weekly<br />
or biweekly. Yes, there will be cases<br />
of expedited delivery (e.g., to<br />
manage a significant bug).<br />
But then it is important to return<br />
to the regular delivery cadence.<br />
Why not simply release the entire<br />
job at once? Or in the spirit of<br />
continuous flow, toss each work<br />
item over the wall as it is done.<br />
Because both are less efficient than<br />
they appear to be.
Every batch of features includes<br />
both holding costs and transaction<br />
costs. Holding costs include<br />
erosion of business value,<br />
outdated feedback, reduced<br />
user participation, and so forth.<br />
Transaction costs include the sheer<br />
stop and start of delivery and<br />
piecemeal accounting labor<br />
(among others), plus, too-frequent<br />
feedback on the part of the<br />
customer that creates churn.<br />
There are complex economics<br />
involved in holding and transaction<br />
costs, which Reinertsen details in<br />
The Principles of Product<br />
Development Flow.<br />
A weekly or biweekly cadence<br />
achieves a balance between the<br />
two costs. For a batch of twentyfive<br />
features, it reduces the number<br />
of transactions to, let us say,<br />
seven transactions.<br />
The customer participates with<br />
feedback and change requests<br />
more regularly (but not<br />
ceaselessly), which ensures<br />
more continuous flow.<br />
Besides, a regular delivery cadence<br />
builds trust with a customer, who is<br />
assured that you are hard at work<br />
delivering “their” product.<br />
Consistent delivery fosters<br />
trust with customers. And,<br />
it reduces holding costs.<br />
Review/retrospective cadence<br />
The review/retrospective cadence<br />
sets a regular interval (typically at<br />
the end of a workweek) by which<br />
the team meets to reflect upon the<br />
week. Using the metrics they chose,<br />
perhaps the CFD and cycle-time<br />
diagrams, they ask what went well,<br />
what went poorly, and how they<br />
can revise the workflow for<br />
improvement during the upcoming<br />
week. The result is iterative,<br />
incremental improvement of both<br />
the product and workflows,<br />
including the team’s ability to<br />
work collectively.<br />
Why not wait until the end of a<br />
project? Because just as it is more<br />
efficient to work on a finite number<br />
of work items at a time, it is easier<br />
for team members to apply their<br />
full attention and ingenuity to<br />
incremental improvements to the<br />
workflow as things unfold.<br />
Key Cadence Points<br />
• A cadence is a kind of heartbeat<br />
for planning, delivering, and<br />
reflecting upon work<br />
• Cadences are independent of<br />
one another, but regular<br />
cadences of once weekly are a<br />
good practice for new <strong>Kanban</strong><br />
practitioners<br />
• A delivery cadence balances out<br />
transaction costs, while<br />
fostering trust with the<br />
customer<br />
• A retrospective cadence<br />
ensures that incremental<br />
process changes are<br />
recognized and made<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 35
5. MAKE PROCESS<br />
POLICIES EXPLICIT<br />
If you cry “forward,” you must make clear the direction.<br />
- Anton Chekov
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
MAKE<br />
PROCESS<br />
POLICIES<br />
EXPLICIT<br />
Policies are not<br />
restrictive in <strong>Kanban</strong>—<br />
they are freeing. They<br />
enable you and the team<br />
to focus upon valuecreating<br />
work because<br />
they are clear definitions<br />
of how to prioritize<br />
work and when work is<br />
considered done. Policies<br />
protect the team from<br />
overwork by specifying<br />
WIP limits. The result<br />
is a continuous,<br />
uninterrupted flow of<br />
work . . . and, of<br />
course, value).<br />
Unless the mechanism of software<br />
development is made explicit, it is<br />
difficult to improve that<br />
mechanism. “Any discussion of<br />
problems tends to be emotional,<br />
anecdotal, and subjective,” wrote<br />
Anderson, where an explicit<br />
understanding allows a more<br />
rational, objective discussion,<br />
and with it, a greater chance<br />
of consensus.<br />
is fluid and open to change. It<br />
has to be if we are to improve the<br />
process. We begin by saying,<br />
“This is the policy,” and then we<br />
ask, “How can we improve it?”<br />
Following is a short list of<br />
policies to set as you begin<br />
your <strong>Kanban</strong> journey.<br />
Frequency of planning & stand-up<br />
meetings<br />
Earlier, we discussed the delivery<br />
cadence. The planning cadence is<br />
the interval by which the team<br />
leaders and Product Owner meet to<br />
prioritize features and release them<br />
to the team. Advanced <strong>Kanban</strong><br />
teams may rely upon the “plan on<br />
demand” technique of gathering<br />
the stakeholders when a number of<br />
slots are empty in the input queue.<br />
For now, set a planning cadence,<br />
which involves short meetings at<br />
the beginning of the workweek.<br />
For now, hold a stand-up meeting<br />
at the beginning of each day, and<br />
follow a tight script like Scrum.<br />
Make it the type of stand-up<br />
meetings typical of Agile software<br />
development, time boxed for fifteen<br />
minutes maximum. A rule of thumb:<br />
discourage folks from bringing food<br />
or sitting down; otherwise, your<br />
meetings will be prone to focus<br />
more on social and political content<br />
than the core topic of planning.<br />
Follow this agenda:<br />
1. Update the <strong>Kanban</strong> board to the<br />
current status for all work items.<br />
2. “Read” the board, looking for<br />
new items, bottlenecks and<br />
overloaded areas, and items<br />
that are date at risk or customer<br />
urgent. Read the board from<br />
right to left, starting with the<br />
items that are closest to done.<br />
This practice reinforces Flow<br />
thinking and the idea of<br />
minimizing WIP. It also<br />
communicates that the most<br />
important items are the items<br />
closest to delivery.<br />
3. Create specific plans to handle<br />
those work items, answering<br />
these questions:<br />
a. Who is working on the item?<br />
b. Does that person need<br />
assistance to finish the item<br />
on time?<br />
c. If the item is blocked, what can<br />
the team do to unblock it?<br />
At the end of the meeting, you<br />
should have rearranged work items<br />
such that there is no WIP capacity<br />
left over; each state is filled to its<br />
WIP limit—a state that was below<br />
its WIP limit has pulled work from<br />
upstream all the way down the line.<br />
It may be tempting to hold<br />
meetings once a week, but resist<br />
that temptation. You will simply<br />
spend more time updating the<br />
board. And, you run the risk that<br />
bottlenecks and date-at-risk items<br />
will age another day, becoming<br />
more critical. Finally, it can delay<br />
team members below WIP limits<br />
from pulling work.<br />
<strong>Kanban</strong> eliminates much<br />
of the debate, deliberation,<br />
and finger-pointing of<br />
software engineering.<br />
WIP limits, Priorities, and<br />
Definitions of Ready and<br />
Done are well thought out<br />
before items are placed on<br />
the board and inarguable.<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 37
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
DEFINITION<br />
OF WORK<br />
TYPES &<br />
WORK ITEMS<br />
Earlier, we “Visualized<br />
the Workflow.” We<br />
must also visualize<br />
work types and work<br />
items. Each work item<br />
will have its own card,<br />
perhaps a sticky note.<br />
And, each card or note<br />
will have some key<br />
pieces of information.<br />
Use a color key to visualize the type of work by<br />
the color of the card or sticky note. You may, for<br />
example, choose blue sticky notes for maintenance<br />
items and pink ones for defects.<br />
Some typical work items that Anderson named in<br />
<strong>Kanban</strong>: Successful Evolutionary Change in Your<br />
Software Business are shown below.<br />
• Requirements<br />
• Features<br />
• User stories<br />
• Use cases<br />
• Change requests<br />
• Defects<br />
• Maintenance<br />
• Refactoring<br />
• Bug<br />
• Improvement suggestion<br />
• Blocking issue<br />
You may choose instead to identify work by the source,<br />
for example, customer request, field sales request, or<br />
strategic planning requirement.<br />
An ultrasimple method is to divide work between<br />
improvement and maintenance.<br />
Whichever convention you use, try to limit your types<br />
to two or three and five at most.<br />
Other information:<br />
• Place these pieces of information on four agreedupon<br />
points in the card or note.<br />
• Title and description (the user story).<br />
• Due date, if any<br />
• Start date, being when you begin to clock<br />
cycle time.<br />
• Relative “size” of the item. A popular convention<br />
is to estimate the “T-shirt size” of a work item (the<br />
estimated lead time needed to complete it). An<br />
extra small (XS) item might have a lead time of less<br />
than a day, while an extra large (XL) takes three<br />
weeks, a large (L) two weeks, and a medium (M)<br />
one week.<br />
So, a finished <strong>Kanban</strong> work item might look like<br />
Figure 7:<br />
DEBUG CONTACT<br />
BACKUP<br />
Fix backup from Excel failure<br />
DUE: 4/12/2014<br />
START: 4/6/2014<br />
S<br />
Figure 7 Each work item has a card or sticky of its<br />
own with all the information the team needs
DEFINITION<br />
OF READY<br />
Of course there are<br />
innovative, aspirational,<br />
speculative features in the<br />
queue—there should be!<br />
These drive innovation<br />
in your organization.<br />
But the team must not<br />
be tasked with a wild<br />
idea for which there is<br />
only lackluster support,<br />
little understanding of<br />
customer value, or simply<br />
a lack of team skills<br />
to execute.<br />
Establish a definition<br />
of ready—hard criteria<br />
that must be met before<br />
a work item moves<br />
from the backlog to<br />
become WIP.<br />
The definition of ready is a short<br />
checklist of criteria for a work item<br />
to move from the backlog and enter<br />
the cycle. It ensures that the team<br />
has all the information it needs to<br />
complete the work and prevents a<br />
backup mid-cycle.<br />
The team is best suited to outline<br />
the characteristics of a work-ready<br />
item. Some typical elements of a<br />
definition of ready include the<br />
following:<br />
• A contact name<br />
• The contact availability at the<br />
time the work begins<br />
BACKLOG<br />
• Item groomed –<br />
discussed with<br />
the team<br />
• Acceptance test<br />
cases<br />
• Estimated<br />
• No blocking issues/<br />
dependencies<br />
TO DO<br />
3<br />
READY<br />
• Discussion<br />
with user<br />
• Solution outline<br />
discussed with<br />
developer and<br />
with user<br />
• Some written specification<br />
of the demand (the user<br />
requirement)<br />
• Clear validation criteria<br />
• Some idea of who on the team<br />
has the skills to execute the idea<br />
Definition of Done (DOD)<br />
For each state on your <strong>Kanban</strong><br />
board, ask the team to write a<br />
Definition of Done (DOD); then,<br />
write those definitions at the<br />
bottom of each column on your<br />
<strong>Kanban</strong> board (as in Figure 8).<br />
3<br />
4 3 3<br />
ANALYSIS DEVELOPMENT VALIDATION DEPLOYMENT<br />
IN<br />
PROGRESS<br />
DONE<br />
• TDD<br />
• CI Passes<br />
• Acceptance test<br />
cases verified<br />
• User docs updated<br />
IN<br />
PROGRESS<br />
DONE<br />
• Running in staging<br />
environment<br />
• 24 hour soak<br />
• User docs validated<br />
IN<br />
PROGRESS<br />
DONE<br />
The DOD is the condition that must<br />
be met before a work item can be<br />
pulled into the next state.<br />
Ask the team to think in absolutes.<br />
DoD is the team’s quality statement<br />
that ensures a feature is 100<br />
percent developed and error free.<br />
Keep DoDs simple. For example, a<br />
DoD for Development might be:<br />
• Code clean and checked<br />
• Integrated and regression tested<br />
• Runs on user acceptance testing<br />
(UAT) environment<br />
• Installed in<br />
production<br />
• Running with use<br />
and no issues for<br />
24 hours<br />
• Comm with users<br />
complete<br />
IN<br />
PROGRESS<br />
Figure 8 Definitions of ready are spelled out at the bottom of each <strong>Kanban</strong> state © Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 39
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
EXPLICIT WIP<br />
LIMITS<br />
BACKLOG<br />
6 2<br />
2 3 4<br />
CUSTOMER<br />
ANALYSIS DEVELOPMENT VALIDATION ACCEPTANCE<br />
DELIVERY<br />
4<br />
A simple way to make<br />
WIP limits explicit is to<br />
write those limits in the<br />
column headers of your<br />
<strong>Kanban</strong> board, as in<br />
Figure 9.<br />
In our example,<br />
Development may have<br />
only two work items in<br />
progress at one time,<br />
whereas Validation<br />
may have three. Note:<br />
WIP limits apply to<br />
both work in progress<br />
and done items.<br />
Figure 9: <strong>Kanban</strong> board column headers with WIP and Queue limits embedded<br />
Figure 10 uses a simpler approach, one more common to Lean manufacturing. The <strong>Kanban</strong><br />
board includes limits WIP with a corresponding number of slots in every column or step.<br />
So, someone who attempts to add a work item at the Validation stage, when all three slots are<br />
filled, knows that he or she should not have pulled that item from development.<br />
Similarly, a manager who sees work items on the board, outside of slots, knows that the<br />
process needs management.<br />
URGENT (1)<br />
HIGH (2)<br />
NORMAL (6)<br />
LOW (6)<br />
BACKLOG<br />
6 2<br />
2 3 4 4<br />
CUSTOMER<br />
ANALYSIS DEVELOPMENT VALIDATION ACCEPTANCE DELIVERY<br />
Figure 10: A <strong>Kanban</strong> board using simple slots for WIP.<br />
As we discussed in the section “Limit WIP,” these limits are subject to change. At the<br />
beginning of the project, they are the team’s best estimate of its capacity. It may find that it<br />
is capable of managing more work items, or less, or you may discover that from managing<br />
repeated bottlenecks.
POLICIES FOR<br />
PRIORITIES<br />
Explicit prioritization<br />
makes it easy for the<br />
team to choose WIP<br />
when they pull from<br />
upstream. Ideally, team<br />
members do not have to<br />
decide which items<br />
to pull.<br />
Think “engineering ready” versus “backlog”<br />
The backlog is the bushel of ideas for a project, a<br />
potentially infinite cache of features and functions,<br />
which must be prioritized and constantly groomed.<br />
If <strong>Gear</strong> <strong>Stream</strong> had its way, there would be no states on<br />
a <strong>Kanban</strong> board reading “Backlog” or “Queue.” Those<br />
columns would read “Engineering Ready,” and there<br />
would be nothing in that column that you don’t want<br />
the team to work on.<br />
The overarching goal of <strong>Kanban</strong> is to deliver the<br />
highest possible value to the customer in a fast,<br />
efficient way. The key enablers are 1) to reduce<br />
cycle time and 2) to increase workflow, but a third<br />
is selecting items that are of the highest value.<br />
The Product Owner typically makes that judgment,<br />
with input from the team, during the planning meeting.<br />
How to prioritize<br />
Due dates are the most obvious way to prioritize<br />
work. These are fixed dates that have been discussed<br />
with the customer rather than theoretical or “nice-tohave-it-by”<br />
dates from the customer or other<br />
team members.<br />
A second criterion for prioritization is urgency.<br />
There are four basic classifications:<br />
• Urgent for work items that require the team’s<br />
attention (e.g., ones that are past due date)<br />
• High for work items at risk of being late<br />
• Normal for the majority of items<br />
• Low for items that can be delayed without<br />
creating urgency<br />
Still another tool for prioritization is class of service,<br />
defined in service level agreements (SLAs). In essence,<br />
the team charges more for high-priority work. Its<br />
complexities are beyond the scope of this book, but<br />
here is an example:<br />
• Standard Class: $0, common for typical user stories<br />
• Priority Class: $750, typically critical bugs and<br />
high-priority user stories<br />
• Fixed-Deadline Class: $0–$2,500, user stories<br />
• Expedite Class: $4,000–$6,000, for example, a<br />
blocker bug (may require breaking WIP limits)<br />
The SLA defines the costs and the expected delivery.<br />
That delivery is based on a realistic assessment of<br />
historic delivery times, being a mean delivery time (e.g.,<br />
twenty days for Standard Class user stories, four days<br />
for Expedite Class).<br />
The SLA might also account for standard deviations,<br />
based on the cycle time metrics we covered in Chapter<br />
3. You may offer the customer such delivery data as:<br />
• A confidence estimate, such as “85% delivered by<br />
mean cycle time”<br />
• A 90% estimate, such as “90% within 15 days<br />
for Standard Class,” which should be lower than<br />
historic delivery times<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 41
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
SWIM LANES<br />
How is the team to<br />
identify the urgency<br />
of the items?<br />
A simple method is to divide the <strong>Kanban</strong> board into “swim<br />
lanes,” based on urgency or service class. Figure 11 shows an<br />
example. Each swim lane should have its own WIP. Most items<br />
should fall into the normal lane, but a good rule to set is that no<br />
more than one urgent item is allowable at any step and two<br />
high items (in an ideal world, of course).<br />
Similarly, you may choose to create swim lanes by:<br />
• Work type<br />
• Customers, with an understanding of which customer’s<br />
work takes priority
RELEASE<br />
FREQUENCY<br />
(CADENCE)<br />
As we saw earlier in the section “Measure and Manage Flow,” a consistent delivery<br />
cadence maximizes value in several ways. It:<br />
• Lowers holding costs<br />
• Balances transaction costs,<br />
making sure that transactions<br />
are neither too frequent or<br />
infrequent<br />
• Builds trust with the customer<br />
A once-a-week or biweekly delivery<br />
cadence suffices at most<br />
organizations.<br />
Key Policy Points:<br />
• Allow that policies will change<br />
• Explicit WIP limits ensure<br />
continuous flow<br />
• A clear definition of Engineering<br />
Readiness keeps superfluous<br />
work out of the queue<br />
• A clear Definition of Done<br />
ensures that only quality work<br />
is delivered<br />
BACKLOG<br />
6 2<br />
2 3 4 4<br />
CUSTOMER<br />
ANALYSIS DEVELOPMENT VALIDATION ACCEPTANCE DELIVERY<br />
URGENT (1)<br />
HIGH (2)<br />
NORMAL (6)<br />
LOW (6)<br />
Figure 11: Swim lanes make priorities visual and explicit<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 43
6. IMPROVE<br />
COLLABORATIVELY<br />
(USING MODELS)<br />
Sometimes when you innovate, you make mistakes. It is best to admit them quickly,<br />
vvand get on with improving your other innovations<br />
– Steve Jobs
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
IMPROVE<br />
COLLABOR-<br />
ATIVELY<br />
(USING<br />
MODELS)<br />
Bravo! For committing<br />
to <strong>Kanban</strong> and changing<br />
your processes. But<br />
the change has just<br />
begun. <strong>Kanban</strong> is a tool<br />
for pushing forward<br />
with evolutionary,<br />
incremental change.<br />
Something the Toyota Production<br />
System (from which <strong>Kanban</strong> derives)<br />
did wonderfully well was to “democratize”<br />
change. It entrusted the front-line workers<br />
to recognize and implement opportunities<br />
for improvement.<br />
Toyota instituted Kaizen events in which<br />
workers in a Kaizen circle identify and make<br />
changes—collaboratively. Kaizen, by the way,<br />
loosely interprets as “good change.” These<br />
front-line workers do not need to check with<br />
management, yet management is typically<br />
involved. This reflects the radically different<br />
way that Toyota managers and leaders<br />
operate, something that we can’t address<br />
here, unfortunately.<br />
It instituted Kaizen events in which workers in a Kaizen<br />
circle recognized the need for and make changes –<br />
collaboratively. Those front-line workers did not need<br />
to check with management, as management was<br />
typically involved. (Kaizen, by the way, loosely<br />
interprets as “good change.”)<br />
The typical Kaizen cycle in software engineering is–<br />
1. Standardize an operation<br />
2. Measure the operation (e.g., its cumulative flow<br />
or cycle time)<br />
3. Gauge those measures against requirements<br />
4. Introduce improvements to increase productivity<br />
or meet requirements<br />
5. Standardize the improvements<br />
6. Return to step 1<br />
A similar model is the Plan-Do-Check-Act (PDCA)<br />
model conceived by productivity guru William<br />
Edwards Deming. To act is to take corrective actions<br />
when expectations aren’t met—pretty similar to Kaizen.<br />
Use your <strong>Kanban</strong> tools<br />
You have all the tools you need to begin making<br />
collaborative change. Let’s review them:<br />
1. Planning meetings<br />
2. Stand-up meetings<br />
3. Retrospective meetings<br />
4. The cumulative flow diagram, or CFD<br />
5. The cycle time diagram<br />
Recall the charter we outlined at the beginning of this<br />
book: we maximize value by improving cycle times<br />
and workflow.<br />
Thus, the subject of every planning, stand-up, or<br />
retrospective meeting you have in the course of a<br />
project are cycle time and flow. Have updated<br />
diagrams ready for your retrospective meetings in<br />
particular and rather than discussing off the cuff what<br />
did or didn’t go well, use these diagrams to begin your<br />
discussions.<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 45
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
USE MODELS<br />
FOR CHANGE<br />
Anderson suggests three useful models for<br />
improvement, each of which creates a shared<br />
understanding and consensus. They are:<br />
• The Theory of Constraints (or TOC—bottlenecks)<br />
• The System of Profound Knowledge<br />
• The Lean Economic Model<br />
The Theory of Constraints you know already.<br />
Swarm your constraints and you facilitate flow.<br />
The System of Profound Knowledge was also<br />
conceived by W. Edwards Deming. It creates a<br />
culture in which knowledge is welcome, change is<br />
welcome, and individuals are safe to suggest and<br />
make improvements without fear of failure reprimand.<br />
Maybe that sounds “touchy-feely,” but ultimately it’s<br />
very practical.<br />
A <strong>Kanban</strong> team is self-reporting and self-correcting.<br />
It gathers knowledge and statistics for its own purpose,<br />
which is to maximize the value it produces. It does not<br />
fear suboptimal metrics, but rather, relishes an<br />
opportunity for improvement.<br />
This takes getting used to. Because teams are used to<br />
gathering data for management, they are tempted to<br />
misreport the results out of fear. As Deming put it, “A<br />
committee appointed by the President of a company<br />
will report what the President wishes to hear. Would<br />
they dare report otherwise?”<br />
In a System of Profound Knowledge, the team also has<br />
a deep knowledge of variation as it relates to process.<br />
Some of the variations we have touched upon:<br />
• Bugs and other product defects<br />
• Longer-than-usual cycle times<br />
• WIP overloads<br />
• Budget overruns<br />
• Overtime<br />
Variations are deviations from the expected or<br />
desired output—not causes. Deming observed that<br />
there are both common and special causes of<br />
variation; a product owner who allows “scope creep”<br />
to affect cycle time on every project is a common<br />
cause. A one-time request from a valued customer<br />
is a special cause.<br />
In either instance, the <strong>Kanban</strong> team’s charter is to<br />
acknowledge the variation, identify its cause, and<br />
revise the process to safeguard against that variation.
There is far more to the System of Profound<br />
Knowledge. Read Deming’s The New Economics: For<br />
Industry, Government, Education, available from MIT<br />
Press to learn more.<br />
The Lean Economic Model is similarly complex, but at<br />
its core is elimination of waste. By eliminating waste in<br />
all its forms, you create only value for the customer.<br />
This in turn boosts profit.<br />
The Toyota Production System recognizes three kinds<br />
of waste, each with a Japanese name:<br />
1. Muda—includes overprocessing, excess inventory<br />
(WIP), defects, and waiting, along with other forms<br />
of general waste<br />
2. Mura—unevenness, inconsistency, variation<br />
in workflow<br />
3. Muri—overburden of workers or teams, which<br />
in turn creates defects<br />
Toyota’s inventory is cars; in software engineering,<br />
inventory is unseen, yet it also produces concrete<br />
artifacts for the end user. Under TPS, Toyota would not<br />
produce a car for which there is no order. Similarly, in<br />
<strong>Kanban</strong>, a team does no work that a customer has not<br />
requested.<br />
So how do you eliminate waste?<br />
You’re there already! That is, if you have been actively<br />
using <strong>Kanban</strong>. Have you heard the term “Nature<br />
deplores a vacuum”? <strong>Kanban</strong> deplores waste and<br />
eliminates it in all its forms, including:<br />
• the waste of waiting by ensuring continuous flow<br />
• the waste of excess inventory by reacting only to<br />
customer requests<br />
• the waste of overburden with WIP limits<br />
• the waste of defects by eliminating such causes<br />
as overburdening, overpromising<br />
• It has tools to recognize waste (like CFD) and<br />
mechanisms to eliminate it (like retrospective<br />
meetings).<br />
Eliminate waste and everything left over<br />
will be value-adding work.<br />
Key Improvement Points<br />
• Improvements must be standardized to<br />
become lasting<br />
• A System of Profound Knowledge fosters<br />
transparency and self-correction<br />
• Eliminating constraints creates value<br />
• Eliminating waste leaves only value<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 47
7 . THE NEXT<br />
MOVE IS YOURS
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
YOUR MOVE -<br />
If you’re looking for help<br />
with <strong>Kanban</strong> and Agile<br />
delivery improvements,<br />
give us a call! <strong>Gear</strong><br />
<strong>Stream</strong> has a broad<br />
range of Lean and Agile<br />
transformation services<br />
designed to radically<br />
improve your innovation<br />
and software delivery<br />
pipeline.<br />
Our services include<br />
on-site workshops,<br />
embedded coaching, and<br />
the world’s only On<br />
Demand Agile Cloud<br />
Software Factory.<br />
We hope this eBook has given you useful insights and inspired you to move<br />
forward on your Agile journey and to consider using <strong>Kanban</strong> on real projects<br />
in your company. We would also love to get your feedback and for you to share<br />
stories about how it might have helped you achieve better ROI for you and<br />
your customers.<br />
Brad Murphy, Founder & CEO<br />
<strong>Gear</strong> <strong>Stream</strong>, Inc.<br />
Send Us Your <strong>Kanban</strong><br />
Questions or Feedback to:<br />
<strong>Kanban</strong>@gearstream.com<br />
For More Information,<br />
Call or Visit Us At:<br />
1-800-935-1420<br />
www.<strong>Gear</strong><strong>Stream</strong>.com<br />
© Copyright 2012 <strong>Gear</strong> <strong>Stream</strong>, Inc. 49