25.04.2016 Views

Gear_Stream-EBook_Getting_Started_w_Kanban

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!