Agile and Seven Deadly Sins - Mike Cohn...®2003–2008 Mountain Goat Software ® Sin #1: Gluttony...

20
Agile and the Seven Deadly Sins of Project Management June 11, 2008 Mike Cohn ® © 2003–2008 Mountain Goat Software ® A cornucopia of agile processes Extreme Programming (XP) Scrum Crystal DSDM Lean software development Unbranded “agile” Agile Processes Feature-Driven Development (FDD) Unied Process OpenUP Semi-Agile Processes 1 2

Transcript of Agile and Seven Deadly Sins - Mike Cohn...®2003–2008 Mountain Goat Software ® Sin #1: Gluttony...

Agile and the Seven DeadlySins of Project Management

June 11, 2008

Mike Cohn

® © 2003–2008 Mountain Goat Software®

A cornucopia of agile processes

•Extreme Programming (XP)•Scrum•Crystal•DSDM•Lean software development•Unbranded “agile”

Agile Processes

•Feature-Driven Development (FDD)

•Unified Process•OpenUP

Semi-Agile Processes

1

2

® © 2003–2008 Mountain Goat Software®

A closer look at Scrum

• No specific engineering practices prescribed

• But many Scrum teams are adopting much of XP

• 2- to 4-week iterations called “sprints”

• Self-organizing, cross-functional teams

• Uses generative rules to create an agile environment

® © 2003–2008 Mountain Goat Software®

The Scrum project community

Programmer Programmer

DBA

Programmer

Tester

Tester

User ExperienceDesigner

Analyst

Defines whatto build and

in what orderProcess coachand Sheepdogfor the team

3

4

® © 2003–2008 Mountain Goat Software®

Scrum

Cancel

Gift wrap

Return

Sprint2-4 weeks

Return

Sprint goal

Sprint backlog

Potentially shippableproduct increment

Productbacklog

CouponsGift wrap

Coupons

Cancel

24 hours

® © 2003–2008 Mountain Goat Software®

Seven Sins of Project Management

5

6

® © 2003–2008 Mountain Goat Software®

Sin #1: Gluttony• Definition

• Fixing all dimensions (scope, schedule, resources, and quality) of a project

• A project management sin of excess

• Experienced as• Impossible schedules

• Death marches

• Leads to• Trying to do too much for the

resources (time, people) available

• Cutting quality to meet other goals

® © 2003–2008 Mountain Goat Software®

The iron triangle

Scop

e

Schedule

Resources

Quality

Which dimension

is best to adjust

to achieve

project success?

7

8

® © 2003–2008 Mountain Goat Software®

Timeboxes help avoid gluttony

• Agile iterations are timeboxed

• So the schedule of an iteration is fixed

• But the number of iterations is variable

• Focus is always on “what can we accomplish next?”

® © 2003–2008 Mountain Goat Software®

Timeboxed iterations increase predictability• Over time a team learns how much it can

complete per iteration (its “velocity”)

0

10

20

30

40

1 2 3 4 5 6 7 8 9Iterations

Velo

city

• Knowing this prevents the temptation to overcommit

9

10

® © 2003–2008 Mountain Goat Software®

What expectation of future velocity should this team set?

® © 2003–2008 Mountain Goat Software®

Sin #2: Lust• Definition

• Intense or unrestrained craving for features

• Experienced as

• Trying to put too many features into a product during the time allowed

• Treating all features as “critical”

• Leads to

• Overtime, reduced quality, surprises

11

12

® © 2003–2008 Mountain Goat Software®

Three ways agile deals with lust

® © 2003–2008 Mountain Goat Software®

~Kent Beck

“Overtime is a symptom of a serious problem on the project. The XP rule is simple–you can’t work a second week of overtime. For one week, fine, crank and put in some extra hours. If you come in on Monday and say ‘To meet our goals, we’ll have to work late again,’ then you already have a problem that can’t be solved by working more hours.”

13

14

® © 2003–2008 Mountain Goat Software®

Old habits die hard

NormalVelocity

Iterations

Velo

city

OvertimeVelocity

® © 2003–2008 Mountain Goat Software®

Sin #3: Sloth• Definition

• Failing to do high quality work at all times

• Experienced as

• Testing quality in at the end

• Instability during development

• Leads to

• Big delays

• Unpredictable schedules

15

16

® © 2003–2008 Mountain Goat Software®

Agile practices related to quality

® © 2003–2008 Mountain Goat Software®

Case Study 1

Cosmodemonic Biotech

3,000

1,400

9 12

540 54

58,000 51,000

120 840

17

18

® © 2003–2008 Mountain Goat Software®

Productivity (NCSS / month)

US average

Three years priorto introducing agile

First nine monthsafter starting agile

NCSS=Non-Comment Source Statment (Java)

Case Study 2

ePS

® © 2003–2008 Mountain Goat Software®

ePSDefects per KNCSS

Three years priorto introducing agile

First nine monthsafter starting agile

• Results achieved without any targeted rewrite of existing (buggy) code

• Many of the post-agile defects continued to be in the old code

• True results would be even better (if we had measured them)

But wait, there’s more...

19

20

® © 2003–2008 Mountain Goat Software®

Sin #4: Opaqueness• Definition

• Obscuring the progress, quality or other attribute of a project

• Experienced as

• Not knowing the true state of the project

• Leads to

• Surprises

• Poor decisions

® © 2003–2008 Mountain Goat Software®

Three types of opaqueness

• Don’t let bugs accumulate

• Continuous integration

• Features are either “Done” or “Not Done”

• Avoids the 90% Syndrome

21

22

® © 2003–2008 Mountain Goat Software®

A release burndown chartSt

ory

Poin

ts

Iterations

400

300

200

100

01 2 3 4 5

® © 2003–2008 Mountain Goat Software®

0

10

20

30

40

1 2 3 4 5 6 7 8 9Iterations

Mean (Worst 3) = 28

Mean (Last 8) = 33

Mean (Best 3) = 37

Velo

city

23

24

® © 2003–2008 Mountain Goat Software®

Predicting what will be in

At our long-term average we’ll finish here (5 33)

At our slowest velocity we’ll finish here (5 28)

At our best velocity we’ll finish here (5 37)

® © 2003–2008 Mountain Goat Software®

A Backlog Burndown Chart

0

100

200

300

400

1 2 3 4 5 6 7 8 9 10 11 12 13 14

...

25

26

® © 2003–2008 Mountain Goat Software®

Sin #5: Pride• Definition

• Believing that we know everything to build the product

• Experienced as

• A lack of stakeholder and user involvement

• Leads to

• Failure to solicit feedback

• Failure to learn

® © 2003–2008 Mountain Goat Software®

Sprint2-4 weeks

Return

Sprint goal

Sprint backlog

Potentially shippableproduct increment

Productbacklog

Gift wrap

Coupons

Cancel

24 hours

Where are opportunities for feedback?

27

28

® © 2003–2008 Mountain Goat Software®

Agile requirements

® © 2003–2008 Mountain Goat Software®

Progressive refinement

29

30

® © 2003–2008 Mountain Goat Software®

An example

® © 2003–2008 Mountain Goat Software®

Sin #6: Wastefulness• Definition

• Misuse of critical resources

• Experienced as

• Losses of creativity, motivation, and time

• Leads to

• Project malaise

• Delays

• Doing it the same way (again)

31

32

® © 2003–2008 Mountain Goat Software®

How agile handles waste

® © 2003–2008 Mountain Goat Software®

Months

Inte

nsity

Waterfall

Scrum

33

34

® © 2003–2008 Mountain Goat Software®

Salesforce.com

Source: Scrum Gathering, April 16, 2008

® © 2003–2008 Mountain Goat Software®

Sin #7: Myopia (Shortsightedness)• Definition

• Not seeing beyond your own work

• Experienced as

• Teams who don’t see the big picture

• Individuals who work only within their roles

• Leads to

• Unsuccessful products

• Delays

35

36

® © 2003–2008 Mountain Goat Software®

Seeing the forest and the trees at the same time

Release Plan

Iteration Plan

® © 2003–2008 Mountain Goat Software®

Cross-functional team

• All disciplines necessary to go from idea to implementation

• Improves creativity and ownership

• Whole team commitment

37

38

® © 2003–2008 Mountain Goat Software®

Is everyone a generalist?

Ferentino’sBruno’s

Screw that;

where’s

lunch?

Meconi’sOrder-taker

Key

Floater

Sandwich-maker

® © 2003–2008 Mountain Goat Software®

Mike [email protected]

(720) 890 6110 (office)(303) 810 2190 (mobile)

39

40