How to fail at delivering software

Slides:



Advertisements
Similar presentations
Development Process. Four Factors People –10 to 1 variation in programmer productivity with the same experience Process –Methodology Product –Size Technology.
Advertisements

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.
Project What is a project A temporary endeavor undertaken to create a unique product, service or result.
CSE Senior Design I Classic Mistakes Instructor: Vassilis Athitsos This presentation was derived from the textbook used for this class, McConnell, Steve,
CSE 403 Lecture 8 Risk assessment. Lecture goals Understand risk management and assessment techniques Guarding against failure to meet delivery deadline,
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.
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.
Software Management Plan (part I) Software management’s 7 deadly sins The “3 P’s” of software management Why big software projects fail: the key 12 questions.
CSE Senior Design I Risk Management Instructor: Mike O’Dell This presentations was derived from the textbook used for this class: McConnell, Steve, Rapid.
Dr. Nguyen Hai Quan.  Overview  Classic Mistakes  Project Manager Requirements  Project Management Phases.
Rapid Development (Part 1) Mihail V. Mihaylov RammSoft.
why information systems?
1 CSE 403 Classic Mistakes Reading: Rapid Development Ch3 These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from.
Rapid Development.
Software Testing Life Cycle
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
22 Jul 2005CSE403, Summer'05, Lecture 12 Lecture 12: Scheduling, Estimation, and Prioritization (Part II) Valentin Razmov.
NJIT 1 Managing Technical People Ian Sommerville, Software Engineering, Chapter 22 Gerald Weinberg, The Psychology of Computer Programming, and many other.
Project Management: Techniques & Tools % of commercial projects fail. % of open source projects fail. Chapters 1-2.
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.
Note Excerpts from Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R. Schach
13-January-2003cse LifeCycle © 2003 University of Washington1 Lifecycle CSE 403, Winter 2003 Software Engineering
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.
CSE 490RA Richard Anderson Chris Mason. Course goals For students  Programming experience on Tablet PC  UI and Design experience  Work in team  Develop.
Lecture 6 24/9/15. Project … is a planned undertaking that has a beginning and an end and that produces a desired result or product Organized activities.
IT3101: Rapid Application Development Lec-1. What is Rapid Application Development? Software development process that allows usable systems to be built.
Introduction to Project management and Principles.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
1 Software Project Management Lecture # 3. 2 Today Administrative items Fundamentals Project Management Dimensions Classic Mistakes.
1 Project Management Skills Leadership Communications Problem Solving Negotiating Influencing the Organization Mentoring Process and technical expertise.
27 Jul 2006CSE403, Summer'06, Lecture 15 Midterm Exam Statistics Other statistics: Average: 40.6 Median: 42.3 Std Dev: 6.2 Max: 46.5 Min: 28 Easiest Problems:
HNDIT23073 : Rapid Application Development
% of commercial projects fail. % of open source projects fail.
PROJECT LIFE CYCLE AND EFFORT ESTIMATION
Methodologies and Algorithms
Why is software engineering worth studying?
Software Project Management
Project basics & team work, communication
CSE 403 Software Engineering
Classic Mistakes chapter22
Lecture 11: Scheduling, Estimation, and Prioritization
Identifying and Prioritizing Risks
Instructor: Mike O’Dell
slides created by Marty Stepp
Martha Grabowski LeMoyne College
Project Management Complexity, Risks, Failure and Technology
Johanna Rothman Know What “Done” Means Chapter 11
A man is flying in a hot air balloon and realizes he is lost
Lecture 02: Software Lifecycle Models
Timebox Development Instructor: Manfred Huber
Risk Management - Manage them or they will manage you...
CSE 403, Software Engineering Lecture 2
Instructor: Mike O’Dell
Cost Estimation I've got Bad News and Bad News!.
why information systems?
Case Study 1 By : Shweta Agarwal Nikhil Walecha Amit Goyal
Instructor: Mike O’Dell
Instructor: Vassilis Athitsos
Instructor: Manfred Huber
Software Testing Lifecycle Practice
Presentation transcript:

How to fail at delivering software CSE 403 Lecture 7 How to fail at delivering software

Writing assignment Due Monday, October 21 Generate a random integer x in the range [1,15] Analyze to what extent chapter x of Mythical Man-Month is relevant in 2002 Expected length, 3 pages

Lecture goals Identify common problems which lead to software projects failing Understand risk management techniques

It’s not just software projects that fail Tacoma Narrow’s Bridge The Kingdome UW EECS Building

Software project failures Software projects have a reputation for failure Probably well deserved Many examples of massive cost over runs, release delays and cancellations

Project Failure Not delivering working program on targeted date Overrun on time/budget Under delivery of functionality or quality

All to common case Project starts out fine, with a few minor changes in requirements, delays of supporting activities and changes in personnel Coding proceeds at a good rate with most modules almost working at the point when the system is to integrated

Then everything goes wrong Integration reveals incompatibility between components Integration reveals severe bugs in components Unexpected hardware or software change And a few random disasters Source code lost, key people directed to other tasks, sudden changes in requirements or schedule

What happens next Devs code like hell Test and documentation held up Fixing and patching bugs Significant changes in architecture or functionality on-the fly Test and documentation held up “The build is broken – I can’t do anything” Long hours Negative team dynamics Damage control activities

Day of reckoning Substandard product shipped Schedule shifts “It’s just version 1.0 – we can issue an upgrade” Schedule shifts Project cancelled or downgraded

Classic Mistakes McConnell, Rapid Development People related mistakes Process related mistakes Product related mistakes Technology related mistakes

People issues (high level) Personnel management Functioning team Relationship with customer Management issues Management support and competence

People related mistakes Motivation Weak personnel Problem employees Heroics Adding people to a late project Crowded offices Friction between dev and customers Unrealistic expectations Lack of sponsorship Lack of stakeholder buy-in Lack of user input Politics over substance Wishful thinking

Process issues (high level) Accurate planning Realistic scheduling Contingency planning Paying attention to all stages of product development

Process related mistakes Optimistic schedules Insufficient risk management Contractor failure Insufficient planning Abandonment of planning under pressure Wasted time in “fuzzy front end” Shortchanged upstream activities Inadequate design Shortchanged QA Insufficient management controls Premature convergence Omitting necessary tasks from estimates Planning to catch up later Code-like-hell programming

Product related mistakes Requirements gold-plating Feature creep Developer gold-plating Push-me, pull-me negotiation Adding new tasks when schedule slips Research-oriented development

Technology related mistakes Sliver-bullet syndrome Overestimating savings from new tools or methods Switching tools in the middle of a project Lack of automated source-code control

Questions To what extent are these problems specific to software projects? Are there characteristics of software projects that make them more likely to occur? Why do people make the same dumb mistakes over and over again?