Professional Documents
Culture Documents
Why Software Projects Fail Empirical Evi
Why Software Projects Fail Empirical Evi
Abstract. In this paper we present an empirical study on factors that cause the success
or failure of a software project. The study deals with the definition and validation of
metrics and indicators to make more objective the meaning of success (and conversely
failure) of a project, and correlates characteristics of a project (such as experience of the
staff and the project manager, techniques used for requirement engineering, and so on)
with its result. The study, performed on a number of Italian companies, can be easily
replicated in other countries or within a company, in order to assess its software
processes and steer its process improvement initiatives.
1 Introduction
Software metrics are meant to be measures in the scientific sense of the term, with
the goal of giving objective views on software related objects and phenomena.
The well known problem of software development is that there is very little
scientific foundation to the subject. Electrical engineers can use physics as the
foundation of their activities. As a result the measures they use in their daily work,
such as Volt and Ampere, correspond to well defined phenomena (electric potential,
electric current), and satisfy the rules and properties defined by theories of
measurement, such as the representational theory [11]. The models they use, such as
the Ohm’s law, are experimentally validated and expressed in mathematical form.
In software engineering we have a hard time in defining the objects and properties
(what is exactly the size of a software program? And the complexity?). Not
surprisingly measuring an ill defined property is a hard task (are Lines of Code a valid
measure of size?). Models relating properties are therefore hard to find and validate.
Some models, for instance the relationship between effort and size, correspond to the
common perception of engineers (larger programs require more effort) but are hard to
express in a general form (is the relationship linear, exponential?). Other models are
simply envisaged but still very fuzzy (what is the relationship between effort in
integration testing and post release defect rate?).
Initially, the software engineering community has attacked the problem of defining
software measures as a hard science problem. The Software Science approach by
Halstead [15] in the mid seventies could be mentioned as an example of the optimism
in that period. However, these approaches were completely missing the validation
part, and the importance of human factors.
300 Proceedings of the IWSM - Mensura 2007
The key point here is that software development is not a hard science, but it is a
human, brain intensive activity. Human factors play a key role (it is well known that
productivity varies of a factor of ten and more among developers [10]), therefore
software development should be regarded more as a soft science, such as sociology,
economics, and partially medicine. The misunderstanding here comes from several
• Software runs on computers, hard objects based on hard science and hard
context factors:
Forty years after the start of the discipline of software engineering, software
projects still fail. And, according to Cusumano [9], they fail for reasons very similar
now and at the beginning of the history of the discipline, usually situated at the
Garmisch NATO software engineering conference in 1968.
While a plethora of papers have been written about the topic, very often we can
find a confusion between two quite different concepts: what we mean for a successful
project or product (we will call this success indicator) and what causes a project to be
successful (we will call these success or failure factors). Both indicators and success
factors are, in the end, measures, and should be defined and validated accordingly.
Despite the importance of analyzing key success and failure factors in software
projects, there are a limited number of studies on the topic. The Chaos report [25] is
the one with the largest sample of projects analyzed, and points out an impressive
failure rate. However, the methodology followed by the study has never been
published in detail. Glass [14] points out that the sample of projects considered could
be biased towards failures.
What is a project success? (or else, what are the indicators of a successful
project?) The most adopted definition is the one of the Standish Group [25], i.e.
within planned budget and schedule, and meeting business objectives. Kerzner [17]
adds to the previous definition meeting performance requirements and obtaining user
acceptance.
So what is a project failure? Is a project that is “one day late, or one dollar over
budget, or one requirement short” [20] an unsuccessful one? As Ryan Nelson [20]
states, definition of success or failure is a very subjective factor, and it depends on the
stakeholders.
Different authors have asked software developers, managers and other stakeholders
about their perception of success. Several studies have been made to analyze
successful/unsuccessful projects and to define key success factors.
Agarwal and Rathod [1] define three groups of stakeholders:
Programmers/Developers, Project Managers and Customer Account Managers. The
authors conclude that for these stakeholders “meeting the scope of software project,
which comprises the functionality and quality of the project outcome, is the highest
determinant of success”. Their study is based on 105 answered questionnaires from 19
organizations.
Procaccino et al. [23, 21, 22] have conducted in 1999, 2001 and 2003 three
empirical studies and have analyzed responses of 21, 31 and 76 IT professionals for
their perception of success. The later studies have confirmed the results of the earlier
ones. The findings suggest that the most important factors are mainly two: “namely
the importance of personal aspects of the work and customer/user involvement” [21].
Personal aspects include, for example, the feeling of doing a good job and
professional growth. Besides, there are some differences between the managers and
developers perception of project’s success. From the developers’ point of view the
most important factors are realistic expectations of customers and users, and well
defined scope of the project. Managers find most important participation of customers
and users in estimating project schedules [23]. User involvement is not only indicator
of the project success but also an important critical factor. Besides this one, critical
302 Proceedings of the IWSM - Mensura 2007
factors include sponsor support, project manager authority, enough time for
requirement elicitation [23], clear and understandable requirements, skilled team,
feedback from project manager and defined methodology [24].
Verner et al. [28] analyzed 102 projects in USA and Australia. They find as
success factors a well defined scope for the project, confidence of the customer in the
development team, correct management of the requirements, and effective risk
management by the project manager.
Verner and Evanco [27] surveyed 101 respondents about 122 projects. They found
the following factors explaining the major part of projects’ success: good project
manager and his communication skills, good requirements and project vision.
Berntsson-Svensson and Aurum [3] have performed an analysis on 27 projects in
15 Swedish and Australian companies. They find that key success factors are
complete and precise requirements, good size estimation, and involvement of the
customer. They also use a more comprehensive definition of success. Beyond the
standard, ‘internal’ definition of successful project (within schedule, within budget),
they add an ‘external’ view: adding value for the customer, measured in term of
customer satisfaction.
Taylor [26] analyzed 25 outsourced IT projects in Hong Kong. They identify as
success factors schedule and budget management, vendor staffing, understanding of
requirements, client expectations, and change management.
From a literature review Nah et al. [19] define top management support, business
plan and vision, effective communications as critical software project success factors.
Wohlin and Andrews [29] have added factors such as project planning and ability
to follow the plans, as crucial for the project success.
Besides, there are other studies, like NASA report [18] with DOs and DON’Ts for
the project success. In addition to what other authors have pointed out, they suggest
mainly minimizing the bureaucracy and not relaxing the quality goals. The last one
demotivates developers, since most of them are quality oriented.
In summary we have seen that the standard definition from project management
literature of the project success, such as “in time, within budget”, was extended by
many researchers to include also other stakeholders points of view. For developers, a
project is successful when they understand requirements, are not under schedule
pressure, do a good job and grow professionally. For the managers, user satisfaction is
an indicator of a project’s success. Robert Glass has proposed this formula to
summarize all: “User satisfaction = quality product + meets requirements + delivered
when needed + appropriate cost.” [12]. Critical factors that explain projects’ success
are mainly: customer trust and involvement; experienced managers that perform risk,
schedule and requirements management and negotiation; complete and precise
requirements; good estimation of effort and workload; support from sponsors and top
management.
Our goal is to gain more knowledge on the issue of failures and successes of
software projects. On one hand the previous studies have a limited scope, both in
303 Proceedings of the IWSM - Mensura 2007
number of projects considered and in their geographical location. On the other hand
software development has changed in the last years, because of outsourcing, off-
shoring, emphasis on web based, distributed applications, integration of open source
or commercial components.
Besides, from a methodological point of view the results of the previous studies
can only partially be merged. The model underlining all studies is the one reported in
Figure 1, but factors and projects success or failure are defined in different ways.
result = success
or failure
Figure 1. The model relating factors and result of software project.
Therefore, the starting point of any study could be a careful definition of success or
failure, and a comprehensive definition of factors.
As discussed in the previous section, the more general definition of the result of a
project considers two points of view
z internal, or strictly related to project management: satisfaction of budget,
software product or service that is used by and is useful for the customer
Unfortunately there are too many different definitions of success (both internal and
external) therefore in our study we do not provide a definition of success. We prefer
to ask the respondents to point out whether a project is successful or not. In other
words here the goal is to develop a definition of success from the answers of the
interviewees, instead of imposing our definition.
Next, a study has to provide a list of factors that can influence the result of a
project towards success or failure. We use the same list of factors of [3] in order to be
able to combine the results form the two studies. The factors are listed in Table 1
together with a short description. Basically these factors cover the size of the project
(in term of effort spent and number of staff involved), the project manager (in terms
of his/her experience), the requirement engineering process, and the project
management process (including if the project ended up on time and within budget).
In other words, are there any actions, behaviors, attitudes that are clearly different
in a successful project than in a failed one? To support this comparison of successful
and failed projects, each respondent was requested to consider two projects he knew
well, one failed and one successful; and answer twice to the questions, one per
project.
We designed the empirical investigation as a case control study: as already stated
each interviewee answers about a successful project and a failed one. With such a
design we will not be able to find out the percentage of projects that fail. That figure
is of course considered strictly confidential by software organization and it is outside
the scope of our study.
The questions are framed in a questionnaire, largely inspired by [3], that is made of
4 sections
z General information about respondent and company
z Information about a successful project
305 Proceedings of the IWSM - Mensura 2007
The questionnaire was administered, over the period January 2007 to March 2007,
using telephone and personal interviews. The contacts selected were software related
companies located in north-west of Italy and sampled randomly from the Italian
yellow pages database.
Actually we collected many more measurements than presented here; for the sake
of space we focus only on metrics that are relevant to the research question under
consideration.
In particular (as shown in Table 1) we have one dependent variable (i.e. success of
failure of the project) and a set of independent variables representing mostly success
factors. Actually two of them (whether the project was completed within time or
budget) are success indicators.
3.1 Results
1 http://www.r-project.org/
306 Proceedings of the IWSM - Mensura 2007
Median
Metric Test Success Failure p-value
PM_EXP M-W 5 4 0.28
PM_INSIGHT M-W 5 4 0.12
Only 1 in 38 projects
PM_CHANGE changed PM -
In all projects PMs allowed
PM_EXTRA extra hours -
STAFF_EXTRA Fisher 0.65
REQ_DEF Fisher 0.47
REQ_INIT Fisher 0.05
REQ_AFTER Fisher 0.01
REQ_RES_TIME Fisher 0.47
OBJ_DEF Fisher 0.16
PROJ_PLAN Fisher <0.01
PLAN_QUAL M-W 5 3 <0.01
IN_BUDGET Fisher 0.52
IN_TIME Fisher 0.18
STAFF_ADD Fisher 0.02
CUST_PAY Fisher 0.39
CUST_INVOLV M-W 5 4 0.05
RISK_IDENT M-W 4 3 0.01
Table 2: Test results.
3.2 Discussion
The definition of requirements before projects starts or, if not possible, their
completion in the initial phases is a factor (p=0.05 and p=0.01 respectively) of
success. This supports the Glass law: requirement deficiencies are the prime source of
project failures [13]. This finding is also in agreement with [3] and [28].
Another important factor for project success is performing project planning
(p<0.01) and doing it well (p<0.01). This finding supports the presence of project
planning (PP) as one of the key process areas defined for level 2 in the Capability
Maturity Model [16].
In the observed projects, we found that people added to the project led to failure
(p=0.02). We get yet another confirmation of Brooks Law: adding manpower to a late
software project makes it later [6]. Or even makes it fail, as we found.
Customer involvement is another feature that likely (p=0.05) favors project
success, in agreement with [3]. Such view is also supported in the Agile Software
Development Manifesto [8], where customer collaboration is valued over contract
negotiation.
307 Proceedings of the IWSM - Mensura 2007
4 Conclusions
We have presented an empirical study on factors that may lead to the success or
failure of a software project. We start from a model with success / failure factors, as
attributes of a project, and success/failure indicators, as attributes to identify the
positive or negative outcome of a project.
At the level of success/failure factors the study confirms results of other studies
and common practices, such as the importance of sound requirements engineering and
project management, involvement of the customer and early identification of risks.
At the level of success/failure indicators, our study suggests that strict project
management metrics (such as on time, on budget) are not perceived by the
respondents as essential.
From a project management perspective this study adds more evidence to the
identification of successful practices for industry, and could be replicated within a
company to identify and support practices in a more specific, local way. From a
measurement perspective it can be seen as an example about how metrics can be
defined from empirical data, instead of from abstract models, to reflect knowledge
that is spread among software projects and developers.
Acknowledgements
We would like to thank Aybuke Aurum for her collaboration. And the master
students who worked on the field for collecting the data.
References
1. Agarwal, N. and Rathod, U.: Defining success for software projects: an exploratory
revelation. International Journal of Project Management, vol. 24, pp. 358-370, 2006.
2. Basili, V. and Selby, R.: Comparing the Effectiveness of Software Testing Strategies,
IEEE Transactions on Software Engineering, 13(12), 1987, pp. 1278-1296.
3. Berntsson-Svensson, R. and Aurum, A.: Successful Software Project and Products:
An Empirical Investigation. Proceedings Int. Symposium on Empirical Software
Engineering (ISESE 2006), pp.144-153, 2006.
4. Boehm, B.: Software Engineering Economics. Prentice Hall, 1981.
308 Proceedings of the IWSM - Mensura 2007