In today's software development oodles of resources are consumed, and manual steps are carried out. The process phases run consecutively, completely separate from each other. After completing a phase (whether successful or not), the work results are tossed over the so-called ‘wall of confusion’. True to the motto of ‘devil-may-care’. This procedure results in the following main problems, which can be encountered in the same ways in a wide variety of organisations:
- Many manual steps, which make the overall process slow and susceptible to errors.
- Quality assurance and testing as separate phases at the end of the overall process.
- Security requirements and other non-functional requirements, such as load and performance or maintainability, are only discussed and checked just before final delivery.
- Lack of collaboration due to separate working areas and phases