Learning Objectives
By the end of this topic you will be able to:
Describe the Waterfall model and its phases
Describe the Agile approach and iterative development
Describe RAD, Spiral and Extreme Programming (XP)
Compare methodologies and select appropriate ones for given scenarios
Waterfall
Waterfall Model
Waterfall is a sequential, linear development model. Each phase must be fully completed before the next begins. Phases: Requirements → Design → Implementation → Testing → Deployment → Maintenance.
Advantages
Simple to manage. Clear milestones. Well-documented. Good for stable, well-understood requirements. Easy to schedule and budget.
Disadvantages
Inflexible — difficult to change requirements once started. Customer sees working software only at end. Problems found late are expensive to fix. Poor for evolving requirements.
Suitable for: safety-critical systems (aerospace, medical devices), projects with fixed requirements and regulatory compliance needs.
Agile
Agile Methodology
Agile is an iterative, incremental approach. Work is divided into short sprints (1–4 weeks). Each sprint produces working software that is reviewed with the customer.
Customer involvement: continuous feedback throughout development; requirements can change between sprints.
Working software: a usable product increment is delivered at the end of each sprint, not just at the end of the project.
Cross-functional teams: developers, testers and business analysts work together in small teams. Daily stand-up meetings track progress.
Suitable for: web applications, startups, projects where requirements are unclear or likely to change. Poor for safety-critical systems requiring full upfront specification.
Other Methodologies
RAD, Spiral and XP
RAD (Rapid Application Development): uses prototyping and user feedback to quickly develop applications. Customer reviews prototypes and feedback shapes next version. Fast delivery; less planning upfront.
Spiral: risk-driven. Each cycle: objectives → risk analysis → development → evaluation. Risk analysis at start of each spiral helps identify and mitigate potential failures early.
Extreme Programming (XP): Agile variant emphasising pair programming, test-driven development (TDD), continuous integration, simple design and refactoring. Code is reviewed continuously.
Common Mistakes
Don’t Lose Marks
!
Saying Waterfall is always worse than Agile — Waterfall is better for projects with fixed, well-understood requirements and regulatory compliance needs. Always relate to the given scenario.
!
Saying Agile means no planning — Agile still involves planning (sprint planning, backlog grooming). The difference is requirements can adapt; it is not an absence of structure.
!
Confusing Scrum and Agile: Agile is a philosophy/set of values. Scrum is a specific framework that implements Agile principles. Scrum is one type of Agile.