Causes Of Software Project Failure
Most software projects fail completely or partial failures because a small number of projects meet all their requirements. These requirements can be the cost, schedule, quality, or requirements objectives. According to many studies, failure rate of software projects is between 50% – 80%. This essay is a compilation of failure causes of software development projects; this essay summarises several areas that play a vital role in software project failure.
So, what really is the reason for software project failure? The sad fact is that software projects fail because we do not recognize that good engineering principles should be applied to software projects just as they are to building office buildings. We try to defend ourselves by saying that software construction is “different”.
One of the most serious complaints against software failure is the inability
to estimate with acceptable accuracy the cost, resources, and schedule necessary
for a software project. Conventional assessment methods have always produced
positive results which contribute to the too well-known cost infested and
schedule slippage.
Over the last 20 years many cost and schedule estimation techniques have been
used with mixed sensation due to restrictions of the assessment models. A major
part of the estimations failure can be due to a lack of understanding of the
software development process and the effect of that method used in the project
plan, schedule and cost estimates.
Failure Case Studies
Below are few of the case studies considered which will be analysed to fetch
the main reasons of failure of the software system.
Northumbria University developed accounting software to manage its day to day
business. The project could not come up with the desired results and failed to
meet the deadlines. Te investigations showed that the basic project management
procedures were not followed. This case study is referenced in this essay at
different points where necessary. [1]
Thai subsidiary (SMTL) of a Hong Kong-based multinational company (SMHK)
engaged in the manufacturing of electronic equipment. They implemented an
integrated software package; which was a failure at the several factors. These
factors were mostly management related. Such as a poor fit between the business
process assumptions inscribed in the software and the business processes in SMTL,
poor leadership at different levels, cultural differences, organizational
environment, and poor human resource management.
St John’s Hospital is a District General Hospital provides medical and
nursing services, which includes both general surgery and medicine.All these
services are supported by diagnostic imaging, laboratory, ambulance, pharmacy
and therapy services, which are all on site. As the major hospital in a tourist
area, it deals with many visitors in the holiday season, generating a large
amount of non-booked admissions work.
Software Management & Leadership
It has been shown repeatedly, that effective leadership is essential for successful IT implementation (Klenke, 1994). A leader must also have cultural sensitivity, communication skills, creativity, ability to delegate, and the ability to develop and retain human resources (Luthans, 1994). The software manager at (SMHK) was a western, where as the lower managers were Eastern. So there was a cultural clash going on always. Jack (Manager) always try to introduce creative thoughts. And most of the time the lower management could not do them. Hence there was a clash going on all the time.
Employees also felt that management hardly ever “listened” to their concerns
or attempted to address them. Consequently, many employees were eager to leave
the company, and did so as soon as they found alternate opportunities in other
companies.
Project Planning & Scheduling
Project planning means creating work breakdown, and then allocate responsibilities to the developers over time. Project planning consists of construction of various tasks, timelines and essential pathways including Gantt charts and PERT charts and different written plans for various situations.
It is quite usual in software development process to work backward from the
project end date which results in complete software project failure. It is
impossible that a project can be completed efficiently from the planning stage
to the implementation stage.
Allocation of roles and responsibilities has to be clearly defined, and it
becomes crucial while hiring the stall from outside. University’s higher
management failed to apply the basic project management rules which laid to the
project failure.
Proper scheduling is also required before the start of the project. It
includes the time scheduling, teams scheduling. Project managers don’t know what
they have to plan and schedule. They just only tell the programmer what to do
and the programmers can come up with a proper solution.
The development was moved to a new office and the office was not fully
equipped with the proper infrastructure. As time is also a big factor in success
or failure of a project. So it delayed the development process and contributed
towards the project failure. Infrastructure was not fully scheduled and
management team didn’t know where and how the project development will be
started.
The top secret of a winning software development project is to control the
quality up and lower the risk. Contingency plan is also the part of planning. In
case things went wrong then this plan can be followed to lower the affect of the
failure of project. Same was the case with university’s accounting software. The
management team had no such a contingency plan nor did they evaluate the risk
involved in the development of the new system. So it caused more trouble without
the backup system or backup plan.
The management just try to follow the methodologies like SDLC or RAD, but don’t know which methodology to use and at which time should apply the right technique.
Cost Estimation
Cost estimation is mainly involved the cost of effort to produce the software project. But it’s not limited to the effort only. It also includes the hardware and software cost, training the employees and customer, travelling to the customer, networking and communication costs. Cost estimation should be done as a part of the software process model.
Cost estimation needs to be done well before the start of the project
development. Failure of the budgeting for the cost of the project results in
complete disaster. As stated above the infrastructure cost, development tools
cost and hardware cost also needs to be estimated first.
Same thing happened to university’s accounting system development. They
purchased the new system well with out any serious estimation of the cost and
the income sources.
Below are the reasons why wrong cost estimation is done.
Inappropriate estimation methodology
Another reason would be the use of an inappropriate cost estimation methodology. Not a single methodology is better than other. Every methodology has its own strong and weak points which should be considered. Dr. Barry Boehm’s book Software Engineering Economics lists seven estimation methodologies. One or more of these methodologies can be used to estimate the cost of a project
“Good suggestion is that more than one software cost estimation methodology
should be used for accurate estimation”.
Cost estimation tools
There are many drawbacks in manual cost estimation. This technique is almost obsolete now. These days successful cost estimation includes the use of appropriate commercial software cost estimating tool.
Good software estimating tools do not always guarantee reliable software
estimates. Wrong input of the software size will result in wrong estimate.
Estimation software also needs to be customised for the specific need of
organization. These customisations require the data from the past projects as
input for the tool to estimate.
There are number of reasons these tools can return the wrong estimate.
Choosing the right estimation tool
Choice of a right estimation tool is necessary for the right estimation. The tool is not capable of handling the input and thus it can come up with the wrong estimate and hence cause the software project to fail.
Ease of customisation
As mentioned above the selected tool must be customisable according to the organisation needs, so that the organization can customise it according to the needs and past project data.
Easy to use and learn
The cost estimation tool should be easy to use and learn. It must include help and examples, simple and straight forward user interface. It must require less training to learn the system and inputs should be well defined.
Accurate Estimation
The estimation tool must have the capability to analyse all the parameters and come up with the accurate estimation for the cost.
Risk Management
Risk management is an important factor towards software project failure if it’s not managed timely and effectively. As nothing can be predicted that what will happen in future so we have to take the necessary steps in the present to take any uncertain situation in the future. Risk management means dealing with a concern before it becomes a crisis.
Risk Identification
According to the Universal risk Project there are two types of conditions which can be a symbol of as risk.
- IF-THEN Statements
- “IF technology is not available, THEN we will not meet the requirement”
- “IF we cannot hire sufficient qualified software engineers, THEN we cannot meet the planned development schedule
- CONDITION-CONSEQUENCE Statements
- Given the “condition”, there is a likelihood that the “consequence” will occur
- “Given that this specific test fails (the CONDITION), the CONSEQUENCE is that the planned schedule will slip”
Project managers have to identify the areas where the risk can be and how it
can affect the development of the project. Risk can be of technical nature or
non technical. Project managers needs to be aware of both the risks. Most of the
projects managers are not good in either of the side. A good manager with
programming skills can be good in identifying the technical risk but not in non
technical risk.
Risk Analysis
After the risk is identified there is a need to make the categories of that risk. Risk analysis is the process of examining the project results and deliverables after the risk analysis and applying the technique to lower the risk. After risk analysis is complete, the proper risk analysis plan needs to be made to cope with any uncertain situation. First identified risks are categorized and make the hierarchy of those risks. At this point the risk is classified as the positive or negative risks.
Risk Prioritization
After the risk is analyzed, the next step is to priorities the risk. At first focus on the most sever risk first; and les sever later. These risk factors can worked from time to time so that the final project out come is free of risk. So most of the time project management team fails to identify the sever risk and work on the less sever risk. This often results in the form of a crisis.
Risk Avoidance
Dealing with the risk is an art. Some times the management takes the projects with out identifying the proper risk involved in the project. So an experienced manager will take the project after proper risk analysis and avoid any risk involved in the project.
Risk control
Managing the risk to achieve the desired results and deliverables is done through controlling the risk at its best. This is a pure intuitive process and depends on the experience of the project management team, or risk already managed in past projects which were done by the same organization.
Conclusion
This essay has presented three basic factors which can cause the software development project to fail. Planning & Scheduling, cost estimation and risk management. All of these factors are to be considered at the management level and then transferred to the lower management.
Planning & Scheduling comes at first, good planning and scheduling makes the
strong foundation for the software project. Project planning consists of
construction of various tasks, timelines and essential pathways including Gantt
charts and PERT charts and different written plans for various situations. If
these factors are not taken into part then the software may encounter problems
during the development and the final product will be a failure.
Cost estimation depends on the budget of the project, customer type and the
size and effort to be put in the project. Cost estimations are done many times
during the life cycle of a project. It affects the project in many ways, wrong
estimation complete failure, affect the good-will of the organisation if the
costs are not covered, stake holders are affected and waste of resources.
Managing the risk is a practical approach for decreasing the ambiguity and
possible loss related with a software development project. Potential measures
can be considered as opportunity-focused (positive risk) if their consequences
are favourable, or as threat-focused (negative risk) if their consequences are
unfavourable.