Increasing criticality of software – e.g .software is increasingly being used in systems that can threaten or support human life and well-being
The intangibility of software – it is difficult for observers to judge the quality of software development, especially during its early stages
Project control concerns:
The products of one sub-process in the development process are the inputs to subsequent sub-processes, thus
errors accumulate with each stage e.g. at the design stage, the specification errors are incorporated into the design, and at the coding stage specification and design errors are incorporated into the software
errors become more expensive to remove the later they are found
it is difficult to control the error removal process (e.g. testing)