Monday, April 17, 2006

Why do software projects fail so often?

Why Do Software Projects Fail?

“What are the chances that this project will succeed…?”

For most companies and entrepreneurs starting on a new software project, this is one of the first questions that are considered. Unfortunately, the question is a very relevant one. Studies conducted by major research groups show that 50% of software projects fail today.

Why do software projects fail? Are there preventive measures to avoid software project failure?

A recent research project at 'The Standish Group' has identified reasons for software project failure. Lets have a look at the results of the research project.

For purposes of the study, projects were classified into three resolution types – Resolution Type 1 or project success, Resolution Type 2 or project challenged and Resolution Type 3 or project impaired.

Resolution Type 1 or project success:

The software project is completed on-time and on-budget, with all features and functions as initially specified.

Among the Project Success Factors, it was noted that ' Clear Statement of Requirements' was ranked third in importance for the success of a project, after User Involvement and Executive management Support.

Resolution Type 2 or project challenged:

The software project is completed and operational but over-budget, over the time estimate, and offers fewer features and functions than originally specified.

'Incomplete Requirements and Specifications' was cited as the second main reason for exceeding the budget and time

Resolution Type 3 or project impaired:

The software project is canceled at some point during the development cycle. Here again, Incomplete Requirements was the main reason cited for the failure of the software project.

Overall, the success rate was only 16.2%. Challenged projects accounted for 52.7%, and impaired (canceled) for 31.1%.

The table below lists the criteria for software project success in order of importance.

SUCCESS CRITERIA POINTS
1. User Involvement 19
2. Executive Management Support 16
3. Clear Statement of Requirements 15
4. Proper Planning 11
5. Realistic Expectations 10
6. Smaller Project Milestones 9
7. Competent Staff 8
8. Ownership 6
9. Clear Vision & Objectives 3
10. Hard-Working, Focused Staff 3
TOTAL 100


The chart clearly shows that 3 major factors greatly influence the success of a project - User Involvement, Executive Management Support and Clear Statement of Requirements.
Out of these, “Clear Statement of Requirements” scores 15 points and is one among the top 3 reasons for the success or failure of a Software Project. It is clear therefore that Requirement Definition is a crucial step in Software Development. Read about our Requirement Analysis process here.

Requirements Evolution

Requirements & Analysis is one of the most important and often most neglected activities of the software development life cycle. A good requirements model fosters communication between the business and IT by enabling them to share a common vision of the system’s solution prior to implementation. This will ensure that the system meets the business needs, can be delivered on time, and have the level of quality and flexibility to easily accommodate future business needs.

Requirement Capture and Analysis - The Difference

Requirements Analysis
  • To determine what needs to be built
  • To understand users and their potential usage of the system.
  • To determine what users want to have built.
  • To describe what the customer requires
  • To understand what will be built
  • To understand why it should be built
  • To determine how much it is likely to cost. (estimation)
  • To determine the order in which should be built (prioritization)
  • To understand the system itself and explore the details of the problem domain
  • To understand how it will be built
  • To identify and translate business goals and needs into system features, and use them to derive both functional and nonfunctional (technical) system requirements
  • To ensure that it represents the middle ground between requirements and design
  • To define a set of requirements that can be validated
  • To establish a basis for the creation of a software design

How can we ensure that we have specified a system that properly meets the customer’s needs and satisfies the customer’s expectations?

There is no foolproof answer to this difficult question, but a solid requirements engineering process is the best solution we currently have.

Requirements engineering provides the appropriate mechanism for understanding what the customer wants, analyzing needs, assessing feasibility, negotiating a reasonable solution, specifying the solution unambiguously, validating the specification and managing requirements as they are transformed into an operational system. The requirements engineering process can be described in five distinct steps-

  • Requirements Elicitation
  • Requirements Analysis and negotiation
  • Requirements Specification
  • System modeling
  • Requirements Validation
  • Requirements Management