Sie sind auf Seite 1von 90

Kanban

A Lean approach to Agile software development


JFokus
January 26, 2010

Henrik Kniberg
Agile/Lean coach
www.crisp.se
Board of
directors

henrik.kniberg@crisp.se
070 4925284

Goals of this tutorial


Basic understanding of Kanban
Where it came from
What problem it tries to solve
Underlying Lean principles
How it looks like in practice
How to get started

Henrik Kniberg

Exercise

Flow

Watch the baton, not the runner!

Henrik Kniberg

Cycle time
Cycle time / lead time
= The reliable, repeatable time from customer need
until that need is satisfied ( time to market)
Examples:
Time to get my hamburger
Time to resolve support request
Time to get home from work
Time to deliver a feature

Your system & resources

Item in

Item out

Not to be confused with Iteration/Sprint length


= release frequency / cadence length

Henrik Kniberg

Minimize cycle time

Watch the baton!

Competitive advantage
Detect defects earlier
Less time for change to happen

Henrik Kniberg

Problem: Invisible baton


Team 1

Team 2

Managers who dont know how to


measure what they want
settle for
wanting what they can measure
Russel Ackoff

Henrik Kniberg

Optimizing resource utilization = suboptimizing cycle time

Baton in

Baton out
100% runner utilization
=> Lose the race

Car in

Car out
100% Road utilization
=> Long time to get home

CPU: 100%

Http://....

Request in

Henrik Kniberg

CPU: 100%
CPU: 100%

100% Server utilization


=> Long response time

<html>....

Response out

Queuing theory: Littles law


Smaller batch size => faster cycle time

Littles law

Total Cycle Time =

2 liters per second

slow

Henrik Kniberg

Number of Things in Process


Average completion rate

2 liters per second

Fast

Minimize batch size


Knowledge is perishable
1 fresh banana per day
Monday

Tuesday

Wednesday

Thursday

Friday

Wednesday

Thursday

Friday

... or 5 rotten bananas per week?


Monday

Henrik Kniberg

Tuesday

10

Littles law in action


Focusing

Total Cycle Time =

Number of Things in Process


Average completion rate

Short cycle time

1 task in
progress

Task A

Task B

Task C

Timeline

Multitasking

3 tasks in
progress

Long cycle time

A1
B1

B3

B2
C1

Henrik Kniberg

A3

A2
C2

C3
11

Q: What causes multitasking?


A: Optimizing for max resource utilization

Project A
Project B
Project C
Project D

Q1

Henrik Kniberg

Q2

Q3

Q4

12

Value stream mapping


Design-ready games

Game backlog

15

8
Sam
2d

1m

Concept
pres.

2h

6m

Lisa
assigns
resources

4h

3 m value added time


25 m cycle time

Production-ready games

1d

1w

Graphics
design

Sound
design

1m

3w

12

Dev
6m

6m

Integr. &
deploy

3m
(1m+2m)

3w

Process
= 12% cycle
efficiency

Cross-functional game team


3-4 m cycle time = 6-8x faster

Game team
(graphics, sound,
dev, integrate)
3-4 months

Henrik Kniberg

13

Optimize the whole


Im fast!

Were slow!

6 months

Joe

Dave

Lisa

Done!

3 months

Were alot faster!

Joe

Im a bit
slower

Dave
Lisa
January

February

Henrik Kniberg

Done!

March

April

May

June

July

14

Problem: Invisible baton


Team 1

Team 2

Managers who dont know how to


measure what they want
settle for
wanting what they can measure
Russel Ackoff

Henrik Kniberg

15

Its hard to optimize something that you cant see

16

First step: Visualize the baton!


Team 1

Todo
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur orem ipsum dolor
sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur

Team 2

Done

Doing
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur

Avg lead time:

Henrik Kniberg

Todo

this week

Doing

Done

this week

orem ipsum dolor


sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur

20 days

orem ipsum dolor


sit amet, co nse
ctetur

Avg lead time:

orem ipsum dolor


sit amet, co nse
ctetur

3 days
17

Kaizen

18

Both are empirical

Capacity

Lead time

Quality

Predictability

(aka velocity)

(aka cycle time)

(defect rate, etc)

(SLA fulfillment, etc)

Kanban is HIGHLY configurable

Many small teams


Low WIP limits
Few workflow states

Few large teams

Many workflow states


Long iterations

Little planning

Lots of planning

Henrik Kniberg

Oh no, more decisions!

High WIP limits

Short iterations

.... etc ...

Great! More options!

.... etc ...

19

Almost always a good idea


Visualize the workflow
Limit WIP (work in process)
Short feedback loops
Focus on quality
Cadences

Henrik Kniberg

20

Exercise

Pull

21

Limit work to capacity


Input: 3 customers / hour

Henrik Kniberg

Output capacity: 2 customers / hour

22

Pull vs Push

Assigning tasks = push


Taking tasks = pull

Push

Pull

Henrik Kniberg

23

Example: Supermarket pull

Henrik Kniberg

24

Example: Feature pull

Henrik Kniberg

25

Why feature pull is important


Features and functions used in a typical system:
Half of the
features we build
are never used!

Always
7%

Never
45%

Often
13%
Sometimes
16%

Rarely
19%
Source: Standish Group Study Reported at XP2002
by Jim Johnson, Chairman

Henrik Kniberg

26

Kanban

27

Kanban

Visual Card

Signaling system
Visual
Limited in supply

Henrik Kniberg

28

Kanban @ Imperial Palace Gardens

Henrik Kniberg

29

Kanban in your wallet

Darn. Forgot to
limit.

Henrik Kniberg

30

Kanban @ Toyota
Buyer

Consume

Detach

Supplier

Receive

Ship

Allocate

Manufacture

The tool used to operate the


[Toyota Production] system is
kanban.

Henrik Kniberg

Taiichi Ohno
Father of the
Toyota Production System

31

Kanban in SW development
Pioneered by
David Anderson
in 2004

Visualize the workflow


Limit WIP (work in progress)
Measure & optimize flow
Backlog
5

Dev
3

UAT Deploy Done


3
2
orem ipsum dolor
sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur

FLOW

Henrik Kniberg

Avg lead time:

12 days

32

Evolve your own board!

Henrik Kniberg

Some of these photos courtesy of


David Anderson, Mattias Skarin,
and various other people

33

One day in Kanban land

34

One day in Kanban land


http://blog.crisp.se/henrikkniberg/tags/kanban/

Henrik Kniberg

35

Scenario 1 one piece flow

Next

Backlog
A

Dev

In production :o)

Ongoing

Done

G
C
F
H
J
M

D
I

L
K

Henrik Kniberg

36

Scenario 1 one piece flow

Next

Backlog

Ongoing

Done

C
F
H
M

In production :o)

Dev

D
I

L
K

Henrik Kniberg

37

Scenario 1 one piece flow

Backlog

Ongoing

Done

C
F
H
M

In production :o)

Dev

Next

D
I

L
K

Henrik Kniberg

38

Scenario 1 one piece flow

Dev

Next

Backlog

Ongoing

In production :o)

Done
A

F
H
J
M

I
L
K

Henrik Kniberg

39

Scenario 1 one piece flow.

Dev

Next

Backlog

In production :o)

Ongoing

Done

G
D

A
B

F
H
J
M

I
L
K

Henrik Kniberg

40

Scenario 2 Deployment problem

Next

Backlog
PO
A

Dev

In production :o)

Ongoing

Done

G
C
F
H
J
M

D
I

L
K

Henrik Kniberg

41

Scenario 2 Deployment problem

Next

Backlog

PO

Ongoing

Done

C
F
H
M

In production :o)

Dev

D
I

L
K

Henrik Kniberg

42

Scenario 2 Deployment problem

Dev

Next

Backlog
PO
G

In production :o)

Ongoing

Done

F
H
J
M

I
L
K

Henrik Kniberg

43

Scenario 2 Deployment problem

Dev

Next

Backlog
PO

Ongoing
C

G
D

In production :o)

Done
A

F
H
J
M

I
L
K

Henrik Kniberg

44

Scenario 2 Deployment problem

Backlog
PO

G
D
F
H
J
M

Dev

Next

In production :o)

Ongoing

Done

!?

I
L
K

Henrik Kniberg

45

Scenario 2 Deployment problem

Backlog
PO

F
H
M

In production :o)

Ongoing

!?

Dev

Nexet

Done
A

I
L
K

Henrik Kniberg

46

Scenario 2 Deployment problem

Next

Backlog
PO

F
H
M

In production :o)

Ongoing

Done
A

Dev

I
L
K

Henrik Kniberg

47

Scenario 2 Deployment problem

Next

Backlog
PO

Dev

In production :o)

Ongoing

Done
A

G
D
F
H
J
M

B
C

I
L
K

Henrik Kniberg

48

Scenario 2 Deployment problem

Backlog
PO

In production :o)

Ongoing

Done

A
B

Dev

Next

C
I

L
K

Henrik Kniberg

49

Bottlenecks

50

Theory of constraints Smooth Flow


Goal

Reality

Strategy

51

Theory of constraints
All systems have a bottleneck
When you fix it, it jumps to somewhere elese.
The whole system performs only as well as its
bottleneck
Ensure you have slack before & after the
bottleneck
Happens automatically with pull scheduling
Use the slack to fix the bottleneck

Henrik Kniberg

52

How to find your bottleneck


Without WIP limits

Busy at bottleneck
Slack downstream
Queue upstream

Next

Dev

Test

Integrate Deploy

orem ipsum dolor


sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
orem ipsum
cteturdolor
sit amet, co nse
ctetur
orem ipsum dolor
orem ipsum dolor
sit amet, co nse
sit amet, co nse
ctetur
ctetur
orem ipsum dolor
orem ipsum dolor
sit amet, co nse
sit amet, co nse
ctetur
ctetur

Expensive
queue

orem ipsum dolor


sit amet, co nse
ctetur

Cheap queue

With WIP limits


Next
orem ipsum dolor
sit amet, co nse
orem ipsum dolor orem ipsum dolor
ctetur
sit amet, co nse sit amet, co nse
orem ipsum dolor
ctetur
orem ipsum dolor
ctetur
sit amet, co nse
sit amet, co nse
ctetur
ctetur
orem ipsum dolor
orem ipsum dolor
sit amet, co nse
orem ipsum dolor
sit amet, co nse
ctetur
sit amet, co nse
ctetur
orem ipsum dolor
ctetur
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur

Henrik Kniberg

Dev

Test

Integrate Deploy

orem ipsum dolor


sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur

53

Knows a bit about many things

Goal: T-shaped people

Knows a lot
about one
thing

Team Skills matrix

I can test, but Im


not so good at it.

Test

DB

Web

Java

Domain

CM

I dont know CM
at all. But Im
willing to learn!

Im good at Java!

Lisa
Joe
Fred
Jenny
David
Erik

Henrik Kniberg

54

Kanban allows both


specialists & generalists
Backlog

orem ipsum dolor


sit amet, co nse
ctetur

Design

Fold

orem ipsum dolor


sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur

Tape

Trim

orem ipsum dolor


sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur

Henrik Kniberg

Draw

orem ipsum dolor


sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur

55

Cumulative Flow Diagram (CFD)

Backlog
orem ipsum dolor
sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur

Day 4
Dev

Test

Prod

orem ipsum dolor


sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
orem ipsum dolor
ctetur
sit amet, co nse
ctetur

Henrik Kniberg

56

Cadence

57

Daily standup meeting

Henrik Kniberg

Source: Visual management blog

http://www.xqa.com.ar/visualmanagement/
2009/04/daily-scrum-against-the-board/

58

Cadence
Scrum team
Kanban team 1

week 1

week 3

week 4

Sprint 1

Plan & commit

Kanban team 2

week 2

week 5

week 6

week 7

week 8

Sprint 2

Review
(release?)

Retrospective

week 1

week 2

week 3

week 4

week 5

week 6

week 7

week 8

week 1

week 2

week 3

week 4

week 5

week 6

week 7

week 8

Retrospectives (4w)
Planning cadence (2w)
Release cadence (1w)

Kanban team 3
Retrospectives (4w)
Planning (on demand)
Release (on demand)

Henrik Kniberg

59

Reduce transaction costs


Next

Dev

Test

Integrate Deploy

Trans cost

Trans cost

Cost of initializing
test environment

Economies of Scale
We need to do big
batches because
transaction cost is high

Henrik Kniberg

Cost of restarting
server

Economies of Flow (Lean)


We need to minimize
transaction cost so we can do
smaller batches

Automate
init of test
environment
Implement
hot-reload
on server

60

Quality

61

Quality

Defects per unit of


valued work

Value demand

Failure demand

Henrik Kniberg

62

Lean principle: Stop the Line


The build server is your friend! Really!

Henrik Kniberg

63

Optimizing the WIP limit

64

Optimizing the WIP limit


Too low WIP limit
To do

Doing

orem ipsum dolor


sit amet, co nse
ctetur

Done
orem ipsum dolor
sit amet, co nse
ctetur

Just Right WIP limit


To do
orem ipsum dolor
sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur

Slow flow
(end-to-end)
People
often idle

Doing

Done
orem ipsum dolor
sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur

Zzzzzzzzz

To do

Doing

Done

orem ipsum dolor


sit amet, co nse
ctetur

Tasks
rarely idle
People
sometimes idle
(slack)

Henrik Kniberg

Too high WIP limit

orem ipsum dolor


sit amet, co nse
ctetur

Fast flow

People
never idle

Lack of wall
space...

Slow
flow

orem ipsum dolor


sit amet, co nse
ctetur

Tasks often
idle

65

Use WIP limits to break vicious cycles


Releasing
is a Pain

Release
seldom

Releasing
is easy

Big
releases

Long cycle
time

High WIP
Henrik Kniberg

Release often

Small
releases

Low
quality

Short cycle
time

Low WIP

WIP limits

High
quality

WIP limits
66

Evolution of a Kanban
board

67

Kanban www.crisp.se/kanban/example
kick-start example

Henrik Kniberg

Next
2

Analysis
3

Development
3

Ongoing

Ongoing Done
2009-09-01

orem ipsum dolor sit


amet, co adi pis cing
elit nisl

2009-08-20
orem olor sit amet, co
nse ctetur adi pis cing
elit nisl

orem ipsum dolor


sit amet, co nse
ctetur

2009-08-29
orem ipsum dolor sit
amet, nse ctetur adi
pis cing elit nisl

orem ipsum dolor


sit amet, co nse

2009-08-25
orem ipsum dolor sit
ctetur adi pis cing elit
nisl

orem ipsum dolor


orem ipsum dolorsit amet, co nse
sit amet, co nse ctetur
ctetur

Definition of Done:
Goal is clear
First tasks defined
Story split (if necessary)

Feature / story
Date when
added to board

2009-09-30

(description)

Done

orem ipsum dolor


sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur

2009-09-02

2009-08-20

Ongoing
orem ipsum dolor sit
amet, adi pis cing elit
nisl

orem ipsum dolor


sit amet, co nse
ctetur

xxxx kjd
orem ipsumdjdolor
d xxx
sit amet, co nse
ctetur

orem ipsum dolor


sit amet, co nse
ctetur

Acceptance Prod
2
2009-08-27

2009-09-08

2009-08-30

orem ipsum
dolor sit
orem ipsum dolor
amet,
co nse
amet, co sit
nse
ctetur
ctetur
adi pis cing
elit nisl

Done

version 1.2
2009-11-16

Definition of Done:
Code clean & checked in on trunk
Integrated & regression tested
Running on UAT environment

Hard deadline
(if applicable)

= priority
= panic

Who is analyzing /
testing right now

Definition of Done:
Customer accepted
Ready for production

Task / defect
(description)

=task

(description)

Why

(description)

(description)

(description)

=defect

What to pull first

Panicfeatures

Priority features
Hard deadline features

= completed
= blocked
= who is doing
this right now

(should be swarmed and kept


moving. Interrupt other work
and break WIP limits as
necessary)
(only if deadline is at risk)

Oldest features

Estimation & planning

69

Estimating is optional in Kanban


Scrum
Velocity = 11

4
2
Sprint 1

Sprint 2

Sprint 3

Sprint 4

Kanban
Long running task
WIP limit = 3

Henrik Kniberg

Long running task

70

Lightweight estimation techniques


T-shirt sizing
S

Hours?

M
Days?

Henrik Kniberg

SLA service level agreement

L
L

Example: SLA is 12 days


Can we do this item within 12 days?
If yes: just pull it in.
If no: reject it, or break it down, or
estimate/negotiate

Weeks?

71

Example: estimation paradox


Estimation is sometimes used to manage a problem that was caused by the estimation itself

Prestudies, estimation, resource allocation, approval

Develop, test, deploy

Process
8 days work
cycle
5 months cycle time= 9 % efficiency

5 month
cycle time

Scared of
commitment

Lots of
estimation &
prestudy
Henrik Kniberg

2 week
cycle time
Little or no
estimation &
prestudy

Little fear of
commitment

WIP limits
72

Using Kanban to visualize the problem

Henrik Kniberg

73

Metrics

74

Cumulative Flow Diagram


If we lower WIP limit from 6
to 2 in test we can probably
halve the cycle time!

Metrics
WIP (work in progress)
Analyze 3

Dev

Test

Deploy

Release
capacity
(velocity)

Last week we
released 8
things

Average
capacity during
Q1 was 6 story
points per week

Quality
Undecided
25%
Value
demand
15%

Failure
demand
60%

Henrik Kniberg

Item #25
took 7 days

Cycle time

Medium-sized MMFs
take < 8 days
95% of the time.

75

Misc patterns & Tips &


Tricks

76

Process = collection of policies


Visible on the board
Brief
Continuously renegotiated as needed
Created on-demand
Examples:
Definition of Done
What to do when WIP limit is exceeded
Who decides priorities
When do we do planning?
Which types of work items to we pull first
Service level agreements
Henrik Kniberg

77

2 tier board with feature swimlanes

Henrik Kniberg

Source: David Anderson

78

2 tier board-within-board

Henrik Kniberg

Source: David Anderson

79

Stopping dead projects

FLOW

Henrik Kniberg

Source: Mattias Skarin

80

Manager removing impediments


2 slots on managers door
If both are full, team can add
a new one if they remove a
less important one
Team decides when issue is
solved

Henrik Kniberg

Source: Mattias Skarin

81

Bootstrapping Kanban

82

Typical Scrum => Kanban evolution


Step 1

Step 2

Feature
team 1

Feature
team 2

Feature
team 2

Scrum

Scrum

Scrum

Feature
team 1
Scrum

Feature
team 2
Scrum

Step 3
Feature
team 2
Scrum

Operations / support team


Scrum

Henrik Kniberg

Feature
team 1
Scrum

Feature
team 2
Scrum

Feature
team 2
Scrum

Operations / support team


Kanban

83

Example: Kanbanizing a Scrum team

Before sprint

Henrik Kniberg

Sprint

After sprint

84

Kanban bootstrapping

1. Define your value stream


Which part do you intend to control?
Where is your input & output?
2. Define work item types Task Bug
3. Meet with upstream & downstream stakeholders
Policies, WIP limits
Input coordination
Output coordination
Target cycle time
(SLA service level agreement)

4. Create Kanban board


(+ optionally electronic system)

5. Agree on time for daily standup


6. Agree on when to do retrospectives / operations reviews
7. Go! Iteratively improve.
Henrik Kniberg

85

Wrapup

86

Recommendations
Visualize existing process first, then optimize.
Put the board in the team room
Focus on exposing problems
Keep the board clean & simple (just like your code...)
Dont try to get it perfect from start. Let it evolve.
Dont overuse metrics
Involve the team & managers & stakeholders
Take photos
Make policies & agreements explicit. Negotiate.
Consider getting a coach for Kanban bootstrapping

Henrik Kniberg

87

The Lean & Agile toolkit


Values & Principles

Lean, Agile, Theory of Constraints, Systems Thinking, etc

Kanban

XP

Other lean tools


(Value Stream Mapping,
Root Cause Analysis, etc)

Scrum

Henrik Kniberg

88

Perfection is a direction, not a place

Henrik Kniberg

89

Expand your toolkit!


www.crisp.se/utbildning
Kanban starting points on the web:
http://www.crisp.se/kanban
http://www.limitedwipsociety.com

Certified ScrumMaster & Kanban


Feb 17-19

Kanban Applied
Feb 23

Henrik Kniberg & Mattias Skarin

Leading Lean
Software Development
March 4-5

Tom & Mary Poppendieck & Henrik Kniberg

Kanban coaching workshop


April 29-31

David Anderson

Henrik Kniberg

90

Das könnte Ihnen auch gefallen