Anda di halaman 1dari 21

Why do software projects fail?

Gilberto Pedraza Garca

GOOD COOKING TAKES TIME. IF YOU ARE MADE TO WAIT, IT IS TO SERVE YOU BETTER, AND TO PLEASE YOU.
MENU OF RESTAURANT ANTOINE. NEW ORLEANS

Overview

Context Software project problems Mythical man-month Possible solutions Lessons learned

Context Software improving the quality life of people. Software production is a very complex and expensive task. The global software market exceeds 541 billion dollars. Software costs are composed for:
Direct cost related with its production; Indirect cost as training, installation and maintenance; Hidden costs such as those caused by faults.

Problem

In 1995 a study conducted by the consulting Standish Group found that


31% of software projects were cancelled 53% challenged Only 16% successful.

Failures in software systems

Technology evolution

Problem (2)

Source: Standish Group survey

Not enough time

Deadline date is defined before the projects start

Lack of communication between the participants

Insufficient budge for the project

Policy: lowest price most successful candidate

The poor quality of software


Gap

between software engineering and software management Product oriented No documentation No project measurement

A reactive management policy for defects

Mythical man-month (1)

Mythical man-month (2)

Mythical man-month (3)

Adding manpower to a late project makes it later

Mythical man-month (4)


Brooks' observations are based on his experiences at IBM while managing the development of OS/360. The mythical man-month
Brooks discusses several causes of scheduling failures. The most enduring is demonstrating Brooks's Law: Adding manpower to a late software project makes it later.

The second-system effect


When an architect designs a second system, it is the most dangerous system he will ever design

Mythical man-month (5)


The tendency towards irreducible number of errors
Any attempt to fix observed errors tends to result in the introduction of other errors

Progress tracking
"Question: How does a large software project get to be one year late? Answer: One day at a time!"

Conceptual integrity
To make a user-friendly system, the system must have conceptual integrity, which can only be achieved by separating architecture from implementation

Why is software project disaster so common?


1. Estimation techniques are poor & assume things will go well (an unvoiced assumption) 2. Estimation techniques fallaciously confuse effort with progress, hiding the assumption that men and months are interchangeable 3. Because of estimation uncertainty, manager lack courteous stubbornness 4. Schedule progress is poorly monitored 5. When schedule slippage is recognized, the natural response is to add manpower. Which, is like dousing a fire with gasoline.

Solutions

Not enough time


Planning should involve project management activities in addition to the activities of software engineering

Lack communication
The software architecture is the tool to communicate decisions that impact on the project and it is the site to achieve the agreement of stakeholders and project participants.

The poor budgeting of the project


To identify and guide the planning with the functional requirements of the project.

Solutions (2)

Poor quality
Documentation of project activities Identification and definition of process Monitoring activities Definition of metrics Measuring process Postmortem task to end each cycle of development

A reactive policy for defect management


Software costs decreases when the defects are detected at early stages

lessons learned

The process of software development is complex. Some proposed solutions can not be quantified and they are developed by people. Devote more effort in planning offers more chance of success in the project. Future projects need to learn from past mistakes.

Questions

g.pedraza56@uniandes.edu.co

Anda mungkin juga menyukai