Early software often had a list of inadequacies, bugs and other problems due to a range of problems caused by inexperience both in developers and potential users. Over time, five areas within the process of software development were identified as being the main culprits for arising difficulties.
- Requirements
- Schedules
- Testing
- Feasibility of Changes
- Communication