Why Software Systems Fail

Pancham Bansal

1.0 Introduction

In this report I will be concentrating on the failure of software systems. To understand why software systems fail we need to understand what are software systems. Software systems are a type of information system. This is because a software system is basically a means for hardware to process information. Flynn?s definition of an information system is:

"An information system provides procedures to record and make available information, concerning part of an organization, to assist organization-related activities."

Humans have been processing information manually for thousands of years, but with the vast increase of demand for knowledge this century has meant that a new method of information processing has been needed. Software systems have provided a new means that is much faster and efficient. As a result a huge number of organisations have become software dependent. Some of these systems are used to safeguard the lives of many people. This means that if these systems were to fail they could lead to devastating consequences. Here are some examples of where software systems are used heavily and could be very dangerous if they were to fail - aviation, hospitals, space exploration, nuclear power stations and communications. I will be looking at some examples of actual software failure in these fields to explain the reasons why systems fail.

2.0 Reasons for Systems Failure

If software systems failure can be so dangerous why can they not be completely eliminated? According to Parnas, "The main reason is that software can never be guaranteed to be 100% reliable. Software systems are discrete-state systems that do not have repetitive structures. The mathematical functions that describe the behaviour of software systems are not continuous, and traditional engineering mathematics do not help in their verification." In other words some software can be so large that thorough testing can be almost impossible and so bugs in the software can go unnoticed. An example of this was when an Atlas-Agena rocket veered off-course when it was ninety miles up. Ground control had to destroy the $18.5 rocket. The reasons for this - a missing hyphen. However there are many more reasons for software systems failure, and most of them are due to human negligence that leads to software failure. There are two types of software systems failure. These are in the design stage of the software or in the implementation of the software. These are the main reasons for systems failure.

Poor software design - Fundamental flaws in the design of the software.

Incorrect requirements specifications - The brief is inconsistent or missing vital information.

Political / Commercial pressures - This can lead to developers skipping parts of the system to save time or money. There are also cases of rivalry between sub-contractors, which damages the design of the system.

Incorrect analysis and assumptions - Predictions based on incorrect assumptions of the real world or its behaviour.

Not properly tested software implemented in a high risk environment - This is almost guaranteed to lead to systems failure.

Poor user-interface - Makes it difficult or even impossible for the user to operate the software system.

Incorrect fit between software and hardware - Incorrect specification of the hardware type in the brief, or upgrading the hardware without upgrading the software (or vice-versa).

Inadequate training given to the operators - The people who have to use the software are not taught properly how to use the software system or they are expected to learn on their own.

Over reliance on the software system - The operators expect their software system to work in all conditions and to perform miracles for them.

I will be looking at these types of systems failure with examples.

2.1 Poor software design

- the Denver airport automated luggage handling system
An example of poor software design is the Denver International Airport luggage controller. In this case Jones says that the senior executives did not have a sufficient background in software systems and as a result accepted "nonsensical software claims at face value". The airport boasted about its new "?automated baggage handling system, with a contract price of $193 million, will be one of the largest and most sophisticated systems of its type in the world. It was designed to provide the high-speed transfer of baggage to and from aircraft, thereby facilitating quick turnaround times for aircraft and improved services to passengers." The baggage system, which came into operation in October 1995, included "over 17 miles of track; 5.5