Causes Of Software Project Failure
By Muhammad Saqib
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 and 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 and 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 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.
The estimation tool must have the capability to analyse all the parameters and come up with the accurate estimation for the cost.
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.
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.
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.
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.
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.
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.
This essay has presented three basic factors which can cause the software development project to fail. Planning and 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 and 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.
1infoNet is an Advisory Service funded by JISC retrieved on November 26 2006 from http://www.jiscinfonet.ac.uk/ Jones, Capers, Patterns of Software Systems Failure and Success, International Thompson Computer Press, Boston, Mass., 1996. Boehm, B.W., “Software Risk Management: Principles and Practices”, IEEE Software, January 1991 http://sunset.usc.edu/classes/cs510_2003/notes/risk.pdf “Software Risk Management: Back to Basics – The Top 10 (or so) Software Risks”, Software Technology Conference, 2003