Projects with a significant software content are particularly problematic. Software can be treated as a product, although it is less tangible than the familiar products of manufacturing processes such as furniture. Software is difficult to measure (there is wide disagreement about what measures can or should be applied and how they can be used), very complex and subject to human error as the outputs of one project phase are translated for the next phase. This is most serious where the software is critical to human safety. However, software development is similar to engineering when it involves a defined process with clear activities, each of which has one or more products that can be tested against the user’s requirements.
Having studied this section you should be able to:
- suggest reasons why projects with a software content are problematic
- describe the elements of a basic software development process
- describe the phased development life cycle
- draw up a brief plan for a phased development project based on a simple scenario of the project requirements
- describe the prototyping life cycle
- explain why agile methods might be chosen over proprietary methods for the development of software
- suggest ways in which phased development, prototype approaches or agile methods can contribute to the development of software.