Classic Mistakes
Download
Report
Transcript Classic Mistakes
CSE Senior Design I
Classic Mistakes
Instructor: Mike O’Dell
This presentations was derived from the textbook used for this class, McConnell,
Steve, Rapid Development, Chapter 3.
5 Why Projects Fail - Overview
Five main reasons:
Failing to communicate
Failing to create a realistic plan
Lack of buy-in
Allowing scope/feature creep
Throwing resources at a problem
N.B. – Software development is COMPLEX
and HARD, so people make mistakes.
2
5 Categories of Classic Mistakes
People-related
Process-related
Product-related
Technology-related
3
5
Effect of Classic Mistakes on
Development Schedules
Doing a few things right DOES NOT
guarantee success!
Use of any specific best practice is necessary,
but not sufficient, to achieve rapid
development speeds
Missing most of the potholes in the road, but
falling into one big one, will ruin your whole day
(or project)
“One bad apple (mistake) can spoil the
bunch”
4
5 Case Study in Classic Mistakes
What Mistakes can you identify?
First Mistake? Impact?
Second Mistake? Impact?
Other Mistakes? Impact?
When and why did things finally turn around?
What should have been done, and by whom?
5
5 Classic Mistakes Enumerated
1. Undermined motivation:
The Big One - Probably the largest single factor in
poor productivity
Motivation must come from within
2. Weak personnel:
The right people in the right roles
3. Uncontrolled problem employees:
Problem people (or just one person) can kill a team
and doom a project
The team must take action… early
Consider the Welch Grid
6
5 Classic Mistakes Enumerated
4. Heroics:
Heroics seldom work to your advantage
Honesty is better than an empty “can-do”
5. Wishful thinking:
Not the same as optimism
Don’t plan on good luck! (Plan on bad luck??)
May be the root cause of many other mistakes
6. Noisy, crowded offices:
Work environment is important to productivity
Noisy, crowded conditions lengthen schedules
7
5 Classic Mistakes Enumerated
7. Friction between developers and
customers/sponsors:
Cooperation is the key
Encourage participation in the process
8. Unrealistic expectations:
Avoid seat-of-the-pants commitments
Realistic expectations is a TOP 5 issue
9. Lack of effective project sponsorship:
Management must buy-in and provide support
Potential morale killer
8
5 Classic Mistakes Enumerated
10. Lack of stakeholder buy-in:
Team members, end-users, customers,
management, etc.
Buy-in engenders cooperation at all levels
11. Lack of user input:
You can’t build what you don’t understand
Early input is critical to avoid feature creep
12. Politics placed over substance:
Being well regarded by management will not make
your project successful
9
5 Classic Mistakes Enumerated
13. Adding people to a late project:
Productivity killer
Throwing people at a problem seldom helps
10
5 Classic Mistakes Enumerated
14. Overly optimistic schedules:
Wishful thinking/planning on good luck.
(Feasibility??)
15. Insufficient risk management:
Identify unique risks and develop a plan to
eliminate them
Consider a “spiral” (iterative) approach for larger
risks
16. Contractor failure:
Relationship/cooperation/clear Statement of
Work
11
5 Classic Mistakes Enumerated
17. Insufficient planning:
If you can’t plan it… you can’t do it!
18. Abandonment of planning under
pressure:
Path to failure
Code-and-fix mentality takes over… and will fail
19. Wasted time during fuzzy front end:
That would be now!
Almost always cheaper and faster to spend time
upfront working/refining the plan
12
5 Classic Mistakes Enumerated
20. Shortchanged upstream activities:
See above… do the work up front!
Avoid the “jump to coding” mentality
21. Inadequate design:
See above… do the required work up front!
22. Shortchanged quality assurance:
Test planning is a critical part of every plan
Shortcutting 1 day early on will likely cost you 310 days later
QA me now, or pay me later!
13
5 Classic Mistakes Enumerated
23. Insufficient (project) management
controls:
Buy-in implies participation & cooperation
24. Premature or overly frequent
convergence:
It’s not done until it’s done!
25. Omitting necessary tasks from
estimates:
Can add 20-30% to your schedule
Don’t sweat the small stuff!
14
5 Classic Mistakes Enumerated
26. Planning to catch up later:
Schedule adjustments WILL be necessary
A month lost early on probably cannot be made
up later
27. Code-like-hell programming:
The fast, loose, “entrepreneurial” approach
This is simply… Code-and-Fix. Don’t!
15
5 Classic Mistakes Enumerated
28. Requirements gold-plating:
Avoid complex, difficult to implement features
Often, they add disproportionately to schedule
29. Feature creep:
The average project experiences 25% change
Another killer mistake!
30. Developer gold-plating:
Use proven stuff to do your job
Avoid dependence on the hottest new tools
Avoid implementing all the cool new features
16
5 Classic Mistakes Enumerated
31. Push-me, pull-me negotiation:
Schedule slip = feature addition
32. Research-oriented development:
Software research schedules are theoretical, at
best
Try not to push the envelop unless you allow for
frequent schedule revisions
If you push the state of the art… it will push back!
17
5 Classic Mistakes Enumerated
33. Silver-bullet syndrome:
There is no magic in product development
Don’t plan on some new whiz-bang thing to save
your bacon (i.e., your schedule)
34. Overestimated savings from new tools
or methods:
Silver bullets probably won’t improve your
schedule… don’t overestimate their value
18
5 Classic Mistakes Enumerated
35. Switching tools in the middle of the
project:
Version 3.1…version 3.2… version 4.0!
Learning curve, rework inevitable
36. Lack of automated source control:
Stuff happens… enough said!
19
5
Exercise: Develop a Project
“Disaster Avoidance Plan”
Get together as a team and make a list of
“worst practices” that you should avoid in
your project.
Include specific mistakes that you think
could/will be made by your team
Post this list on the wall in your lab space
or wherever it will be visible and prominent
on a daily basis
Refer to it frequently and talk about how
you will avoid these mistakes
21