We would expect quality to be a concern of all producers of goods and services.
- Increasing criticality or software
The final customer or user is naturally anxious about the general quality of software especially its reliability. This is increasingly the case as organizations become more dependent on their computer systems and software is used more and more in areas that are safety critical, for example to control aircraft.
- The intangibility of software
This makes it difficult to know that a particular tusk in a project has been completed satisfactorily. The results of these tasks can be made tangible by demanding that the developer produce deliverables’ that can be examined for quality.
- Accumulating errors during software development
As computer system development is made up of a number of steps where the output from one step is the input to the next, the errors in the earlier deliverables will be added to those in the later steps leading to an accumulating detrimental effect. In general, the later in a project that an error’ is found the more expensive it will be to fix. In addition, because the number of errors in the system is unknown, the debugging phases of a project are particularly difficult to control.
For these reasons quality management is an essential part of effective overall project management.
However, the special characteristics of software and in particular its intangibility and complexity, make special demands.