CSE Senior Design I
Project Recovery
Instructor: Mike O’Dell
The slides in this presentation are derived from materials in the textbook
used for CSE 4316/4317, Rapid Development: Taming Wild Software
Schedules, by Steve McConnell.
8 A Project in Trouble (C.S. 16-1)
What was the first indication of trouble?
How was the recovery plan developed?
What was the recovery plan?
Mythical man-month?
Signs of denial? Defensiveness?
Was the problem that people weren’t
working hard enough?
2
Characteristics of a Project in Need
of a Recovery Plan
No one knows when they will finish,
and can’t even guess
Product quality has plummeted and
defects are on the rise
Everyone is working long, hard hours
Peer-pressure and management
pressure is on the rise
Stake holder confidence is low/lost
8
3
Characteristics of a Project in Need
of a Recovery Plan
Developers become defensive of their
progress
Project team (development, marketing,
management, etc.) relationships
deteriorate… finger pointing
Morale is at rock bottom
Cancellation appears imminent
No one's having any fun anymore
8
4
8 How to Get Things Back on Track
Three fundamental approaches:
1. Increase productivity by focusing on shortterm gains
2. Cut the size of the project so it can be
completed within the time and effort
planned
3. Face the facts – slip the schedule, do
damage control, possibly cancel the project
Or (usually best), combine these three:
Drop a few features, increase productivity
when possible, slip the schedule as
necessary
5
8 Recovery Plan Basics
One plan does not fit all
Adopt a plan that is right for where
you are on your project
It almost never helps to…
Cut corners (“not enough time to…”)
Add people (mythical man-month)
Rely on silver bullets (there’s no
“magic” )
6
8 First Steps
Assess – figure out where you are
Recognize that significant action is
required
Same ol’, same ol’ won’t work!
Apply Theory-W analysis
What do all stakeholders need at this
point?
How does everyone win?
7
8 Theory-W Management
Everyone Wins
Customers
Bosses
Developers
End-Users
Maintainers
Quick
Schedule
No Overruns
Interesting
Work
Loss of
Features
No Defects
Low Budget
No Surprises
Exploration of User-friendly
New
Software
Technology
Meets
Requirements
Successful
Project
No Grunt
Work
Fast Software Easy
Modifiability
A Life
Robust
Software
Good Docs.
8
8 More First Steps
Ask the team what needs to be done
Involve everyone
Evaluate all ideas
Be realistic about your team’s ability
to recover
Avoid over-committing (again?)
Objectively evaluate your ability to
estimate, and adjust accordingly
9
8 A Recovery Plan
Three components (the 3 P’s)
People… fix these problems and you will
get the most leverage toward getting
the project back on track
Process… fix these problems or your
recovery plan will fail
Product/Technology… getting the
feature-set under control and minimized
is critical to project/product stability
11
8 Dealing with People Problems
Address the morale of the team
Critical to productivity
Potential Approaches
Sacrifice the sacred cows
Take explicit action that makes the
development team feel important
Remove unreasonable schedule pressure
Remove micro-management practices
12
8 Dealing with People Problems
Deal with “problem people”
Recall discussion of “Welch Grid”
Deal with major leadership problems
Is the project leader who got you in this
hole the right one to get you out?
Identify where on the team the
leadership is weak
13
8 Dealing with People Problems
Add people very carefully, if at all
Brooks’s Law: Adding people to a late
project is like pouring gasoline on fire!
Consider adding only if project can be
partitioned to isolate new people
Err on the side of NOT adding people
Focus…
Removing distractions wherever possible
14
8 Managing the Process
Identify and Fix Classic Mistakes
Stabilize product definition, design
Shore up control and tracking
Validate product quality
Verify (and re-verify) the new schedule
Validate your tools (any silver-bullets?)
Shore up accountability
15
8 Managing the Process
Identify and fix things that are
clearly broken or not working
Take decisive action
Create “mini-milestones”
Always a
Best Practice
Miniature, binary and exhaustive
Miniature- completed in days, not weeks
Binary- done or not done
Exhaustive- when last is done, project is
done
Monitor progress with finer granularity
16
8 Managing the Process
Track schedule progress meticulously
Make sure “done” is 100% done
Ask “the next question”
Calibrate and recalibrate your schedule
Expect additional work (over-time) to
make up slips on a mini-milestone
Record reasons for missed milestones
Look for and fix underlying causes
17
8 Managing the Process
Recalibrate the recovery plan after a
short time after 1 or 2 weeks
Don’t let things get away from you again
Make every recovery schedule a
meaningful one
Don’t give in to pressure or create “offthe-cuff” estimates
Painstakingly manage risks
18
8 Reining in the Product
Stabilize the requirements
Unstable, changing requirements may be
the root cause of all your problems
May need to restart requirements phase
Implement a rigid change evaluation
process for any further changes
Implement minimum time delay to even
consider further change
19
8 Reining in the Product
Trim the feature set
Prioritize/Re-prioritize features
Focus on features that create best
possible product at this time
Relegate low-priority features to the
next release
Minimize, minimize, minimize…
20
8 Reining in the Product
Take out the garbage
Eliminate low quality components…
carefully!
Redo them from the beginning if they
are critically needed
Systematic redesign and implementation
will reduce your risk!
21
8 Reining in the Product
Systematically reduce and manage
further defects
Track progress daily…
#open, #fixed, #resolved
Don’t try to take short-cuts… shortcutting the fix inevitably results in more
defects
Use design and code reviews on every
module that you touch
22
8 Reining in the Product
Identify a known good state and build
on it
Use as base for further work
Daily build and test cycle
Make maintaining the build each day a
top priority
Consider a “developers on call” approach
23
8 Timing Your Recovery Plan
Need to find right balance between:
Too early – people won’t believe there is
a problem, so they won’t take your plan
seriously
Too late – you’re probably already in a
recovery mode, having implemented
numerous mini-plans, and your credibility
will already be damaged
24