What to do when scrum doesnt work

Page 1

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’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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.