Upload
rebecca-webb
View
213
Download
0
Embed Size (px)
Citation preview
CSE Senior Design ICSE Senior Design I
Classic MistakesClassic Mistakes
Instructor: Vassilis AthitsosInstructor: Vassilis Athitsos
This presentation was derived from the textbook used for this class, This presentation was derived from the textbook used for this class, McConnell, Steve, McConnell, Steve, Rapid DevelopmentRapid Development, Chapter 3. The presentation was , Chapter 3. The presentation was
prepared by Mr. Mike O'Dell and modified by Vassilis Athitsos.prepared by Mr. Mike O'Dell and modified by Vassilis Athitsos.
5
2
Why Projects Fail - OverviewWhy 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 mistakespeople make mistakes.
5
3
Categories of Classic MistakesCategories of Classic Mistakes
People-relatedProcess-relatedProduct-relatedTechnology-related
5
4
Effect of Classic Mistakes on Effect of Classic Mistakes on Development SchedulesDevelopment Schedules
Doing a few things right DOES NOT guarantee success! Use of any specific best practice is
necessary, but not sufficientnecessary, but not sufficient, to achieve rapid development speeds
Missing mostMissing most of the potholes in the road, but falling into one big onefalling into one big one, will ruin your whole day (or project)
“One bad apple (mistake) can spoil the bunch”
5
5
Case Study in Classic MistakesCase 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
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
Classic Mistakes EnumeratedClassic Mistakes Enumerated
5
7
Classic Mistakes EnumeratedClassic Mistakes Enumerated
4. Heroics: Heroics seldom work to your advantage Honesty is better than an empty “can-do”empty “can-do”
5. Wishful thinking: Not the same as optimism Don’t plan on good luckluck! (Plan on bad luck??) May be the root causeroot cause of many other mistakes
6. Noisy, crowded offices: Work environment is importantenvironment is important to productivity Noisy, crowded conditions lengthen schedules
5
8
Classic Mistakes EnumeratedClassic Mistakes Enumerated
7. Friction between developers and customers/sponsors:
Cooperation Cooperation is the key Encourage participationparticipation in the process
8. Unrealistic expectations: Avoid seat-of-the-pants commitments Realistic expectations is a TOP 5 issueTOP 5 issue
9. Lack of effective project sponsorship: Management must buy-inManagement must buy-in and provide support Potential morale killerPotential morale killer
5
9
Classic Mistakes EnumeratedClassic Mistakes Enumerated
10. Lack of stakeholder buy-in: Team members, end-users, customers,
management, etc. Buy-in engenders cooperationcooperation at all levels
11. Lack of user input: You can’t build what you don’t understand Early input is critical to avoid feature creepfeature creep
12. Politics placed over substance: Being well regarded by management will not
make your project successful
5
10
Classic Mistakes EnumeratedClassic Mistakes Enumerated
13. Adding people to a late project: Productivity killerProductivity killer Throwing people at a problem seldom helps
5
11
Classic Mistakes EnumeratedClassic 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” “spiral” (iterative) approach for
larger risks
16. Contractor failure: Relationship/cooperation/clear Statement of
Work
5
12
Classic Mistakes EnumeratedClassic 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-fixCode-and-fix mentality takes over… and will
fail
19. Wasted time during fuzzy front end: That would be nownow! Almost always cheaper and faster to spend
time upfront working/refining the plan
5
13
Classic Mistakes EnumeratedClassic Mistakes Enumerated
20. Shortchanged upstream activities: See above… do the work up frontup front! Avoid the “jump to coding” mentality
21. Inadequate design: See above… do the required work up frontup front!
22. Shortchanged quality assurance: Test planning is a critical part of every plan ShortcuttingShortcutting 1 day early on will likely cost you
3-10 days later QA me now, or pay me later!
5
14
Classic Mistakes EnumeratedClassic Mistakes Enumerated
23. Insufficient (project) management controls:
Buy-in implies participation & cooperationcooperation
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 stuffsmall stuff!!
5
15
Classic Mistakes EnumeratedClassic Mistakes Enumerated
26. Planning to catch up later: Schedule adjustments WILL be necessary A month lost early on probably cannot be cannot be
made upmade up later
27. Code-like-hell programming: The fast, loose, “entrepreneurial” approach This is simply… Code-and-Fix. Don’t!
5
16
Classic Mistakes EnumeratedClassic Mistakes Enumerated
28. Requirements gold-plating: Avoid complex, difficult to implement features Often, they add disproportionatelyadd disproportionately to schedule
29. Feature creep: The average project experiences 25% change Another killerkiller mistake!
30. Developer gold-plating: Use proven stuffproven stuff to do your job Avoid dependence on the hottest new toolshottest new tools Avoid implementing all the cool new featurescool new features
5
17
Classic Mistakes EnumeratedClassic Mistakes Enumerated
31. Push-me, pull-me negotiation: Schedule slip = feature addition
32. Research-oriented development: Software research schedules are theoreticaltheoretical, at
best Try not to push the enveloppush the envelop unless you allow
for frequent schedule revisions If you push the state of the art… it will push
back!
5
18
Classic Mistakes EnumeratedClassic Mistakes Enumerated
33. Silver-bullet syndrome: There is no magicno 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
5
19
Classic Mistakes EnumeratedClassic 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!
5
21
Exercise: Develop a Project Exercise: Develop a Project “Disaster Avoidance Plan”“Disaster Avoidance Plan”
Get together as a team and make a list list of “worst practices”of “worst practices” that you should avoid in your project.
Include specific mistakes that you think could/will be made by your teamyour team
Post thisPost this list on the wall in your lab space or wherever it will be visible and prominent on a daily basis
ReferRefer to it frequently and talk about how you will avoid these mistakesavoid these mistakes