1 CSE 403 Classic Mistakes Reading: Rapid Development Ch3 These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from.

Slides:



Advertisements
Similar presentations
Software Project Management
Advertisements

Development Process. Four Factors People –10 to 1 variation in programmer productivity with the same experience Process –Methodology Product –Size Technology.
Software Project Management.  Leadership  Communications  Problem Solving  Negotiating  Influencing the Organization  Mentoring  Process.
CSE Senior Design I Classic Mistakes Instructor: Mike O’Dell This presentations was derived from the textbook used for this class, McConnell, Steve, Rapid.
CSE Senior Design I Classic Mistakes Instructor: Vassilis Athitsos This presentation was derived from the textbook used for this class, McConnell, Steve,
Copyright 2005 Northrop Grumman Corporation Measuring the Benefits of Mature Processes 20th International Forum on COCOMO and Software Cost Modeling 24.
CSE 403 Lecture 8 Risk assessment. Lecture goals Understand risk management and assessment techniques Guarding against failure to meet delivery deadline,
29 Jul 2005CSE403, Summer'05 Student Startup Sequence Verify network connection Rotate to Landscape mode Start Presenter 2.0 Maximize Application Role->Student.
Session 1: Introduction to Project Management
Computer Engineering 203 R Smith Risk Management 7/ Risk Management The future can never be predicted with 100% accuracy. Failure to plan for risks.
1 Software Project Management Session 1: Introduction, Fundamentals, Classic Mistakes.
CSC 490: Advanced Software Project
Project Management Session 7
Unit 7 University of Sunderland CSEM04 ROSCO Risk & Opportunity Identification: Brainstorming (and Risk Checklists) CSEM04: Risk and Opportunities of Systems.
Unit 4 University of Sunderland COMM80 Risk Assessment of Systems Change Risk Identification: Concept and Generic Techniques COMM80: Risk Assessment of.
CSE Senior Design I Risk Management Instructor: Mike O’Dell This presentations was derived from the textbook used for this class: McConnell, Steve, Rapid.
Introduction to Project Management II March 10 th, 2015.
Dr. Nguyen Hai Quan.  Overview  Classic Mistakes  Project Manager Requirements  Project Management Phases.
Rapid Development (Part 1) Mihail V. Mihaylov RammSoft.
why information systems?
Rapid Development.
1 CSE 403 Software Lifecycle Models Reading: Rapid Development Ch. 7, 25 (further reading: Ch. 21, 35, 36, 20) These lecture slides are copyright (C) Marty.
Software Quality Assurance Lecture #4 By: Faraz Ahmed.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
NJIT 1 Managing Technical People Ian Sommerville, Software Engineering, Chapter 22 Gerald Weinberg, The Psychology of Computer Programming, and many other.
1 CSE 403 Introduction Reading: Rapid Development Ch3.3 These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from slides.
10-January-2003cse Context © 2003 University of Washington1 What is a development project? CSE 403, Winter 2003 Software Engineering
CSE 403, Spring 2007, Alverson Software Projects – the challenges we face RD:McConnell.
1 CSE 403 Software Requirements Reading: Pragmatic Programmer Ch. 7: Before the Project These lecture slides are copyright (C) Marty Stepp, 2007, with.
Valentin Razmov, CSE403, Sp'05 CSE403 Section 1: The Fate of Software Projects Learning = Practice + Feedback Desirable Qualities in Teammates Team-Building.
Jeffrey Murray Test Manager PowerPoint Microsoft Silicon Valley.
Classic Mistakes and Model – View - Controller Trisha Cummings.
Lecture 1 Introduction, Fundamentals, Classic Mistakes 1.
IT3101- Rapid Application Development. Course Details Lectures – 30 hours Practical - 60 hours.
1 CSE 403 Introduction Reading: Rapid Development Ch3.3 These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from slides.
CSE 490RA Richard Anderson Chris Mason. Course goals For students  Programming experience on Tablet PC  UI and Design experience  Work in team  Develop.
Lecture 61 Project planning tool Lecture 62 Objectives Understand the reasons why projects sometimes fail Describe the different scheduling tools, including.
CSE 403 Lecture 25 Scheduling and Planning a Large Project Reading: The Mythical Man-Month, Ch. 2, by F. Brooks slides created by Marty Stepp
IT3101: Rapid Application Development Lec-1. What is Rapid Application Development? Software development process that allows usable systems to be built.
1 CSE 403 Team Dynamics Reading: Rapid Development Ch. 13, Pragmatic Programmer Ch These lecture slides are copyright (C) Marty Stepp, 2007, with.
Engineering Economics Lecture 18 Project Management 6 January 2010.
1 Software Project Management Introduction, Fundamentals, Classic Mistakes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 CSE 403 Web Patterns and Design These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from slides written by Valentin.
Deliverables: Beta Release Installation package Application sources and binaries One-step build for all sources Latest specification & design documents.
INTRODUCTION Mehmet Sait Andaç Web: Office: 431.
Introduction to Project management and Principles.
WEEK 3 Project Planning.
1 Software Project Management Lecture # 3. 2 Today Administrative items Fundamentals Project Management Dimensions Classic Mistakes.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
1 Project Management Skills Leadership Communications Problem Solving Negotiating Influencing the Organization Mentoring Process and technical expertise.
HNDIT23073 : Rapid Application Development
Software Project Management
Classroom Interaction via Tablet PCs and Student Submissions
Classic Mistakes chapter22
slides created by Marty Stepp
Software Myths Deep Mann.
Lecture 03: Software Lifecycle Models
Instructor: Mike O’Dell
I love the sound they make as they fly by.
How to fail at delivering software
why information systems?
CSE 403 Scheduling These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from slides written by Valentin Razmov. They.
Integration Reading: McConnell, Code Complete, Ch. 29
Instructor: Mike O’Dell
Instructor: Manfred Huber
CMGT 410 HOMEWORK best future education / cmgt410homework.com.
Presentation transcript:

1 CSE 403 Classic Mistakes Reading: Rapid Development Ch3 These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from slides written by Valentin Razmov. They may not be rehosted, sold, or modified without expressed permission from the author. All rights reserved.

2 What is a software project? Projects are a balance of three dimensions, with the goal of producing a successful deliverable. FEATURES TIME RESOURCES SOFTWARE DELIVERABLE

3 The goal of building software A successful deliverable is characterized by being: on time on budget with good quality "Good, Fast and Cheap. Choose two!" Which two would you pick for a project like yours? a) Good and Fast, but not Cheap b) Good and Cheap, but not Fast c) Fast and Cheap, but not Good

4 The fate of software projects Under some reasonable definition of a "project" (you decide on it), what would you guess is the percentage of software projects that fail to accomplish their goals? Choose the range in which your estimate falls: a) 0-20% b) 20-40% c) 40-60% d) 60-80% e) %

5 Answers Here is how undergraduate students in software engineering (CSE 403) voted (left) vs. how graduate students (in CSE 590ET) voted (right): Historically, nearly 85% of software projects fail.

6 Why do projects fail? What were some of the reasons given for the failure of the software project in the anecdote in Rapid Development section 3.1?

7 Why do projects fail? 2 Some reasons the "Giga Quote" project failed: management set unrealistic expectations; Mike didn't correct them overestimated the positive impact of tools (C++, OO, new hardware) hired developers based on availability despite warning signs personality conflicts between developers changes in rate structure requirements in middle of work one delay causes another (dev delay leads to test delay, etc.) hacks and shortcuts (bar chart and report on same page) developers end up working "death marches" (6-day, 10-hour weeks) overestimating how nearly done you are ("I'm 90% done") software didn't match the spec (company logo not on every page) developer time taken away by other tasks (Jill moonlighting, etc.) once software was delivered to be tested, tons of bugs came out developers didn't listen to testers; ignored severity of bugs reported management promised big bonuses, gave tiny ones

8 People Undermined motivation Weak personnel Uncontrolled problem employees Heroics Adding people to a late software project Noisy, crowded offices Friction between developers and customers Unrealistic expectations Lack of effective project sponsorship Lack of stakeholder buy-in Lack of user input Politics placed over substance Wishful thinking

9 Process Overly optimistic schedules Insufficient risk management Contractor failure Insufficient planning Abandonment of planning under pressure Wasted time during the "fuzzy front end" Shortchanged upstream activities Inadequate design Shortchanged quality assurance Insufficient management controls Premature or overly frequent convergence Omitting necessary tasks from estimates Planning to catch up later Code-like-hell programming

10 Product Requirements gold-plating Feature creep Developer gold-plating Push-me, pull-me negotiation Research-oriented development

11 Technology Silver-bullet syndrome Overestimated savings from new tools or methods Switching tools in the middle of a project Lack of automated source-code control

12 Mistake comparison table PeopleProcessProductTechnology Undermined motivation Weak personnel Uncontrolled problem employees Heroics Adding people to a late software project Noisy, crowded offices Friction between developers and customers Unrealistic expectations Lack of effective project sponsorship Lack of stakeholder buy- in Lack of user input Politics placed over substance Wishful thinking Overly optimistic schedules Insufficient risk management Contractor failure Insufficient planning Abandonment of planning under pressure Wasted time during the "fuzzy front end" Shortchanged upstream activities Inadequate design Shortchanged quality assurance Insufficient management controls Premature or overly frequent convergence Omitting necessary tasks from estimates Planning to catch up later Code-like-hell programming Requirements gold- plating Feature creep Developer gold-plating Push-me, pull-me negotiation Research-oriented development Silver-bullet syndrome Overestimated savings from new tools or methods Switching tools in the middle of a project Lack of automated source-code control

13 Is software different? Is software engineering different from other engineering disciplines in this regard?

14 Arguments in favor Is software engineering different from other engineering disciplines in this regard? Arguments in favor: testing the quality of software is harder the Halting Problem presents a fundamental limitation in the extent to which software quality can be evaluated Most properties of software that we care about are unverifiable unlike bridges and buildings where everything can be tested using known procedures much higher rate of failure lower barrier to entry immaturity of the discipline customer expectations: quality, delivery timeline, etc. frantic rate of technological change software is easier to copy

15 Arguments against Is software engineering different from other engineering disciplines in this regard? Arguments against: software isn't "soft" contrary to popular perception, change cannot be easily accommodated, yet requirements do change in reality, even though change is possible in principle, accommodating change often forces a rewriting of major parts of the software software developers still need to plan, execute, test, and sell their products the discipline is still in its infancy