Agile and the Seven Sins of Project Management

Post on 01-Nov-2014

841 views 1 download

Tags:

description

 

transcript

Agile and the Seven DeadlySins of Project Management

April 19, 2011

Mike Cohn

1

® © 2008–2011 Mountain Goat Software®

Mike Cohn - background

•Founding member and director of Agile Alliance and Scrum Alliance•Founder of Mountain Goat Software•Ran my first Scrum project in 1995•Former VPE in four companies

Agile coachand trainer

2

® © 2008–2011 Mountain Goat Software®

A cornucopia of agile processes

Extreme Programming (XP)ScrumCrystalDSDMLean software developmentUnbranded “agile”

Agile Processes

Feature-Driven Development (FDD)

OpenUP

Semi-Agile Processes

3

© 2008–2011 Mountain Goat Software®®

A closer look at Scrum

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

4

® © 2008–2011 Mountain Goat Software®

The Scrum project community

Programmer Programmer

DBA

Programmer

Tester

Tester

User ExperienceDesigner

Analyst

to build andin what order

The team

ScrumMaster

Product Owner

Process coachand Sheepdogfor the team

5

® © 2008–2011 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

6

® © 2008–2011 Mountain Goat Software®

Seven Sins of Project Management

Gluttony1

Lust2

Sloth3

Opaqueness4

Pride5

Wastefulness6

Myopia7

7

© 2008–2011 Mountain Goat Software®®

Sin #1: Gluttony

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

A project management sin of excess

Experienced asImpossible schedules

Death marches

Leads toTrying to do too much for the resources (time, people) available

Cutting quality to meet other goals

8

© 2008–2011 Mountain Goat Software®®

Timeboxes help avoid gluttony

But the number of iterations is variableFocus is always on “what can we accomplish next?”

9

© 2008–2011 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

10

© 2008–2011 Mountain Goat Software®®

What expectation of future velocity should this team set?

Feature A 5Feature B 3Feature C 5Feature F 3Feature D 5Feature E 5Feature G 3Feature I 3Feature H 5Feature J 2Feature K 5Feature L 3

Feature A 5Feature B 3Feature C 5Feature F 3Feature D 5Feature E 5Feature G 3Feature I 3Feature H 5Feature J 2Feature K 5Feature L 3

✓✓✓

11

© 2008–2011 Mountain Goat Software®®

Sin #2: Lust

Intense or unrestrained craving for features

Experienced asTrying to put too many features into a product during the time allowedTreating all features as “critical”

Leads to

Overtime, reduced quality, surprises

12

® © 2008–2011 Mountain Goat Software®

Three ways agile deals with lust

Incremental2

Developing features in priority order

1

13

® © 2008–2011 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

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.”

3

14

® © 2008–2011 Mountain Goat Software®

NormalVelocity

Iterations

Velo

city

OvertimeVelocity

15

© 2008–2011 Mountain Goat Software®®

Sin #3: Sloth

Failing to do high quality work at all times

Experienced asTesting quality in at the end

Instability during development

Leads toBig delays

Unpredictable schedules

16

® © 2008–2011 Mountain Goat Software®

Agile practices related to quality

Continuous integration

Simple design

Automated testing

Test-driven development

Refactoring

Pair programming

17

® © 2008–2011 Mountain Goat Software®

Case Study 1

Cosmodemonic BiotechWaterfall Scrum

Use Case pages

User Stories

Calendar months

Person months

Lines of Java code

Lines of Java code per person-month

3,000

1,400

9 12

540 54

58,000 51,000

120 840

18

® © 2008–2011 Mountain Goat Software®

Productivity (NCSS / month)

270US average

389Three years priorto introducing agile

1206First nine monthsafter starting agile

NCSS=Non-Comment Source Statment (Java)

Case Study 2

ePS

19

® © 2008–2011 Mountain Goat Software®

ePSDefects per KNCSS

10Three years priorto introducing agile

2.9First nine monthsafter starting agile

Results achieved without any targeted rewrite of existing (buggy) codeMany 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...

20

© 2008–2011 Mountain Goat Software®®

Sin #4: Opaqueness

Obscuring the progress, quality or other attribute of a project

Experienced asNot knowing the true state of the project

Leads toSurprises

Poor decisions

21

© 2008–2011 Mountain Goat Software®®

Three types of opaqueness

Continuous integration

Features are either “Done” or “Not Done”

Avoids the 90% Syndrome

How agile addresses Quality opaqueness1

22

® © 2008–2011 Mountain Goat Software®

How agile addresses Schedule opaqueness2

Stor

y Po

ints

Iterations

400

300

200

100

01 2 3 4 5

23

© 2008–2011 Mountain Goat Software®®

0

10

20

30

40

1 2 3 4 5 6 7 8 9Iterations

interval(28–37 here)

How agile addresses Scope opaqueness3

Velo

city

24

© 2008–2011 Mountain Goat Software®®

predict what will be delivered

(5×33)

We’ll almost certainly get here (5×28)

This is the most we can realistically expect (5×37)

Assume:There are five sprints left.

25

© 2008–2011 Mountain Goat Software®®

Sin #5: Pride

Believing that we know everything to build the product

Experienced asA lack of stakeholder and user involvement

Leads toFailure to solicit feedback

Failure to learn

26

® © 2008–2011 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

® © 2008–2011 Mountain Goat Software®

Agile requirements“User stories” facilitate working closely with users & customers

As a user, I want to reserve a hotel room. As a vacation traveler, I

want to see photos of the hotels so that I can choose the best one for me. As a user, I want the site to

be available 99.999% of the time I try to access it.

28

© 2008–2011 Mountain Goat Software®®

Sin #6: Wastefulness

Misuse of critical resources

Experienced asLosses of creativity, motivation, and time

Leads toProject malaise

Delays

Doing it the same way (again)

29

® © 2008–2011 Mountain Goat Software®

How agile handles waste1

Daily standups2

Iteration retrospectives3

Self-organizing teams4

30

® © 2008–2011 Mountain Goat Software®

Months

Inte

nsity

Waterfall

Scrum

Spreading intensity evenly5

31

® © 2008–2011 Mountain Goat Software®

Salesforce.comImprovement in mean time to

release for major releases +61%

Increase in features delivered in major releases +94%

Increase in features delivered per developer +38%

Increase in major release cumulative value +568%

Source: Scrum Gathering, April 16, 2008

32

© 2008–2011 Mountain Goat Software®®

Sin #7: Myopia (Shortsightedness)

Not seeing beyond your own work

Experienced asTeams who don’t see the big picture

Individuals who work only within their roles

Leads toUnsuccessful products

Delays

33

® © 2008–2011 Mountain Goat Software®

Seeing the forest and the trees at the same time

Release PlanSprint 1 Sprint 2 Sprint 3 Sprints 4–7

8 hoursTask A16 hoursTask B5 hoursTask C8 hoursTask D

Iteration Plan

34

© 2008–2011 Mountain Goat Software®®

Cross-functional teamAll disciplines necessary to go from idea to implementation

Improves creativity and ownership

Whole team commitment

But does that make everyone a generalist?

35

® © 2008–2011 Mountain Goat Software®

Is everyone a generalist?

36

® © 2008–2011 Mountain Goat Software®

Is everyone a generalist?Screw that;

where’slunch?

37

® © 2008–2011 Mountain Goat Software®

Is everyone a generalist?

Ferentino’sBruno’s

Screw that;where’slunch?

Meconi’sOrder-taker

Key

Floater

Sandwich-maker

38

® © 2008–2011 Mountain Goat Software®

Additional resourcesScrum Information

www.MountainGoatSoftware.com/scrumwww.MountainGoatSoftware.com/presentationswww.ScrumAlliance.org

Trainingwww.MountainGoatSoftware.com/training

BooksAgile Software Development with Scrum, Ken SchwaberSucceeding with Agile, Mike Cohn

39

® © 2008–2011 Mountain Goat Software®

Mike Cohnmike@mountaingoatsoftware.comwww.mountaingoatsoftware.com

twitter: mikewcohn(888) 61−AGILE

40