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