Software Development Approaches
Contents
Waterfall Approach
A very formal approach, where phases of the SDLC are carried out in a sequential manner
Each phase completed before progressing to the next one
Good for software with very clearly known and explicit requirements without and ambiguitiy
- Costly to go back a stage
- Rigid
- No working software produced until late into the SDLC
- Very stable
Iterative/Incremental Approach
- Break the problem into smaller pieces and prioritise them
- Incremental deliverables + customer feedback
Models
- Unified Software Development Process
- Requirements, analysis, design, implementation of each approach
- Timeboxed
- Rational Unified Process
- Agile
Why Agile?
Whilst agile development is more error-prone, it is rapidly becoming a more suitable development approach due to the improved productivity, quality, costs and satisfaction of the project.
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over fixed terms and contracts
- Adaptation to change