What to do when Scrum doesn’t work Agile India 2013
Henrik Kniberg Agile/Lean coach www.crisp.se
Split your organization
Scrum in a nutshell Split your product Large group spending a long time building a huge thing Small team spending a little time building a small thing ... but integrating regularly to see the whole
Optimize business value
Optimize process
$$$
Split time April
January $
Not checked out checked out
Done! :o) Deposit
SPRINT GOAL: Beta-‐ready release!
Write failing test
Burndown
2d
DAO
Code p cleanu
1d
GUI spec 2d
Migration tool
Tapestry spike
1d
Impl. migration 8d
Backoffice Login Integr. with JBoss 2d
Impl GUI
Backoffice User admin GUI design (CSS) 1d
Henrik Kniberg
Write failing test 2d
Clarify requirements 2d
1d
Write failing test 3d
Integr test 2d 0.5d
DB design 2d 1d
Write failing 2d test 3d 1d
2d
Unplanned items Fix memo ry leak Write (JIR 2d A 125) failing test
Sales support 3d
Write whitepaper
Next Withdraw Perf test W ithdraw
4d Impl GUI
6d
2
Poll
?
! Have you been in involved in a Scrum project? ! Have you seen cases where the general opinion was ”Scrum isn’t working for us”
Henrik Kniberg
3
Diagnoses
1. Using the process wrong 2. Blaming the messenger 3. Being impatient 4. Not adapting the process 5. Using the wrong process Henrik Kniberg
4
Diagnosis 1 1. Using the process wrong 2. Blaming the messenger 3. Being impatient 4. Not adapting the process 5. Using the wrong process
Henrik Kniberg
5
Any tool can be misused The old tool was better!
Don’t blame the tool! 6
Henrik Kniberg
6
Scrum misuse example 1
Burndown
Where is your burndown chart?
We’ve stopped using those Why? They were demotivating to the team
Henrik Kniberg
7
Scrum misuse example 2 Scrum didn’t work for us Why? Too much time in meetings. For example sprint planning meetings. How long did a sprint planning meeting take?
Henrik Kniberg
Days
8
Poll !   Have you seen Scrum being misused?
Henrik Kniberg
? 9
Diagnosis 2 1. Using the process wrong 2. Blaming the messenger 3. Being impatient 4. Not adapting the process 5. Using the wrong process
Henrik Kniberg
10
Exposing a problem‌.
11
Example – Scrum as the messenger We had to cancel the project Why?
After 2 sprints it was evident that the project would take way too long
Henrik Kniberg
12
Another example of Scrum as the messenger Backlog = 230 points Velocity = 10 points/sprint Fixed scope
23 sprints
> 1 year until release! Likely release
Promised release
Delivered story points
250
200
Wishful thinking
150
Realistic best-case Realistic worst-case
100
50
Q1
2007
Henrik Kniberg
Q2
Q3
Q4
Q1
Q2
2008 13
Poll ! Were any of your ”failures” actually just existing problems being exposed by Scrum? ! Was Scrum blamed for this?
Henrik Kniberg
? 14
Key point
When a problem is exposed by Scrum, focus on the problem - not Scrum. Henrik Kniberg
15
Diagnosis 3 1. Using the process wrong 2. Blaming the messenger 3. Being impatient 4. Not adapting the process 5. Using the wrong process
Henrik Kniberg
16
Blisters
Henrik Kniberg
17
Altitude sickness
Henrik Kniberg
18
Satir model
Current performance
”the middle always looks like failure”
Anticipated path
New performance
Performance
Actual path ”chaos”
Time
Henrik Kniberg
19
Poll ! Were any of your ”failures” caused by not sticking with Scrum long enough to see it work?
Henrik Kniberg
? 20
Key point
Don’t give up after the first sprint (the first sprint is usually chaos)
Henrik Kniberg
21
Beware of Bad Rhetoric
Henrik Kniberg
22
Scrumdamentalism
Scrumdamentalism (n) The mistaken belief that Pure Scrum always is the right solution.
Henrik Kniberg
23
Scrumdamentalism – example 1 Our Scrum project failed You must have been doing Scrum wrong
”Rain dance rhetoric”
Logical transposition
A => B ’B => ’A Henrik Kniberg
[project failure] => [doing scrum wrong] [doing scrum right] => [project success]
24
Scrumdementalism – example 2 When should I use Scrum? Only use Scrum if you want to succeed
Henrik Kniberg
25
Waterfallitis
Waterfallitis (n)
(a.k.a. Waterfall obsession syndrome)
The mistaken assumption that everything that isn’t Scrum is Waterfall. And that Waterfall always fails.
Henrik Kniberg
26
Toyota
Every time you ride a Toyota, you place your life in the hands of Waterfall-developed software. You’ve survived so far! Henrik Kniberg
27
Waterfall @ Toyota … but they are trying to get away from it
Requirements
Acceptance test
System design
System test
Architecture
Integration test
Module design
Unit test Coding
Henrik Kniberg
Source: We visited Toyota in Japan during our ”Lean Study Tour”, April 2009.
28
Sadoscrumism
Sadoscrumism (n) The mistaken assumption that pain triggered by Scrum is always a �good kind of pain�
Henrik Kniberg
29
Sadoscrumism - example 2 week sprints are too short for us! Try 1 week sprints then. After that, 2 weeks will feel long
Henrik Kniberg
30
Schlum™ - a new process framework Values • Success • Glory
Practices • Do the right thing • Don’t do the wrong thing Schlum always works! How can you know that? Because if it doesn’t work, then you obviously weren’t following the process!
Henrik Kniberg
31
Poll ! Have you ever been subjected to Bad Rhetoric about Scrum? ! Have you ever subjected others to Bad Rhetoric about Scrum?
Henrik Kniberg
? 32
Key point
Avoid Bad Rhetoric. Challenge it when you hear it.
Henrik Kniberg
33
Use root cause analysis
Henrik Kniberg
34
Real-life example What is the problem?
Problem Crashing demos
A
causes
B Bad code quality
(etc) (etc) (etc)
Lack of test automation
No pair programming
Why?
Our problem is that we’re failing to do XP practices like TDD and pair programming. Henrik Kniberg
Really?
35
Key point
Identify the real problem. Scrum/XP is not it.
Henrik Kniberg
36
Real-life example
Not pair programming
Why?
What is causing the problem? Fear of failure
No �proof� that pair programming works No experience of pair programming No time to experiment No slack
Root Cause
Push instead of pull Lack of trust
Henrik Kniberg
37
Real-life example The big picture A
causes
B
Problem Crashing demos
Bad code quality
(etc) (etc) (etc)
Root Cause
Henrik Kniberg
Lack of test automation
No pair programming
Lack of trust
38
Key point
Identify the root cause
Henrik Kniberg
39
Solve root causes, not symptoms Bail water Water in boat
Fix hole
Hole in boat
Henrik Kniberg
40
Poll ! Have you seen examples of organizations focusing on ”bailing water” rather than ”fixing the hole”?
Henrik Kniberg
? 41
Useful tools for ensuring that you solve the right problem Cause-effect diagrams
www.crisp.se/henrik.kniberg/cause-effect-diagrams.pdf
Henrik Kniberg
A3 problem solving
www.crisp.se/lean/a3-template
42
Diagnosis 4 1. Using the process wrong 2. Blaming the messenger 3. Being impatient 4. Not adapting the process 5. Using the wrong process
Henrik Kniberg
43
Example: Ditching Scrum for the wrong reason We stopped using Scrum Why?
You can still do Scrum without that stuff! Henrik Kniberg
Too much estimating. Who cares if task X has 4 or 6 hours left? That’s micromanagement!
44
Choose your flavor of estimation Tasks
Features
Also OK in Scrum
1. Don’t estimate features. Just count them. 1. Skip tasks
2. Don’t estimate tasks. Just count them.
2. Estimate features in t-shirt size
M
S
S
L
Hours?
M
L
Days? Weeks?
3. Estimate features in story points
1sp
2sp
5sp
4. Estimate features in ideal man-days
1d
3d
Henrik Kniberg
6d
3. Estimate tasks in days 0.5d
2d
1d
”Typical” Scrum
4. Estimate tasks in hours 4h
8h
12h
45
Don’t be a Scrum Zombie
Yesterday I zoodled Today I will zoodle No problems
I zoodled Yesterdaywill zoodle Today I s No problem
Yesterday I zoodled Today I will zoodle No problems
I zoodled Yesterdaywill zoodle Today I s No problem
Yesterday I zoodled Today I will zoodle No problems
zoodled I y a d r e Yest ill zoodle Today I w ms No proble
I zoodled y a d r e t s Ye ill zoodle Today I w lems No prob
d y I zoodle Yesterda ill zoodle w I Today ms No proble
I zoodled Yesterdaywill zoodle Today I s No problem
I zoodled Yesterdaywill zoodle Today I s No problem
Yester da Today y I zoodled I will No prob zoodle lems
Henrik Kniberg
I zoodled Yesterdaywill zoodle Today I s No problem
Yester d Today ay I zoodle d I wi l No pr l zoodle oblem s
d y I zoodle Yesterda l zoodle il Today I w ms ble ro p No I zoodled Yesterdaywill zoodle Today I s No problem
46
If something you do doesn’t work… ! Try again. Do it the same way one more time Still doesn’t work? • Try some different ways of doing it. Still doesn’t work? • Stop doing it entirely.
Henrik Kniberg
47
Poll !   Have you seen Scrum being abandoned when it could have been adapted?
Henrik Kniberg
? 48
Key point
Evolve your own dialect of Scrum Don’t keep doing exactly what the books say
Henrik Kniberg
49
Diagnosis 5 1. Using the process wrong 2. Blaming the messenger 3. Being impatient 4. Not adapting the process 5. Using the wrong process
Henrik Kniberg
50
Distinguish between... Using the tool wrong
Using the wrong tool
Neither of these problems are caused by the tool
Henrik Kniberg
51
51
Don’t blame the tool
Key point
• Scrum doesn’t succeed or fail, people do. • People choose where, when, how, and why to use Scrum.
Henrik Kniberg
52
What’s wrong with this question? Our problem is that we can’t figure out how to do Scrum in operations
• Assumes that Scrum is the right tool for this context • Implies that Scrum is a goal Identify the real problem & find the root cause
Henrik Kniberg
53
When is Daily Scrum a bad idea?
Henrik Kniberg
54
When are Sprints a bad idea? Sprint = timeboxed, fixed-commitment iteration week 1
week 2
week 3
Sprint 1 Plan & commit
Henrik Kniberg
Review (release?)
week 4
week 5
week 6
week 7
week 8
Sprint 2 Retrospective
55
Example: Middle of sprint 1 I’d like to have E! PO
To Do
E
Doing
Wait until next sprint!
Done
A B C
D
Henrik Kniberg
56
Example: Sprint 1 retrospective
PO
New policies: • Max 1 item in progress • Allow To Do items to be swapped out
Henrik Kniberg
57
Example: Middle of sprint 2
Policy • Max 1 item in progress • Allow To Do items to be swapped out
I’d like to have J! PO
To Do
J
Done
E
OK, swap out G or H or wait until next sprint!
Doing 1
F G
H
Is this still Scrum? Henrik Kniberg
58
Example: Sprint 2 retrospective
PO
New policies: • Max 1 item in progress • Allow To Do items to be swapped out • Max 2 items in To Do • To Do items can be added at any time (as long as limit isn’t exceeded) Henrik Kniberg
59
Example: A few weeks later I’d like to have P! PO
Process changes: • Max 1 item in progress • Allow To Do items to be swapped out • Max 2 items in To Do • To Do items can be added at any time (as long as limit isn’t exceeded)
To Do 2
P
Done
K
OK, swap out M or N or wait until there is space in To Do
Doing 1
L M
N
Is this still Scrum? Henrik Kniberg
60
Sprints are a bad idea when the alternatives are better Sprints
week 1
week 2
week 3
week 4
Sprint 1 Plan & commit
Separate cadences
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)
Event-driven Retrospectives (4w) Planning (on demand) Release (on demand)
Henrik Kniberg
61
Poll !   Have you seen a context where Sprints are not the best alternative?
Henrik Kniberg
? 62
Scrum practices aren’t the only way to be agile
Key point
Scrum practices aren’t the only way to implement Scrum values There’s nothing about iterations in the Agile Manifesto Henrik Kniberg
63
Case study Situation Broken Scrum • 1-2 year release cycle • No definition of done • Each backlog item split across several component teams
Story A Afront
Aback
Front-end team
Back-end team
Alternatives Alternative 1 Keep doing Broken Scrum
Henrik Kniberg
Alternative 2 Do Scrum Right • Backlog items small enough to finish in a sprint • Shippable software each sprint • Feature teams
Alternative 3 Kanban • Combine the teams • Separate cadences • Visualize whole value stream • Limit WIP
64
Sometimes it is not appropriate to force-fit backlog items into a sprint Sprints: all backlog items must start & finish within a sprint
Sprint 1
Sprint 2
Sprint 3
Sprint 4
Alternative: Combine big feature development with support/maintenance Long running feature WIP limit = 3
Henrik Kniberg
Long running feature
65
Initial Kanban board Definition of Done for each column
Downstream processes (test & prod) being starved
Henrik Kniberg
66
Kanban board a few weeks later Product Backlog was bottleneck. Added ”Analyze” section to board. Teams self-organize to help PO create stories.
Still lots of queues & WIP
Henrik Kniberg
67
Kanban board a few months later
Henrik Kniberg
Emergent behaviour: • Less WIP • Organic feature teams • Balanced workload • Improved collaboration • Improved quality • Improved motivation
68
Key point
Sometimes the best solution is to stop using Scrum
Henrik Kniberg
69
ScrumBut
Henrik Kniberg
70
Don’t be dogmatic Go away! Don’t talk to us! We’re in a Sprint. Come back in 3 weeks.
Henrik Kniberg
Though Shalt Use Pure Scrum
71
Shu-Ha-Ri stages of learning
! Shu = follow the rules ! Ha = change the rules ! Ri = never mind the rules Scrumbutophobia (n) See also: Scrumdamentalism
Fear of doing Scrum wrong Symptom: Stuck in Shu Henrik Kniberg
72
Confession of a Scrum Butist ”Hello, my name is <name>, I am a Scrum Butist” ”I am not afraid of Scrum But” ! Sometimes Scrum But is a problem ! Sometimes Scrum But is a stepping stone ! Sometimes Scrum But is a solution
Henrik Kniberg
73
SCRUMBUT
Henrik Kniberg
74
Oath of non-allegiance http://alistair.cockburn.us/Oath+of+Non-Allegiance
I promise not to exclude from consideration any idea based on its source, but to consider ideas across schools and heritages in order to find the ones that best suit the current situation.
Henrik Kniberg
75
Wrapup
Henrik Kniberg
76
What to do if Scrum doesnâ&#x20AC;&#x2122;t <appear to> work: Do root cause analysis Diagnosis
Action
Using the process wrong
Use it right
Blaming the messenger
Fix the problem, not Scrum
Being impatient
Keep going
Not adapting the process
Adapt it
Using the wrong process
Try another one
Henrik Kniberg
77
Perfection is a direction, not a place Scrumptious (adj)
http://www.thefreedictionary.com/scrumptious
Splendid, Very Pleasing
Henrik Kniberg
78