01The big picture

Five names appear repeatedly when we talk about iterative software processes: Agile, Scrum, XP, Kanban, and Spiral. Students often hear them as if they were five alternatives on a menu. They are not. They sit at different levels and were created to solve different problems.

Read this first

Agile is a philosophy, not a process. Scrum, XP, and Kanban are frameworks or practices that follow that philosophy. Spiral is an older risk-driven process model that pre-dates Agile by more than a decade and prioritises something different – managing risk through repeated planning cycles. Knowing which level you are talking about prevents most of the confusion in this topic.

What each one prioritises, in one line

Agile – responding to change through frequent delivery of working software (a set of values).
Scrum – empirical control of complex work through fixed-length sprints with defined accountabilities (a lightweight framework).
XP (Extreme Programming) – engineering excellence and code quality through disciplined technical practices (a set of practices).
Kanban – smooth, predictable flow by visualising work and limiting how much is in progress at once (a method for managing flow).
Spiral – surfacing and resolving the biggest project risks first, before committing to building (a risk-driven model).
Agile philosophy Values and principles · 2001 Manifesto Scrum Framework Sprints, roles, events, artifacts Process XP Practices TDD, pairing, refactoring, CI Engineering Kanban Method Visualise work, limit WIP, flow Flow Spiral Boehm, 1988 Risk-driven process model Pre-dates the Agile movement Iterative but plan-driven Different family Same family – Agile branch Older lineage
Figure 1. Agile is a philosophy. Scrum, XP, and Kanban are different ways to put it into practice. Spiral belongs to an earlier, risk-driven tradition.

02Iteration is fundamental

Before we look at the named methods, we need a vocabulary for what they all share. Modern software processes take iteration as fundamental, and try to provide ways of managing, rather than ignoring, the risk that comes with iteration. System requirements always evolve in the course of a project, so process iteration where earlier stages are reworked is part of the process for any non-trivial system.

Two related ideas describe how iteration works: iterative development and incremental development. They are often used interchangeably, but they mean different things. The distinction is one of the most useful clarifications in this chapter.

Iterative versus incremental – the Mona Lisa

The clearest analogy

Imagine painting the Mona Lisa. Iterative means you sketch the whole picture roughly first, then go over the whole picture again refining it, then refine it once more. After each pass, you have a finished version of the whole – just at a lower resolution. Incremental means you paint the face fully first, then add the hands, then the background, then the landscape. After each pass you have only part of the painting, but the parts you have are complete.

Iterative versus incremental Iterative refine the whole, again and again 1 2 3 4 5 Incremental complete one part, then the next 1 2 3 4 5 Time progresses left to right. Iterative refines the whole picture each pass; incremental adds one new completed region each pass.
Figure 2. Iterative versus incremental development. The pattern is borrowed from a classic illustration used in Sommerville's textbook. The top row shows iterative work: every panel covers the whole picture, but each is more refined than the last. The bottom row shows incremental work: every panel adds a new finished region, but the parts already drawn stay at full detail. Real projects almost always combine the two – iteration refines the parts that have already been built incrementally.

To make the difference clear in words: the iterative top row shows the same whole portrait every time – outline first, then shapes, then shading, then face, then full detail. After every pass you have a finished version of everything, just at a lower level of polish. The incremental bottom row shows different regions of the portrait being added one at a time – head first (panel 1), then torso (panel 2), then arms (panel 3), then hands (panel 4), then the landscape background (panel 5). After every pass you have a finished version of some parts, but the parts you have are complete and would not be changed by the next pass. Real software work almost always combines the two: an incremental release adds a new feature region, and within that release iteration refines the feature until it is good enough.

How iterations are organised

An iteration is a fixed-period cycle, usually two weeks long, in which the team carries out the same set of activities – analysis, design, implementation, testing, review – and produces a result that can be inspected. Feedback from one iteration feeds into the next, leading to refinement of requirements, design, or both.

Requirements Analysis Iteration 1 2 weeks Design Implementation Testing Review Iteration 2 2 weeks Design Implementation Testing Review Iteration N 2 weeks Design Implementation Testing Review Deployment
Figure 3. The structure of iterations. Requirements and analysis happen upfront (lightly); each iteration is a fixed period, typically two weeks, in which the same activities are repeated; the size of activities shifts as work progresses (less analysis later, more testing). Adapted from Adel Taweel's lecture on software processes.

Two related approaches to iteration

Sommerville distinguishes two related approaches to layering iteration onto a process:

Incremental development
Rather than deliver as a single delivery, development and delivery are broken down into increments, each delivering part of the required functionality. User requirements are prioritised and the highest-priority requirements are included in early increments. Once the development of an increment has started, its requirements are frozen – though requirements for later increments can continue to evolve.
Used by: XP, Scrum.
Spiral development
A risk-driven iteration. Rather than fixed-period cycles, each loop of the spiral is sized by what risks need resolving. Heavyweight by comparison; suited to large, ambitious projects.
Used by: programmes with high consequence-of-failure.

Why incremental development is the dominant approach

Customer value can be delivered with each increment, so system functionality is available earlier – earlier return on investment.
Early increments act as a prototype to help elicit requirements for later increments.
Lower risk of overall project failure – if the project is cut short, you still have something working.
The highest-priority system services tend to receive the most testing.

This is the foundation on which the named methods we cover next – Agile, Scrum, XP, Kanban, and Spiral – are built. Each is an answer to a different version of "how do we structure iteration?".

03How they came about

The order in which these methods were created tells you something important: each one was a reaction to a problem the previous generation could not solve well.

1988 Spiral Boehm 1995 Scrum Schwaber, Sutherland 1999 XP Beck 2001 Agile Manifesto 17 signatories 2010 Kanban (book) Anderson 2020 Scrum Guide latest revision Iterative process methods, in order of arrival Each new method addressed a gap the earlier ones left open
Figure 4. Spiral came first and worked at the level of project planning. Scrum and XP appeared in the 1990s, and the Agile Manifesto in 2001 named the shared philosophy behind them. Kanban arrived later as a different way to structure flow.
1
1988 – Spiral. Barry Boehm published A Spiral Model of Software Development and Enhancement. The waterfall model was failing on large, ambitious projects because risks were only discovered late. Spiral added a risk-analysis cycle and broke development into iterations, but it remained a heavyweight, plan-driven model.
2
Mid-1990s – Scrum. Schwaber and Sutherland adapted ideas from a 1986 Harvard Business Review article (Takeuchi and Nonaka, The New New Product Development Game) into a software framework with sprints, a product owner, and a daily check-in. The aim was to manage complex product work empirically rather than by following a long upfront plan.
3
1999 – XP. Kent Beck's Extreme Programming Explained argued that good engineering practices, taken to the extreme, were what actually made iterative development work. Pair programming, test-driven development, refactoring, and continuous integration were combined into a coherent set.
4
2001 – The Agile Manifesto. Seventeen practitioners, including the originators of Scrum and XP, met in Snowbird, Utah and named the shared philosophy behind these methods: four values, twelve principles. After this point, Agile became an umbrella term.
5
2010 – Kanban. David Anderson's book Kanban: Successful Evolutionary Change for Your Technology Business brought the method, originally from Toyota's manufacturing system, into software. Kanban offered a route to agility for teams whose work did not fit into fixed-length sprints – operations, support, ongoing maintenance.
6
Today. Real teams almost never use one of these in isolation. Most combine them. The question is not "which one?" but "what mix fits this work?".

04Agile – the philosophy

The idea

Agile is a way of thinking about software development. It does not tell you to hold a daily meeting or to use a board with sticky notes. Those are implementations of Agile, not Agile itself. The defining document is the Manifesto for Agile Software Development (2001), which states four values and twelve principles.

The four values

We have come to value:

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

The Manifesto is careful: the items on the right have value, but the items on the left have more value. This is not a rejection of plans or documents.

What it really prioritises

Agile bets that on most modern software projects, you cannot fully know the requirements at the start, technology will change while you build, and the customer will see things differently once they have something to use. Given those bets, the rational strategy is to deliver something working as soon as possible, learn from feedback, and adjust. Everything else flows from that.

How it works in practice

Short iterations
Work is sliced into iterations of one to four weeks. Each iteration produces something usable, even if small.
Embedded customer
A real customer or proxy is involved continuously, not only at the start and the end.
Cross-functional teams
A single team has all the skills it needs – analysis, design, coding, testing – to deliver value, without handoffs.
Continuous reflection
The team regularly inspects how it is working and adjusts. Process is a living thing.

Strengths

  • Handles changing or unclear requirements well
  • Produces value early; reduces the "big-bang failure" risk
  • Engages users and builds trust through visible progress
  • Surfaces problems quickly rather than at the end

Limitations

  • Hard to use where requirements truly cannot change (regulated, safety-critical)
  • Requires customer availability and a willing organisation
  • Can drift without discipline; "no documentation" is a misreading
  • Less suited to fixed-price, fixed-scope, fixed-date contracts
Worth saying out loud

Agile does not mean "no planning" or "no documentation". It means just enough planning and just enough documentation to do the next useful piece of work. A team that produces nothing usable for three months is not Agile, regardless of how many sticky notes are on its wall.

The wider family of named Agile methods

Scrum, XP, and Kanban are the three named methods we will study in detail – they cover most of what teams actually do. But the Agile umbrella is larger. Sommerville and Adel's deck list a wider set you may encounter in industry:

Adaptive Software Development (ASD)
Speculate–collaborate–learn cycle. Emphasises adapting to complex environments rather than trying to control them.
Dynamic Systems Development Method (DSDM)
Time-boxed delivery with prioritisation by MoSCoW (Must, Should, Could, Won't). Common in larger organisations.
Crystal
A family of methods (Crystal Clear, Crystal Yellow, etc.) calibrated to team size and project criticality. The bigger and more critical, the more rigour.
Feature Driven Development (FDD)
Plan and build by feature. Emphasises a feature list, class ownership, and short feature-implementation cycles.
Lean Software Development (LSD)
Adapts Lean manufacturing principles to software: eliminate waste, build quality in, defer commitment, deliver fast, respect people, optimise the whole. Closely related to Kanban.
Agile Modelling (AM) and Agile Unified Process (AUP)
Lightweight modelling practices, and a streamlined version of the Rational Unified Process (RUP). Useful when teams must produce UML and other formal artifacts but want to keep the discipline lean.

You do not need to remember the details of these methods – we focus on Scrum, XP, and Kanban for good reasons. But knowing the family exists matters: Agile is wider than the three best-known methods, and different organisations choose different members of the family for different reasons.

In your project

The course project follows a phased structure that looks plan-driven on its surface – Initiation, Business Definition, Requirements Engineering, Requirements Analysis and Modelling, System Modelling and Design. But notice the customer-developer arrangement: each group plays both roles, and the milestone interview workshops between phases are exactly the "individuals and interactions" and "customer collaboration" the Manifesto talks about. The phases are heavyweight; the conversations between phases are agile in spirit. Pay attention to that conversation – it is where most of the learning happens.

05Scrum – the most-used framework

The idea

Scrum is a lightweight framework for managing complex product development. It does not prescribe how to engineer software – it does not tell you to write tests or pair-program. It tells you how to organise the team, the work, and the rhythm of decision-making, so the team can adapt as it learns. The current definition lives in the Scrum Guide, last revised in November 2020.

The structure: 3 + 5 + 3

3 accountabilities
Product Owner (manages the product backlog and value), Scrum Master (helps the team work effectively, removes impediments), Developers (build the increment).
The 2020 Guide replaced "roles" with "accountabilities".
5 events
The Sprint (the container, one month or less), Sprint Planning, Daily Scrum (15 minutes), Sprint Review, Sprint Retrospective.
Each event is an inspect-and-adapt opportunity.
3 artifacts
Product Backlog (with a Product Goal), Sprint Backlog (with a Sprint Goal), Increment (with a Definition of Done).
Each artifact carries a commitment for transparency.
Scrum vocabulary that the diagram uses
  • Product Backlog. An ordered list of everything that might be needed in the product. The Product Owner is responsible for the order, which expresses what is most valuable to do next.
  • Product Goal. A single sentence describing what the product is trying to be in the longer term. Anchors the Product Backlog.
  • Sprint Backlog. The subset of the Product Backlog the team commits to in this Sprint, plus the plan for delivering it.
  • Sprint Goal. A short statement of why this Sprint is worth running. Gives the team room to negotiate scope while protecting the intent.
  • Increment. A working slice of the product that meets the Definition of Done at the end of the Sprint. Multiple increments can be produced in one Sprint.
  • Definition of Done. The shared agreement on what "finished" means – tested, integrated, documented, deployable. An increment that does not meet it is not done.
Product Backlog ordered list Sprint Planning what · how · why The Sprint (1–4 weeks) Day 1 Daily Day N 15-min Daily Scrum developers update plan Increment meets Definition of Done Sprint Review inspect product Retrospective inspect process Sprint Review feeds back into the Product Backlog (what to build next) Retrospective improvements shape the next Sprint Planning (how to work)
Figure 5. The Scrum cycle. The Sprint is a fixed-length container that ends with a usable Increment. Two distinct feedback loops follow, drawn here in dashed blue: the Sprint Review (above the lower curve) inspects the product and updates the Product Backlog – this answers "what should we build next?". The Retrospective (above the upper curve) inspects how the team is working and produces process improvements that shape the next Sprint Planning – this answers "how should we work?". Confusing the two is a common source of trouble.

How it works in practice

A typical Scrum team has around five to nine people working in two-week sprints. The Product Owner orders the Product Backlog by value. At Sprint Planning the team picks items it forecasts can be Done by sprint-end and crafts a Sprint Goal. During the sprint, developers re-plan daily in a 15-minute Daily Scrum. At the end, the Sprint Review shows the Increment to stakeholders and gathers feedback; the Retrospective looks at how the team worked and identifies improvements. A new sprint starts the next day.

Strengths

  • Simple, well-known structure; easy to start
  • Fixed cadence creates predictability and rhythm
  • Clear accountabilities reduce confusion
  • Forces frequent inspection of both product and process

Limitations

  • Says nothing about engineering practices – easy to get poor code
  • Sprint boundaries can feel artificial for support or operations work
  • Requires a real Product Owner, often missing in practice
  • Often adopted as ceremony only ("zombie Scrum")

06XP – engineering excellence

The idea

Extreme Programming asks: which engineering practices, if you push them hard, make iterative development actually deliver good software? Kent Beck's answer was to take a small set of practices known to work, and apply each one to its extreme. If code reviews are good, do them constantly – pair programming. If testing is good, write the test before the code – test-driven development. If integration is good, do it many times a day – continuous integration.

The five XP values

Beck describes XP as built on five values that the practices express in concrete behaviour:

  • Communication. Talk to each other. Pair programming and on-site customer presence are how XP enforces this.
  • Simplicity. Do the simplest thing that could possibly work. Refactor when more is needed, not before.
  • Feedback. Get information about what works as fast as possible – tests, integration, releases, customer reaction.
  • Courage. Tell hard truths. Throw away code that does not work. Refactor confidently because the tests have your back.
  • Respect. Care about the work and about each other. Without respect, the other four values do not survive contact with stress.

The core practices

XP defines around a dozen primary practices and a similar number of corollary practices that build on them. The cards below cover the ones you are most likely to encounter in modern software development.

Pair programming
Two developers, one keyboard. The second pair of eyes catches errors and shares knowledge. Continuous review built into the work.
Test-driven development (TDD)
Write a failing automated test first, then the smallest code that passes it, then refactor. Tests document the design and enable safe change.
Continuous integration (CI)
Every change is integrated into the main branch many times a day, with the full test suite running automatically. Integration problems surface in minutes, not weeks.
Refactoring
Improving the structure of code without changing what it does, while the test suite keeps the behaviour stable. Done continuously, never as a separate phase.
Small releases
Release useful versions to real users frequently – weeks, not months. Each release is a feedback opportunity.
Simple design
Build the simplest design that supports today's tests. Resist speculative complexity. Let the design grow as needs emerge.
Collective ownership
Anyone may improve any part of the code. Reduces bottlenecks; spreads knowledge across the team.
Sustainable pace
No regular overtime. Tired developers write bugs. The team's pace must be one it can keep up indefinitely.

How it relates to Scrum

Scrum and XP are not competitors. Scrum tells you how to organise sprints and decide what to build; XP tells you how to build it well. Many teams adopt Scrum at the management level and XP practices at the engineering level. The two were created in roughly the same period by people in conversation with each other, and the Agile Manifesto signatories include both Scrum and XP figures.

Strengths

  • Produces high-quality, maintainable code
  • Tests act as living documentation
  • Team capacity grows as the code stays clean over time
  • Practices reinforce each other – pair programming makes refactoring safer, tests make pair programming sharper

Limitations

  • Demands significant developer skill and discipline
  • Pair programming is hard to justify to managers without trying it
  • Practices interact – partial adoption ("we do TDD but not refactoring") often fails
  • Less popular as a brand today; the practices live on inside other frameworks

07Kanban – managing flow

The idea

Kanban (a Japanese word meaning "signboard" or "visual signal") came from Toyota's manufacturing system. The software adaptation, described by David Anderson in 2010, treats software work as a flow through stages and asks one core question: how do we make work flow smoothly, without piling up at any stage? Unlike Scrum, Kanban does not introduce sprints, fixed roles, or planning ceremonies. It can be applied on top of an existing process.

The core practices

Visualise the workflow. Put every work item on a board, in a column representing its current stage (Backlog, Analysis, Build, Test, Done). Make the invisible visible.
Limit work in progress (WIP). Each column has a maximum number of items. If the limit is reached, no new work enters until something leaves. This is the central mechanism.
Manage flow. Watch how items move across the board. Look for bottlenecks – columns where work piles up. Address them.
Make policies explicit. Write down what "Done" means for each column. Reduce ambiguity.
Improve continuously. Use measurements (lead time, throughput) to make small, evidence-based changes.
Kanban vocabulary
  • Work item. A single piece of work that flows across the board – usually represented by one card. Could be a feature, a bug, a request, a bit of investigation.
  • Work in progress (WIP). The number of items currently being worked on. The whole point of Kanban is that limiting WIP improves flow, because the team finishes things instead of starting them.
  • Lead time. The clock time from when an item enters the board (first column) to when it leaves the board (Done). What the customer experiences.
  • Cycle time. The clock time from when work actively starts on an item (it leaves the Backlog) to when it is Done. What the team experiences.
  • Throughput. The number of items completed per unit of time (per week, per month). The team's rate of finishing things.
  • Value stream. The whole sequence of activities that turn an idea into delivered value. Each Kanban column is one stage of the team's value stream.
Kanban board Each column shows current stage; WIP limits at the top Backlog Analysis WIP: 2 Build WIP: 3 Test WIP: 2 Done Login fix Search filter CSV export Payment err. Email tmpl. Cart redesign Order API Cache layer SSO login Profile page Reset pwd
Figure 6. A Kanban board. Each card is a unit of work. The WIP limits at the top of columns prevent the team from starting too many things at once.

The big difference from Scrum

Scrum

  • Time-boxed (sprints of 1–4 weeks)
  • Fixed accountabilities (PO, SM, Devs)
  • Plan and commit per sprint
  • Inspect at sprint boundaries
  • Best for product development

Kanban

  • Continuous flow, no sprints
  • No prescribed roles
  • Pull new work when capacity frees up
  • Inspect continuously through metrics
  • Best for ongoing or operational work

Strengths

  • Easy to adopt – overlay on existing process
  • Excellent for support, operations, and varied-priority work
  • WIP limits expose bottlenecks honestly
  • Predictable lead times once flow is stable

Limitations

  • No built-in product planning – needs to be added
  • Less rhythm; harder to align stakeholders to a cadence
  • Can disguise lack of discipline as "flexibility"
  • Not ideal for teams that need a fixed scope and date

08Spiral – the older, risk-driven model

Why this is in a different category

Spiral was published by Barry Boehm in 1988, more than ten years before the Agile Manifesto. It is iterative, but it is not Agile. It belongs to the family of plan-driven process models. It is included here because it is the historical bridge between waterfall and the Agile family – it was the first widely-used model to take iteration and risk seriously.

The idea

Boehm observed that the most expensive failures in large software projects came from risks that were ignored or underestimated until late. His solution was to make risk analysis the primary driver of the process. Each loop of the spiral is one iteration; in each loop, you identify the biggest current risks and do whatever is needed (prototyping, modelling, simulation) to resolve them before continuing.

The four quadrants of each loop

1
Determine objectives. What are the goals of this iteration? What constraints apply? What alternatives are on the table?
2
Identify and resolve risks. What could go wrong? Build a prototype, run a simulation, do a benchmark – whatever is needed to take the risk down. This is the quadrant that defines the model.
3
Develop and verify. Build the next version of the product, applying whichever development approach fits this iteration's risks (waterfall, prototyping, evolutionary).
4
Plan the next iteration. Review what was learned with stakeholders. Plan the next loop, expanding or narrowing scope as appropriate.
cumulative cost Determine objectives, alternatives and constraints Evaluate alternatives, identify, resolve risks Plan next phase Develop, verify next-level product REVIEW Risk analysis Risk analysis Risk analysis Prototype 1 Prototype 2 Prototype 3 Operational prototype Simulations, models, benchmarks Concept of Operation S/W requirements Product design Detailed design Code Unit test Integration test Acceptance test Service Requirement validation Design V&V Requirements plan Life-cycle plan Development plan Integration and test plan
Figure 7. Boehm's Spiral model of the software process, in its full canonical form. Each loop covers all four quadrants – objectives in the top-left, risk analysis with progressively more concrete prototypes in the top-right (Prototype 1 through Operational prototype), development with the artifact ladder (Concept of Operation, S/W requirements, Product design, Detailed design, Code, Unit test, Integration test, Acceptance test, Service) in the bottom-right, and planning artifacts on the left axis. The radial distance from the centre represents cumulative cost; the angular position represents progress through the phases. After Boehm (1988); rendering after Sommerville (2016).

How the prototypes grow across the loops

One thing the main figure shows but does not explain: the four prototypes are not four versions of the same thing. They get progressively more concrete, more operational, and more expensive, in step with the loops growing outward.

The four prototypes grow in fidelity and cost Login Loop 1 Paper sketch Submit Loop 2 Screen mockup Simulator Loop 3 Working simulation production-shaped UI live data controls connected to real systems Loop 4 Operational prototype low cost, low fidelity high cost, high fidelity
Figure 8. The prototypes get more concrete with each loop. The point is not to build the same thing four times – it is to spend the right amount on each prototype. The early loops use cheap artifacts (paper, sketches, mockups) to resolve cheap-to-fix risks; the later loops use expensive artifacts (working simulations, operational prototypes) only after the cheap risks are gone.

What each loop produces, and why each one is useful

The Spiral diagram is dense, but its loops have a clear purpose. Here is what a project would actually produce on each one.

1
Loop 1 – the concept loop. The team agrees on the system's reason for being: who uses it, what it must do at the highest level, what business or operational problem it solves. The artifact produced is the Concept of Operation. The risks it addresses are misunderstood purpose and wrong problem – the cheapest risks to resolve, and the most catastrophic if missed. The prototype on this loop is typically a paper sketch or a one-page narrative. Useful because if the concept is wrong, nothing further matters.
2
Loop 2 – the requirements loop. The team turns the concept into actual S/W requirements: functional and non-functional, with a feasibility study to confirm they can be met. The prototype on this loop is typically a screen mockup or a wireframe walk-through. Risks addressed: missing requirements, infeasible requirements, users do not actually want what they said they wanted. Useful because requirements that are wrong now will look obvious later, but only after the discovery has been made.
3
Loop 3 – the design loop. The team produces the Product design and Detailed design – the architecture, the components, the algorithms, the data structures. The prototype on this loop is typically a working simulation: code that runs but is not yet the real system. It might mock the database, the network, the hardware. Risks addressed: architectural mistakes, performance problems, integration assumptions that turn out to be wrong. Useful because design problems caught here are still cheap; the same problems caught after coding cost an order of magnitude more.
4
Loop 4 – the implementation loop. The team builds the real thing: Code, Unit test, Integration test, Acceptance test. The prototype on this loop is the Operational prototype – effectively the system itself, running against real data and real users in a controlled setting. Risks addressed: defects, operational failures, unforeseen real-world conditions. After this loop, the system enters Service.

The genius of Spiral is that it does not commit to building anything expensive until the cheap-to-resolve risks have been resolved. Each loop's deliverable is as concrete as it needs to be for the risks of that loop, and no more. A project that spends a whole year on detailed design before writing any code is doing waterfall, not Spiral; a project that starts coding before there is a Concept of Operation is doing something else again. The four prototypes pictured in Figure 8 are the markers of the four loops doing their job.

What it shares with Agile, and what it does not

Spiral and Agile agree on

  • Iteration is essential
  • You cannot plan everything upfront
  • Each iteration should reduce uncertainty
  • Stakeholder involvement matters at every loop

Spiral and Agile differ on

  • Spiral is heavyweight; Agile is lightweight
  • Spiral iterations can be months; Agile iterations are weeks
  • Spiral focuses on managing risk; Agile focuses on delivering value
  • Spiral produces extensive documentation per loop; Agile keeps documentation lean

Strengths

  • Excellent for very large, ambitious, risky projects
  • Forces explicit attention to what could go wrong
  • Each loop can use whichever development style suits its risks
  • Suitable for safety-critical and high-investment systems

Limitations

  • Heavyweight and document-intensive
  • Requires real expertise in risk assessment
  • Long loop times unsuited to small, fast-changing projects
  • Hard to estimate cost and duration upfront
Why the course project does not use Spiral

The course project is a teaching exercise, not a high-stakes industrial system. The risks are bounded (the worst that can happen is a poor grade), the requirements come from a peer customer group rather than a regulator, and the timeline is fixed by the academic calendar. Spiral's strengths – ranking and resolving real project risks before committing further investment – are wasted in this setting. The project's plan-driven phase structure is the right shape for a learning context. But when you graduate and move to projects where money, safety, or reputation are on the line, knowing that Spiral exists, and how it works, is part of being able to choose well.

09Used together – what really happens in practice

In real teams, you almost never find a textbook implementation of any one of these methods. The interesting question is which combinations are common and why.

Common combinations

Scrum + XP
Scrum at the management level (sprints, planning, review), XP at the engineering level (TDD, pairing, CI, refactoring). The most common modern combination.
Scrum tells you what to build; XP tells you how to build it well.
Scrumban
Scrum's roles and ceremonies plus Kanban's WIP limits and visual board. Useful when a Scrum team finds sprint commitments unrealistic because of incoming support work.
Keeps the rhythm of Scrum, gains the flow discipline of Kanban.
Kanban + XP practices
Continuous flow with full engineering discipline underneath. Common in mature DevOps and SRE teams.
Lean management, engineering excellence.
Spiral wrapping Agile
Some large programmes use a Spiral-style outer loop (with formal risk reviews and gates) while running Agile teams inside each loop.
Used in defence, aerospace, and some regulated systems.
Agile values and principles Scrum how to organise the team and work Kanban how to manage flow of work XP practices TDD · pair programming · CI · refactoring · simple design Spiral Older, plan-driven Risk-focused Different family Sometimes wraps Agile teams in large programmes
Figure 9. How they layer in practice. Scrum and Kanban operate at the management level – they answer "how do we organise the work?". XP operates at the engineering level – it answers "how do we build it well?". Spiral sits beside the Agile family as a heavier, risk-driven alternative.

10Choosing one – short, situated examples

The honest answer to "which one should I use?" is "it depends". The factors that matter are the size and stability of requirements, the criticality of the system, the team's experience, and the regulatory and contractual context. Below are concrete situations and a defensible answer for each. None of these are the only valid answer; they show the kind of reasoning to apply.

Example 1 – startup building a new mobile app

The market is uncertain, the team is small, and features need to evolve weekly based on user feedback. Scrum + XP is the standard fit. Two-week sprints give a rhythm for stakeholder demos; XP practices keep the code base clean enough to keep changing. Pure Kanban would also work if priorities shift faster than a sprint can absorb.

Example 2 – internal IT support team

Tickets arrive constantly, urgencies vary, and there are no "features" to plan. Sprints feel artificial because next week's work is unknown today. Kanban fits. WIP limits prevent overload; lead-time metrics give predictable response expectations.

Example 3 – secure ATM sub-system integrating with an existing banking system

Reliability target of 99 %, hard security requirements, must be deployed across 1000 ATMs. Mistakes are very expensive and requirements are stable. A pure Agile approach is risky here. Spiral, or at minimum a plan-driven model with explicit risk reviews, is more defensible. Engineering practices from XP (especially testing and CI) remain valuable inside whichever model is chosen.

Example 4 – university student management system, 75 000 users, 4-year delivery window

Long timeline, moderately stable requirements, large user base, multiple stakeholder groups. Incremental delivery within an Agile framework (Scrum) is a strong fit: deliver core registration first, then add modules. Spiral could justify itself if the integration risks (with finance, with the ministry) are deemed dominant.

Example 5 – health-monitoring mobile app connecting to an external medical decision system

The device interface and the external system are the major unknowns. Spiral with Agile inner loops: the early loops focus on resolving integration and clinical-safety risks via prototypes; later loops use Scrum-style sprints for the user-facing app once the unknowns are bounded.

Example 6 – word-processing app reusing existing components, intended for users with dyslexia

Most components exist; the novelty is in the user interface and accessibility. Component-based development with Agile (Scrum + XP) fits well. Frequent user testing with the target audience is more valuable than upfront planning.

The pattern across the six examples

Notice that the answer is rarely a single named method. Most real situations call for a blend:

The management layer (Scrum, Kanban, or plan-driven phases) tells you how to organise the work and decide what to do next.
The engineering layer (XP practices, especially testing, pair work, refactoring, continuous integration) is almost always valuable, regardless of the management layer above.
The risk layer (Spiral, or risk reviews bolted onto another model) is reserved for situations where the cost of being wrong is large.

The first companion in this pair, on generic process models, looks at this same choice from the other direction – starting from the kind of software being built and working out which model fits. Reading the two together gives you both perspectives: what the methods are, and which methods suit which kind of work.

A decision sketch

Are requirements likely to change? yes (typical) Continuous incoming work, no fixed scope per period? yes Kanban (+ XP) no Scrum + XP no (stable, regulated) High consequence-of-failure or large investment? yes Spiral / V-model no Waterfall In practice: XP-style engineering practices apply almost everywhere. A poor team with good practices beats a good team with poor practices.
Figure 10. A first-cut decision sketch. Real decisions add further factors – team size, contract type, organisational culture – but this captures the dominant ones.

11References

For each method, the most authoritative source is given first.

Primary sources

Course textbooks (where these methods are also covered)

Recommended further reading