Major reasons for failure of software projects includes:
- lack of a complete requirements specification;
- lack of appropriate development methodology;
- poor decomposition of design into manageable components.
Structured approach to development was proposed called Information Systems Lifecycle (ISLC).