Upload
nguyenkiet
View
232
Download
0
Embed Size (px)
Citation preview
Kanban vs Scrum
Henrik Kniberg - Crisp ABAgile coach & Java guy
Cofounder / CTO of Goyada (mobile services)
Deep Lean, StockholmMay 19, 2009
A practical guide
Cofounder / CTO of Goyada (mobile services)30 developers
Lead architect at Ace Interactive (gaming)20 developers
Chief of development at Tain (gaming)40 developers
Agile coach at various companies
[email protected]+46 70 4925284
Introduction
Purpose of this presentation:
Clarify Kanban and Scrum by comparing them
...so you can figure out how these may come to usein your environment.
2
in your environment.
Henrik Kniberg 2
Scrum in a nutshell
Split your organization
Split your product
Optimize business valueOptimize process
Large group spending a long time building a big thingSmall team spending a little time building small thing
... but integrating regularly to see the whole
3Henrik Kniberg 3
January April
Split time
$
$$$
Kanban in a nutshell
Visualize the workflow
Limit WIP (work in progress)
Measure & optimize flow
To do Dev Release
H C
2Test
35Done!
3
D
G
K
A
B
FLOWFLOW
4Henrik Kniberg 4
Buyer Supplier
Roots of Kanban(Toyota)
ReceiveConsume Detach Ship Allocate Manufacture
看板”Visual Card”
Kan Ban
5Henrik Kniberg 5
ReceiveConsume Detach Ship Allocate Manufacture
Taiichi OhnoFather of the Toyota Production System
The two pillars of the Toyota production system are just-in-time and automation with a human touch, or autonomation.The tool used to operate the system is kanban.
Kanban in software development
6Henrik Kniberg 6
Kanban and Scrum are both process tools
Product Owner role
Physical tools Process toolsa.k.a. ”organizational patterns”
7Henrik Kniberg 7
Brownbag meetings
Pair programming
More prescriptive More adaptive
Prescriptive vs adaptive
XP
(13)
Scrum
(9)
Kanban
(3)
Do Whatever
(0)
RUP
(120+)• Architecture Reviewer• Business Designer• Business-Model Reviewer• Business-Process Analyst• Capsule Designer• Change Control Manager• Code Reviewer• Configuration Manager• Course Developer• Database Designer• Deployment Manager• Design Reviewer• Designer• Graphic Artist• Implementer
• Whole team• Coding standard• TDD• Collective ownership• Customer tests• Pair programming• Refactoring• Planning game• Continuous integration• Simple design• Sustainable pace• Metaphor• Small releases
• Scrum Master• Product Owner• Team• Sprint planning meeting• Daily Scrum• Sprint review• Product backlogt• Sprint backlog• BUrndown chart
• Visualize the workflow• Limit WIP• Measure and optimize lead time
• Business use case realization• Business use-case model• Business vision• Change request• Configuration audit findings• Configuration management plan• Data model• Deployment model• Deployment plan• Design guidelines• Design model• Development case• Development-organization
assessment• End-user support mateirla
8Henrik Kniberg 8
• Implementer• Integrator• Process Engineer• Project Manager• Project Reviewer• Requirements Reviewer• Requirements Specifier• Software Architect• Stakeholder• System Administrator• System Analyst• Technical Writer• Test Analyst• Test Designer• Test Manager• Tester• Tool Specialist• User-Interface Designer• Architectural analysis• Assess Viability of architectural
proof-of-concept• Capsule design• Class design• Construct architectural proof-of-
concept• Database design• Describe distribution• Describe the run-time architecture• Design test packages and classes• Develop design guidelines• Develop programming guidelines• Identify design elements• Identify design mechanisms• Incorporate design elements• Prioritize use cases• Review the architecture• Review the design• Structure the implementation
model• Subsystem design• Use-case analysis• Use-case design• Analysis model• Architectural proof-of-concept• Bill of materials• Business architecture document• Business case• Business glossary• Business modeling guidelines• Business object model• Business rules• Business use case
Miyamoto Musashi17th century samurai
Do not develop an attachmentto any one weaponor any one school of fighting
• End-user support mateirla• Glossary• Implementation model• Installation artifacts• Integration build plan• Issues list• Iteration assessment• Iteration plan• Manual styleguide• Programming guidelines• Quality assurance plan• Reference architecture• Release notes• Requirements attributes• Requirements
management plan• Review record• Risk list• Risk management plan• Software architecture
document• Software development
plan• Software requirements
specification• Stakeholder requests• Status assessment• Supplementary business
specification• Supplementary specification• Target organization assessment• Test automation architecture• Test cases• Test environment configuration• Test evaluation summary• Test guidelines• Test ideas list• Test interface specification• Test plan• Test suite• Tool guidelines• Training materials• Use case model• Use case package• Use-case modeling guidelines• Use-case realization• Use-case storyboard• User-interface guidelines• User-interface prototype• Vision• Work order• Workload analysis model
Scrum prescribes roles
POSM
9Henrik Kniberg 9
Scrum prescribes iterationsScrum team
week 1 week 2 week 3 week 4 week 5 week 6 week 7 week 8
Sprint 1
Plan & commit Demo(release?)
Kanban team 1
Kanban team 2 week 1 week 2 week 3 week 4 week 5 week 6 week 7 week 8
Planning cadence (2w)
Sprint 2
Retrospective
Retrospectives (4w)
10Henrik Kniberg
Planning cadence (2w)
Release cadence (1w)
Kanban team 3 week 1 week 2 week 3 week 4 week 5 week 6 week 7 week 8
Planning (on demand)
Release (on demand)
Retrospectives (4w)
Both limit WIP, but in different ways
To do Ongoing Done :o)
B
C
A
To do Ongoing Done :o)
B
C
A
2
Scrum board Kanban board
11Henrik Kniberg 11
C
D
FLOWFLOW
C
D
FLOWFLOW
WIP limited per unit of time
(iteration)
WIP limited per workflow state
Both are empirical
Capacity(aka velocity)
Lead time(aka cycle time)
Quality(defect rate, etc)
Predictability(SLA fulfillment, etc)
Kanban is more configurable
12Henrik Kniberg 12
Many small teams Few large teams
Low WIP limits High WIP limits
Few workflow states Many workflow states
Short iterations Long iterations
Little planning Lots of planning
.... etc ... .... etc ...
Kanban is more configurable
Great! More options! Oh no, more complicated!
ZZZZzzzzzz
Example: Experimenting with WIP limits
To do Ongoing Done :o)
BC A
D
1To do Ongoing Done :o)
C
D
A
E
8
EF
F
G
To do Ongoing Done :o)
DE
A
F
8
G
To do Ongoing Done :o)
E
J
8
K
LF
I
B B
C
AB
C
H
I
Monday, Week 1 Monday, Week 2
We’re idle & bored! Let’s increase WIP
Problem with integration server.
Monday, Week 3 Monday, Week 4
13Henrik Kniberg 13
K
To do Ongoing Done :o)
L
M
JN
4
OP
K
Let’s increase WIP limit to 8!
integration server. Can’t finish D & E!We’ll work on F & G
instead! Oops. WIP limit reached. Now we HAVE to stop and fix the integration
server!
Let’s reduce WIP limit to 4, so we react earlier next
time!
Monday, Week 5
Scrum doesn’t allow changein mid-iteration
To do Ongoing Done :o)
C A
To do Ongoing Done :o)
C A
2
Scrum Kanban
2
PO
I’d like to have E!
Wait until next sprint!
Wait until a To Do slot becomes available!Or swap out C or D!
14Henrik Kniberg 14
B
C A
D
FLOWFLOW
B
C A
D
FLOWFLOW
Scrum board is reset between each iteration
ScrumFirst day of sprint Mid-sprint Last day of sprint
15Henrik Kniberg 15
KanbanAny day
Scrum prescribes cross-functional teams
Scrum Kanban – example 1 Kanban – example 2
16Henrik Kniberg 16
Cross-functionalteam
Cross-functionalteam
Cross-functionalteam
Specialistteam
Specialist
Scrum backlog items must fit in a sprint
Sprint 1 Sprint 2 Sprint 3 Sprint 4
Scrum
Kanban
17Henrik Kniberg 17
Long running task
Long running task
Kanban
WIP limit = 3
In Scrum, estimation and velocity is prescribed
Sprint 1 Sprint 2 Sprint 3
Likely velocity: 8 per sprint(sustainable pace?)
2
2 3
1 2
31 1 2 2 1
1 1 2
V= 8 V= 7 V= 9
18Henrik Kniberg 18
Sprint 1 Sprint 2 Sprint 3
Both allow working on multiple products simultaneously
Green ProductGreen team
Yellow ProductYellow team
Scrum example 1 Kanban example 1Color-coded tasks
19Henrik Kniberg 19
All products Cross-product team Cross-product team
Scrum example 2 Scrum example 3
All products
Kanban example 2Color-coded swimlanes
Both are Leanand Agile
1. Base your management decisions on a Long-Term Philosophy, Even at the Expense of Short-Term Financial Goals
2. Create Continuous Process Flow to Bring Problems to the Surface
3. Use Pull Systems to Avoid Overproduction
4. Level Out the Workload (Heijunka)
5. Build a Culture of Stopping to Fix Problems, to Get Quality Right the First Time
6. Standardized Tasks are the Foundation for Continuous Improvement and Employee Empowerment
7. Use Visual Controls So No Problems are Hidden
8. Use Only Reliable, Thoroughly Tested Technology That Serves Your People and Processes
9. Grow Leaders Who Thoroughly Understand the Work, Live the Philosophy, and Teach It to Others
10. Develop Exceptional People and Teams Who Follow Your Company’s Philosophy
11. Respect Your Extended Network of Partners and Suppliers by Challenging Them and Helping Them Improve
12. Go and See for Yourself to Thoroughly Understand the Situation (Genchi Genbutsu)
13. Make Decisions Slowly by Concensus, Thoroughly Considering All Options;
1. Individuals and Interactionsover Processes and Tools
2. Working Softwareover Comprehensive Documentation
3. Customer Collaborationover Contract Negotiation
4. Responding to Changeover Following a Plan
20
13. Make Decisions Slowly by Concensus, Thoroughly Considering All Options; Implement Decisions Rapidly
14. Become a Learning Organization Through Relentless Reflection (Hansei) and Continuous Improvement (Kaizen)
Henrik Kniberg 20
over Following a Plan
LeanQuality – Cost – Lead Time
Operational stability
Waste reduction
Kaizen
People
Just in Time
Stop the Line
Minor difference:Scrum prescribes a prioritized product backlog
Scrum:
Product backlog must exist
Changes to product backlog take effect next sprint (not current sprint)
Product backlog must be
Kanban:
Product backlog is optional
Changes to product backlog take effect as soon as capacity becomes available
Any prioritization scheme can be used. For example:
21
Product backlog must be sorted by business value
Henrik Kniberg 21
be used. For example:Take any item
Always take the top item
Always take the oldest item
20% on maintainance items,80% on new features
Split capacity evenly between product A and product B
Always take red items first
... but many teams combine these approaches
Minor difference:Scrum prescribes daily meetings
22Henrik Kniberg 22
... but many Kanban teams do that anyway.
Minor difference:In Scrum, burndown charts are prescribed
No specific types of diagrams prescribed in Kanban. Teams use whatever they need.
23Henrik Kniberg 23
Example: Scrum board vs Kanban board
Committed Ongoing Done :o)
B
C
A
D
Sprint backlog
E
F
G
H
E
F
G
H IJ L
KM
Product
backlog
Scrum
Kanban
24Henrik Kniberg 24
SelectedDev
Done
B
C
AD
EF
GH IJ L
KM
Backlog 32
In production :o)Ongoing
XR
Q
Kanban
SelectedDev
Done
Backlog 32
In production :o)
Ongoing
Scenario 1 – one piece flow
B
C
A
G
25Henrik Kniberg 25
C
D
E
F
H I
J L
KM
SelectedDev
Done
Backlog 32
In production :o)
Ongoing
Scenario 1 – one piece flow
BC
AG
26Henrik Kniberg 26
BC
D
E
F
H I
J L
KM
SelectedDev
Done
Backlog 32
In production :o)
Ongoing
Scenario 1 – one piece flow
BC
AG
27Henrik Kniberg 27
BC
D
E
F
H I
J L
KM
SelectedDev
Done
Backlog 32
In production :o)
Ongoing
Scenario 1 – one piece flow
B
C A
D
G
28Henrik Kniberg 28
BD
E
F
H I
J L
KM
SelectedDev
Done
Backlog 32
In production :o)
Ongoing
Scenario 1 – one piece flow
B
C A
D
G
29Henrik Kniberg 29
BD
E
F
H I
J L
KM
SelectedDev
Done
Backlog 32
In production :o)
Ongoing
Scenario 1 – one piece flow
B
C AD
E
FG
30Henrik Kniberg 30
BE
H I
J L
KM
SelectedDev
Done
Backlog 32
In production :o)
Ongoing
Scenario 2 – Deployment problem
B
C
A
G
31Henrik Kniberg 31
C
D
E
F
H I
J L
KM
SelectedDev
Done
Backlog 32
In production :o)
Ongoing
Scenario 2 – Deployment problem
BC
AG
32Henrik Kniberg 32
BC
D
E
F
H I
J L
KM
SelectedDev
Done
Backlog 32
In production :o)
Ongoing
Scenario 2 – Deployment problem
B
C A
D
G
33Henrik Kniberg 33
BD
E
F
H I
J L
KM
SelectedDev
Done
Backlog 32
In production :o)
Ongoing
Scenario 2 – Deployment problem
B
C A
D
G
34Henrik Kniberg 34
BD
E
F
H I
J L
KM
SelectedDev
Done
Backlog 32
In production :o)
Ongoing
Scenario 2 – Deployment problem
B
C A
D
G
!?
35Henrik Kniberg 35
BD
F
H I
J L
KM
!?
E
SelectedDev
Done
Backlog 32
In production :o)
Ongoing
Scenario 2 – Deployment problem
B
A
D
G !?
36Henrik Kniberg 36
B
C
D
EF
H I
J L
KM
SelectedDev
Done
Backlog 32
In production :o)
Ongoing
Scenario 2 – Deployment problem
B
A
D
G
37Henrik Kniberg 37
B
C
D
EF
H I
J L
KM
SelectedDev
Done
Backlog 32
In production :o)
Ongoing
Scenario 2 – Deployment problem
B
A
D
G
38Henrik Kniberg 38
BD
EF
H I
J L
KM
C
SelectedDev
Done
Backlog 32
In production :o)
Ongoing
Scenario 2 – Deployment problem
B
ADG
39Henrik Kniberg 39
BE
F
H I
J L
KM
C
Kanban vs ScrumSummary
Both are Lean and Agile
Both based on pull scheduling
Both limit WIP
Both use transparency to drive process improvement
Both focus on delivering releasable software early and often
Both are based on self-organizing teams
Both require breaking the work into
Scrum KanbanTimeboxed iterations prescribed. Timeboxed iterations optional.
Team commits to a specific amount
of work for this iteration.
Commitment optional.
Uses Velocity as default metric for
planning and process improvement.
Uses Lead time as default metric for
planning and process improvement.
Cross-functional teams
prescribed.
Cross-functional teams optional.
Specialist teams allowed.
Items broken down so they can be No particular item size is prescribed.
Differences
www.crisp.se/henrik.kniberg/kanban-vs-scrum.pdf
Similarities
40
Both require breaking the work into pieces
In both cases the release plan is continuously optimized based on empirical data (velocity / lead time)
Henrik Kniberg 40
Items broken down so they can be
completed within 1 sprint.
No particular item size is prescribed.
Burndown chart prescribed No particular type of diagram is
prescribed
WIP limited indirectly (per sprint) WIP limited directly (per workflow
state)
Estimation prescribed Estimation optional
Cannot add items to ongoing
iteration.
Can add new items whenever
capacity is available
A sprint backlog is owned by one
specific team
A kanban board may be shared
by multiple teams or individuals
Prescribes 3 roles (PO/SM/Team) Doesn’t prescribe any roles
A Scrum board is reset between
each sprint
A kanban board is persistent
Prescribes a prioritized product
backlog
Prioritization is optional.
Most importantly:Start with retrospectives!
Evolve the right process for your context.
Don’t worry about getting it right from the start.
41Henrik Kniberg 41
start.
Expand your toolkit.
Experiment!