SDLC Methodologies: Agile and Waterfall

A-Level Computer Science · Software Engineering

SDLC Methodologies: Agile and Waterfall

The Software Development Life Cycle (SDLC) is the structured process used to develop software. Different methodologies suit different project types — choosing the right one is a crucial software engineering decision.

The Waterfall Model

The waterfall model is a sequential, linear approach where each phase must be completed before the next begins. It flows downward like a waterfall.

Phases:

1. Requirements analysis — gather and document all requirements upfront

2. System design — architecture, data structures, interfaces

3. Implementation — write the code

4. Testing — verify the software works correctly

5. Deployment — release to users

6. Maintenance — fix bugs, add features post-release

Characteristics:

  • Each phase produces documentation that feeds the next
  • No going back to a previous phase (in pure waterfall)
  • All requirements must be known at the start
  • Heavy emphasis on planning and documentation

Advantages:

  • Simple to understand and manage
  • Clear milestones and deliverables
  • Well-suited for projects with fixed, well-understood requirements
  • Good documentation produced
  • Progress is easily measured

Disadvantages:

  • Inflexible — changes are costly once a phase is complete
  • Client sees the product only at the end — late discovery of issues
  • Risk of building the wrong thing if requirements change
  • Testing happens late, so bugs found late are expensive to fix
  • Not suitable for complex or evolving projects

Best for: Small projects with clear, unchanging requirements (e.g., regulatory compliance systems, simple embedded systems).

Agile Methodology

Agile is an iterative, incremental approach that delivers software in small, frequent releases. It embraces change and values working software over documentation.

The Agile Manifesto (2001) values:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Key principles:

  • Deliver working software frequently (every 1–4 weeks)
  • Welcome changing requirements, even late in development
  • Close daily cooperation between business and developers
  • Face-to-face conversation as the primary communication method
  • Working software is the primary measure of progress
  • Continuous attention to technical excellence
  • Simplicity — maximise the amount of work not done

Scrum (Agile Framework)

Scrum is the most popular Agile framework, organising work into fixed-length iterations called sprints (typically 2–4 weeks).

Scrum roles:

RoleResponsibility
Product OwnerDefines features, prioritises the backlog, represents the customer
Scrum MasterFacilitates the process, removes impediments, not a manager
Development TeamSelf-organising, cross-functional (3–9 people)

Scrum artifacts:

ArtifactDescription
Product BacklogPrioritised list of ALL features/requirements
Sprint BacklogFeatures selected for THIS sprint
IncrementThe working software produced at the end of each sprint

Scrum events:

EventPurposeWhen
Sprint PlanningSelect items from product backlog for the sprintStart of sprint
Daily Standup15-minute progress check (what did I do, what will I do, any blockers)Every day
Sprint ReviewDemo the increment to stakeholders, get feedbackEnd of sprint
Sprint RetrospectiveReflect on the process, identify improvementsEnd of sprint

Other Methodologies

Extreme Programming (XP):

  • Pair programming (two developers, one computer)
  • Test-driven development (TDD): write tests before code
  • Continuous integration: merge code frequently
  • Refactoring: continuously improve code quality

Spiral Model:

  • Combines waterfall's structure with iterative prototyping
  • Each cycle through the spiral includes: planning → risk analysis → engineering → evaluation
  • Emphasises risk assessment at each iteration
  • Suited for large, complex, high-risk projects

Rapid Application Development (RAD):

  • Prototyping-based approach
  • Quick prototypes built, shown to users, refined
  • User feedback drives development
  • Less emphasis on planning, more on building

V-Model:

  • Extension of waterfall where testing phases mirror development phases
  • Each development stage has a corresponding testing stage
  • Requirements → acceptance testing, design → integration testing, coding → unit testing
  • Emphasises verification and validation throughout

Comparison Table

FactorWaterfallAgile
RequirementsFixed upfrontEvolving
DeliveryOne final releaseFrequent increments
Client involvementStart and end onlyContinuous
FlexibilityRigidHighly adaptable
DocumentationHeavyMinimal (just enough)
TestingEnd of projectEvery iteration
RiskHigh (late feedback)Low (early feedback)
Team sizeAnySmall, cross-functional
Best forStable requirementsChanging requirements

Choosing a Methodology

ScenarioBest approach
Requirements are clear and unlikely to changeWaterfall
Client wants to see progress frequentlyAgile
Safety-critical system (medical, aviation)V-Model or Waterfall
Innovative product, unclear requirementsAgile
Large team, distributed across locationsAgile (with modifications) or Waterfall
High-risk, large-scale projectSpiral
Tight deadline, need something working fastRAD or Agile

Exam Tips

  • Don't just list features — justify why a methodology suits a given scenario
  • Agile is not "no planning" — it plans continuously in short cycles
  • Waterfall is not always bad — it works well when requirements are truly fixed
  • In comparison questions, use a structured table covering at least: requirements, delivery, testing, flexibility, client involvement
  • Know Scrum roles and events — these are commonly tested
  • The spiral model's distinguishing feature is risk analysis at each iteration
  • When asked "which methodology for X scenario", consider: how clear are requirements? How involved is the client? How critical is the system? How large is the team?
Don't understand a part?

Sign in and ask our AI tutor to explain any passage in plain English.

Try AI explanations →

More on Software Engineering

Testing Strategies

← All A-Level Computer Science notes