agile and the seven sins of project management
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