Agile and Seven Deadly Sins - Mike Cohn...®2003–2008 Mountain Goat Software ® Sin #1: Gluttony...
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