Presentation on theme: "CSE Senior Design I Classic Mistakes Instructor: Vassilis Athitsos This presentation was derived from the textbook used for this class, McConnell, Steve,"— Presentation transcript:
CSE Senior Design I Classic Mistakes Instructor: Vassilis Athitsos This presentation was derived from the textbook used for this class, McConnell, Steve, Rapid Development, Chapter 3. The presentation was prepared by Mr. Mike O'Dell and modified by Vassilis Athitsos.
5 2 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 people make mistakes N.B. – Software development is COMPLEX and HARD, so people make mistakes.
5 4 Effect of Classic Mistakes on Development Schedules Doing a few things right DOES NOT guarantee success! necessary, but not sufficient Use of any specific best practice is necessary, but not sufficient, to achieve rapid development speeds Missing most falling into one big one 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”
5 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 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 Enumerated
5 7 4. Heroics: Heroics seldom work to your advantage empty “can-do” Honesty is better than an empty “can-do” 5. Wishful thinking: Not the same as optimism luck Don’t plan on good luck! (Plan on bad luck??) root cause May be the root cause of many other mistakes 6. Noisy, crowded offices: environment is important Work environment is important to productivity Noisy, crowded conditions lengthen schedules
5 8 Classic Mistakes Enumerated 7. Friction between developers and customers/sponsors: Cooperation Cooperation is the key participation Encourage participation in the process 8. Unrealistic expectations: Avoid seat-of-the-pants commitments TOP 5 issue Realistic expectations is a TOP 5 issue 9. Lack of effective project sponsorship: Management must buy-in Management must buy-in and provide support Potential morale killer Potential morale killer
5 9 Classic Mistakes Enumerated 10. Lack of stakeholder buy-in: Team members, end-users, customers, management, etc. cooperation Buy-in engenders cooperation at all levels 11. Lack of user input: You can’t build what you don’t understand feature creep Early input is critical to avoid feature creep 12. Politics placed over substance: Being well regarded by management will not make your project successful
5 10 Classic Mistakes Enumerated 13. Adding people to a late project: Productivity killer Productivity killer Throwing people at a problem seldom helps
5 11 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 “spiral” Consider a “spiral” (iterative) approach for larger risks 16. Contractor failure: Relationship/cooperation/clear Statement of Work
5 12 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 Code-and-fix mentality takes over… and will fail 19. Wasted time during fuzzy front end: now That would be now! Almost always cheaper and faster to spend time upfront working/refining the plan
5 13 Classic Mistakes Enumerated 20. Shortchanged upstream activities: up front See above… do the work up front! Avoid the “jump to coding” mentality 21. Inadequate design: up front See above… do the required work up front! 22. Shortchanged quality assurance: Test planning is a critical part of every plan Shortcutting Shortcutting 1 day early on will likely cost you 3- 10 days later QA me now, or pay me later!
5 14 Classic Mistakes Enumerated 23. Insufficient (project) management controls: cooperation 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 small stuff! Don’t sweat the small stuff!
5 15 Classic Mistakes Enumerated 26. Planning to catch up later: Schedule adjustments WILL be necessary cannot be made up 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!
5 16 Classic Mistakes Enumerated 28. Requirements gold-plating: Avoid complex, difficult to implement features add disproportionately Often, they add disproportionately to schedule 29. Feature creep: The average project experiences 25% change killer Another killer mistake! 30. Developer gold-plating: proven stuff Use proven stuff to do your job hottest new tools Avoid dependence on the hottest new tools cool new features Avoid implementing all the cool new features
5 17 Classic Mistakes Enumerated 31. Push-me, pull-me negotiation: Schedule slip = feature addition 32. Research-oriented development: theoretical Software research schedules are theoretical, at best push the envelop 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!
5 18 Classic Mistakes Enumerated 33. Silver-bullet syndrome: no magic 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
5 19 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!
5 20 Escape from Gilligan’s Island Crazy schemes may seem to work for a while, but seldom produce desired results Many companies find at the end of a project that they have made yet another classic mistake, spent more time and resources than required delivered the product late. Don’t let this happen to you!
5 21 Exercise: Develop a Project “Disaster Avoidance Plan” list of “worst practices” Get together as a team and make a list of “worst practices” that you should avoid in your project. your team Include specific mistakes that you think could/will be made by your team Post this Post this list on the wall in your lab space or wherever it will be visible and prominent on a daily basis Refer avoid these mistakes Refer to it frequently and talk about how you will avoid these mistakes