Project Recovery

advertisement
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
Download