Kanban - Jfokus

Transcription

Kanban - Jfokus
Kanban
A Lean approach to Agile software development
JFokus
January 26, 2010
Henrik Kniberg
Agile/Lean coach
www.crisp.se
Board of
directors
[email protected]
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
2
Exercise
Flow
3
Watch the baton, not the runner!
Henrik Kniberg
4
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
5
Minimize cycle time
Watch the baton!
Competitive advantage
Detect defects earlier
Less time for change to happen
Henrik Kniberg
6
Problem: Invisible baton
Team 1
Team 2
Managers who don’t know how to
measure what they want
settle for
wanting what they can measure
Russel Ackoff
Henrik Kniberg
7
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
8
Queuing theory: Little’s law
Smaller batch size => faster cycle time
Little’s law
Total Cycle Time =
2 liters per second
slow
Henrik Kniberg
Number of Things in Process
Average completion rate
2 liters per second
Fast
9
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
Little’s 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
P
T
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
I’m fast!
We’re slow!
6 months
Joe
Dave
Lisa
Done!
3 months
We’re alot faster!
Joe
I’m 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 don’t know how to
measure what they want
settle for
wanting what they can measure
Russel Ackoff
Henrik Kniberg
15
It’s hard to optimize something that you can’t 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
2
Dev
In production :o)
3
Ongoing
Done
B
G
C
F
H
J
M
D
I
L
K
Henrik Kniberg
E
36
Scenario 1 – one piece flow
Next
Backlog
2
Ongoing
Done
B
C
F
H
M
In production :o)
3
A
G
J
Dev
D
I
L
K
Henrik Kniberg
E
37
Scenario 1 – one piece flow
Backlog
2
Ongoing
Done
B
C
F
H
M
In production :o)
3
A
G
J
Dev
Next
D
I
L
K
Henrik Kniberg
E
38
Scenario 1 – one piece flow
Dev
Next
Backlog
2
Ongoing
C
G
D
In production :o)
3
Done
A
B
F
H
J
M
I
L
K
Henrik Kniberg
E
39
Scenario 1 – one piece flow.
Dev
Next
Backlog
2
In production :o)
3
Ongoing
Done
C
G
D
A
B
F
H
J
M
I
L
K
Henrik Kniberg
E
40
Scenario 2 – Deployment problem
Next
Backlog
PO
A
2
Dev
In production :o)
3
Ongoing
Done
B
G
C
F
H
J
M
D
I
L
K
Henrik Kniberg
E
41
Scenario 2 – Deployment problem
Next
Backlog
2
PO
Ongoing
Done
B
C
F
H
M
In production :o)
3
A
G
J
Dev
D
I
L
K
Henrik Kniberg
E
42
Scenario 2 – Deployment problem
Dev
Next
Backlog
PO
G
2
In production :o)
3
Ongoing
C
A
D
B
Done
F
H
J
M
I
L
K
Henrik Kniberg
E
43
Scenario 2 – Deployment problem
Dev
Next
Backlog
PO
2
Ongoing
C
G
D
In production :o)
3
Done
A
B
F
H
J
M
I
L
K
Henrik Kniberg
E
44
Scenario 2 – Deployment problem
Backlog
PO
2
G
D
F
H
J
M
Dev
Next
In production :o)
3
Ongoing
Done
C
A
!?
B
I
L
K
Henrik Kniberg
E
45
Scenario 2 – Deployment problem
Backlog
PO
2
F
H
M
In production :o)
3
Ongoing
!?
G
J
Dev
Nexet
Done
A
D
B
E
C
I
L
K
Henrik Kniberg
46
Scenario 2 – Deployment problem
Next
Backlog
PO
2
F
H
M
In production :o)
3
Ongoing
Done
A
G
J
Dev
D
B
E
C
I
L
K
Henrik Kniberg
47
Scenario 2 – Deployment problem
Next
Backlog
PO
2
Dev
In production :o)
3
Ongoing
Done
A
G
D
F
H
J
M
E
B
C
I
L
K
Henrik Kniberg
48
Scenario 2 – Deployment problem
Backlog
PO
In production :o)
3
Ongoing
Done
H
A
B
E
F
M
2
D
G
J
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
3
Dev
2
Test
2
Integrate Deploy
3
3
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 I’m
not so good at it.
Test
DB
Web
Java
Domain
CM
I don’t know CM
at all. But I’m
willing to learn!
I’m good at Java!
Lisa
Joe
Fred
Jenny
David
Erik
Henrik Kniberg
54
Kanban allows both
specialists & generalists
Backlog
3
orem ipsum dolor
sit amet, co nse
ctetur
Design
2
Fold
2
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
Tape
1
Trim
4
3
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
3
Dev
Test
2
2
Integrate Deploy
3
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
3
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
1
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
2
Done
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
Zzzzzzzzz
To do
Doing
5
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
1
4
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
S
Hours?
M
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
4
Test
6
Deploy
Release
capacity
(velocity)
Last week we
released 8
things
3
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 manager’s 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...)
Don’t try to get it perfect from start. Let it evolve.
Don’t 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

Similar documents