Part II

Software Process Models

Every software project follows some process, chosen or not. This Part walks through the formal life-cycle models, from the code-and-fix chaos that came first, through the waterfall, the V-model, incremental, evolutionary and prototyping models, to Boehm's risk-driven spiral, and then shows you how to pick one for a real project and defend the choice the way the exam wants.

  • You willtell defined from empirical process control, and explain why the software crisis led to phased processes.
  • You willdraw each model (waterfall, Royce's original, V, incremental, evolutionary, prototyping, spiral) and walk a project through it.
  • You willseparate incremental from evolutionary, and prototyping from the spiral, without mixing them up.
  • You willrecommend one model for a case such as Medic, justified fact by fact against its trade-offs.
2.1

Processes, Process Control and Process Models

Before we can compare ways of building software, we need words for what is being compared. This section sets up that vocabulary: what a process is, what a model of a process adds, and the two basic ways of keeping a process under control. Every later section in this Part, and much of Part III, leans on these terms.

Process, process model, SDLC exam

Definitions (W02 slides)

A process is "a series of progressive and interdependent steps by which an end is attained". Making a cup of tea is a process: boil water, add the tea, wait, pour.

A process model is a simplified description of the steps you need to take to reach your goal. A software process model tells you which activities should happen when, so that you build what the customer wants and make sure it is right.

An SDLC (software or systems development life cycle) is a process for planning, creating, testing and deploying an information system. In this subject "SDLC" and "process" mean the same thing, and are used interchangeably.

Whatever the model, the same handful of SDLC activities turn up. The slides list them in order: requirements gathering (finding out what the system must do), system or architectural design (deciding how it will be structured), implementation (coding and putting the pieces together, called integration), testing, and evolution, which covers delivery, release and deployment as well as maintenance after go-live.

Requirements gathering Design system / architectural Implementation coding, integration Testing is it right? Evolution deploy, maintain Every model uses these activities. Models differ in their order, overlap, repetition and criteria for moving on.
The raw material of every life cycle. Hold this row in mind: the waterfall runs it once, the incremental model runs most of it several times, the spiral re-runs it under the control of risk. Throughout this Part, blue marks development work, green testing and verification, and amber the customer, the users and what happens after delivery.

Process model versus method

Boehm (1988) sharpens the idea. A process model fixes two things: the order of the stages and the transition criteria for moving from one stage to the next. So a model answers exactly two questions: "What shall we do next?" and "How long shall we continue to do it?". A method is a different thing: it tells you how to do the work inside one phase. "Do design after requirements, and stop when the design document is signed off" is process; "draw UML class diagrams to do the design" is method.

Check yourselfA team lead says: "Our process is: we use user stories for requirements and write unit tests in JUnit." By Boehm's definition, has she described a process model?

No. User stories and JUnit are methods: they say how to work inside a phase. A process model would say what happens next and how long each stage continues, i.e. the order of stages and the criteria for moving on (for example "requirements are fixed before design starts", or "every two weeks we review and re-plan").

Defined versus empirical process control exam

"Process control" means how you keep the work heading where it should. There are two basic ways. Defined control fixes the steps in advance and follows them, trusting that the same inputs give the same output. Empirical control accepts that you can't foresee everything, so it steers by observing what actually happens, inspecting the result and adapting. What decides between them is how predictable the work is.

DEFINED · THE BURGER RECIPE Same inputs FIXED STEPS, FIXED ORDER Step 1 Step 2 Step 3 Identical result, every time Plan what you expect · enforce the plan · change control, because change is expensive e.g. Waterfall, V-model
Defined control suits low-volatility, predictable work: a recipe gives the same burger whenever you follow it.
EMPIRICAL · THE FLIGHT origin arrive planned route weather correct course actual observe inspect adapt
Empirical control suits complex, volatile, novel work: the plane arrives because it keeps correcting, not because the first plan was perfect.
Defined process controlEmpirical process control
IdeaA well-defined set of steps. Same inputs → same output every time."Expect the unexpected". Control by observation, inspection and adaptation.
EnvironmentLow volatility, predictable.Complex, volatile, novel.
Characteristics (Visual Paradigm reading)Plan what you expect to happen; enforce the plan; use change control because change is expensive.Learn as we progress; expect and embrace change; inspect and adapt using short development cycles; estimates are indicative only.
Slide analogyA burger recipe: fixed ingredients and sequence, identical result.A flight: the plane keeps correcting course for weather.
SDLC examplesWaterfall, V-model.Scrum and other agile frameworks (Part III).

Software development is mostly novel work: each system is built once, often with people, tools or problems the team hasn't met before. So a purely defined process rarely fits it well. That is where the iterative, spiral and agile models come in: each one adds some empirical feedback to the plan.

Check yourselfWhich statements describe empirical process control? (Select all that apply.)
  1. Estimates are treated as indicative only.
  2. Change control is used because change is expensive.
  3. It suits complex, volatile or novel environments.
  4. The same inputs reliably give the same output.
  5. Short development cycles are used to inspect and adapt.

A, C and E. B and D are the defined side: enforcing a plan with change control, and the "same inputs, same output" recipe idea. In an MRQ each wrong tick cancels a right one, so leave B and D blank rather than guessing.

In short
  • A process model fixes the order of stages and the transition criteria; a method says how to work inside a stage.
  • Models re-arrange the same SDLC activities (requirements, design, implementation, testing, evolution), differing in order, overlap, repetition and criteria for moving on.
  • Defined control (recipe; waterfall, V-model) fits predictable work; empirical control (flight; Scrum) fits novel, volatile work, which is what most software is.
2.2

Before SDLCs: Code-and-Fix and the Software Crisis

Formal life cycles weren't invented for fun: each phase they contain exists because its absence once caused real damage. The quickest way to see why is to look at what people did before, starting with the process almost every student has used.

The "student programming assignment" process

The lecture opens with a process you may recognise. Step through it, and watch each of its three problems point at an activity that is missing.

The student assignment process, and what it is missing
Read assignment spec (optional) Code Errors? no yes Test with lecturer's single example Same output as lecturer's? no yes Submit & forget 1 1 · Tested with other examples Lesson: inadequate testing. One example, and no test plan. 2 2 · Built the wrong thing Lesson: no requirements analysis. The spec was "optional". 3 3 · Marked down: "poor design" Lesson: no design step. It goes straight from spec to code. Missing activities = requirements, design, testing: the phases formal SDLCs add.
  1. The student process: maybe read the spec, code until it compiles, check against the lecturer's one example, submit. Dashed arrows are the "go back and fix" loops. Step through to see its three problems.
  2. Problem 1: the submitted code is tested by the marker with different examples, and fails. The lesson is inadequate testing: one example and no test plan.
  3. Problem 2: the student submits something different from what the lecturer wanted. The lesson is no requirements analysis: reading the spec was "optional".
  4. Problem 3: the student is marked down for "poor design". The lesson is that there was no design step at all.
  5. Each lesson names a missing activity: requirements, design and testing. Those are exactly the phases that formal SDLCs make compulsory.

Code-and-fix (ad hoc development)

Code-and-fix is the simplest possible process: write some code, then edit it until it seems to meet the requirements, then deliver. There are no separate requirements, design or test phases. It is "ad hoc", meaning improvised for the situation rather than planned.

Surprisingly, it worked in the 1940s and 50s, and the slides give four reasons why:

  1. Systems were small.
  2. Developers were exceptionally able, often with higher degrees.
  3. Developer, client and user were often the same person, so there were few requirements problems: you can't misunderstand yourself.
  4. Programs often ran only once, so there was little need for maintenance or version control.

At scale it fails, and Boehm (1988) explains how. The useful way to read his list is that each failure created the need for one of the phases later processes introduced:

CODE-AND-FIX Write code Edit / fix until it seems to work Deliver AT SCALE, IT FAILS (BOEHM 1988) SO WE ADD… Repeated fixes leave badly structured code that is expensive to change Software often didn't match user needs nobody pinned down what was wanted Nobody prepared for testing or for later modification Design phase Requirements phase Planned test &evolution activities
Every phase is a scar from a past failure. Read each row left to right: a failure of code-and-fix, and the phase that was invented to prevent it. The slides add that ad hoc fixes yield systems lacking security, robustness or usability, especially when time is short.
Check yourselfWhich were reasons code-and-fix worked in the 1940s–50s, according to the slides? (Select all that apply.)
  1. Programs often ran only once.
  2. Compilers caught most design errors.
  3. Developer, client and user were often the same person.
  4. Systems were small.
  5. Requirements were written down formally.

A, C and D. The fourth reason on the slides is that developers were exceptionally able, often with higher degrees. B and E are invented: there were no formal requirements (that is the point of code-and-fix), and nothing about compilers appears in the list.

The 1960s software crisis exam

The cause of the crisis was growth. Computers became far more powerful, programs and user expectations grew with them, and the methods for building software couldn't keep up. Dijkstra (1972) put it memorably: when there were no machines, programming was "no problem at all"; once there were gigantic computers, programming became a gigantic problem. Kimble points to the economics behind this: hardware costs fell while software costs rose.

The symptoms (slides) were that most large projects shipped late or not at all, went catastrophically over budget, didn't work, or all three. The readings add that debugging took longer than writing the code, and that the code was almost impossible to maintain.

1940s–50s code-and-fix works: small systems, experts 1960s crisis late, over budget, didn't work, or all three 1968 · Garmisch NATO conference: "software engineering" 1969 · Rome second NATO conference 1970 · response disciplined, phased processes: waterfall
Crisis, then conferences, then process. The red event is the problem, the gold ones are the profession's response, and the green one is the outcome: phased processes, beginning with the waterfall (2.3).

The response came at the 1968–69 NATO Software Engineering Conferences, held in Garmisch, Germany, in 1968 and in Rome in 1969. Attendees included Dijkstra, Hoare, Gill, Perlis and Naur. The term "software crisis" was coined there, and "software engineering" came into common use. The phrase was chosen deliberately to provoke: the point was that software should rest on the theory and discipline of the established engineering fields. One famous remark from the conferences (paraphrased) captures the mood: we build systems the way the Wright brothers built aeroplanes, by pushing one off a cliff, letting it crash, and starting again.

The outcome was a resolution to replace craft-style code-and-fix with disciplined, phased processes, the first of which was the waterfall.

Check yourselfIn an exam answer about the software crisis, sort these into cause, symptom and response: (a) debugging took longer than writing the code; (b) far more powerful computers raised program size and expectations; (c) the 1968 NATO conference in Garmisch; (d) projects went catastrophically over budget; (e) falling hardware costs alongside rising software costs.

Cause: (b) and (e): growth in computing power and expectations outran methods, and the economics flipped (hardware cheaper, software dearer). Symptoms: (a) and (d), along with late, cancelled or non-working projects and unmaintainable code. Response: (c), where "software engineering" came into common use and phased processes were resolved upon.

In short
  • The student process lacks requirements, design and testing; each of its three problems teaches that lesson.
  • Code-and-fix worked when systems were small, developers expert, developer = client = user, and programs ran once. At scale it produced decaying code, misfit software and no plan for test or change, which created the design, requirements and test/evolution phases.
  • The 1960s crisis (cause: growth; symptoms: late, over budget, broken) led to the 1968–69 NATO conferences, "software engineering", and phased processes starting with the waterfall.
2.3

Waterfall: the Plan-Driven Approach (1970)

The waterfall answers code-and-fix's chaos with order: do each activity once, completely, in a fixed sequence, and write down the result before moving on. It is the classic plan-driven model, meaning the work follows a plan made up front rather than adapting as it goes. Understanding it well matters twice over: it is examined directly, and every later model is described as a fix for one of its weaknesses.

The model exam

The W02 slide splits the waterfall into six phases. Each phase answers one question and produces an output that the next phase works from. Step a project through it.

A project falls down the waterfall
Requirements Requirements list Analysis SRS Design Design documents Implementation Working product Maintenance Updated productand documents Retirement removed from service Three characteristics (slides) 1 · Distinct phases that do not overlap 2 · Each phase outputs a document 3 · Every document is QA-reviewed (gold ◆) before the next phase starts, though testing isn't drawn Phase 1 · RequirementsQ: What do stakeholders want the product to do?Output: a requirements list Phase 2 · AnalysisQ: Exactly what does this mean?Output: Software Requirements Specification (SRS) Phase 3 · DesignQ: How will we build it?Output: design documentation Phase 4 · ImplementationQ: Code and integrate.Output: working product (source code is a document) Phase 5 · MaintenanceQ: Repair or enhance.Output: updated product and documents Phase 6 · RetirementQ: Remove from service.Output: none; the system is switched off
  1. A new system is about to be built with the waterfall. Nothing exists yet. Each step below adds one phase, with the question it answers (gold card) and the document it outputs (file icon).
  2. Requirements: what do stakeholders (everyone with an interest in the system: clients, users, sponsors…) want the product to do? The output is a requirements list.
  3. Analysis: exactly what does each requirement mean? The output is the Software Requirements Specification (SRS), the precise, agreed statement of what the software must do.
  4. Design: how will we build it? The output is the design documentation. Implementation cannot start until design is complete.
  5. Implementation: code and integrate the parts. The output is the working product, and the slides count source code as a document too.
  6. Maintenance: after delivery, repair faults or add enhancements. The output is an updated product and updated documents.
  7. Retirement: the system is removed from service. There is no output document.
  8. The three characteristics: phases are distinct and don't overlap; each phase outputs a document; and although testing and QA aren't drawn as phases, every document is QA-reviewed (gold diamonds) before the next phase starts.

Notice that testing doesn't appear as a phase on this slide's version. The slides make the point that testing and QA (quality assurance: checking that the work meets its standards) still happen, through the review of every document before the next phase begins. Many textbook versions do draw a separate testing phase; Royce's original, in 2.4, has one.

A more realistic waterfall, with feedback

Real projects don't flow in one direction. An error found in design may reveal a mistake in the analysis; a fault found in implementation may force a design change. So the slides also show "a more realistic waterfall – with feedback", where work loops back, and where changed requirements re-enter at analysis.

Requirements Analysis Design Implementation Maintenance Retirement Changed requirements use in the field produces changed requirements re-enter at analysis development feedback, maintenance
Each dashed arrow is rework, and rework is where waterfall cost hides. An error found in a phase sends work back to the phase before it, and requirements that change during use re-enter at analysis. On the slide, maintenance actually feeds back into every phase; the figure shows the main loops to stay readable.

Document-driven, and why that is costly

The waterfall is document-driven: what moves the project from one phase to the next is finishing a document, notably the SRS and the design. That gives managers something concrete to check and sign off. But it has a price. When an error is found late and the system must change, every affected document must be updated, and this is very costly.

Late error, or changed requirement Requirements list SRS Design documentation Source code (a document too) Update every affected document very costly
One change, many documents. Because the documents are the hand-offs, a late change can't be fixed in the code alone: every document derived from the changed one must be re-done and re-reviewed.
When waterfall works badly (slides) exam

The slides conclude that the waterfall works badly when (1) errors are likely in requirements elicitation, analysis or design, or (2) requirements are hard to work out or likely to change. In both cases the late, expensive document rework above becomes almost certain.

Problems with documentation (slides). These explain why "just freeze the requirements" rarely holds. Very few real projects are insulated from change, even when customers really know what they want. Business and regulatory environments are beyond the control of developers and customers alike: a new law or a competitor's product can change what is needed. The technical environment (operating systems, libraries, network speed) changes too.

Check yourselfAccording to the slides, the waterfall works badly when… (Select all that apply.)
  1. errors are likely in requirements elicitation, analysis or design.
  2. the system is large.
  3. requirements are hard to work out or likely to change.
  4. the technology is mature.

A and C. Size alone isn't on the list (the comparison grid in 2.10 says waterfall suits any size, including large contracted work), and mature technology is a reason for a formal model, not against one.

Check yourself · past exam[PAST EXAM 433-443 1998 Q2, predecessor subject] Briefly describe the benefits of the waterfall process.

The guide's model answer gives seven benefits:

  1. It is simple to understand, teach and manage.
  2. Its distinct phases, each with deliverables and sign-offs, give clear milestones and visibility of progress.
  3. Fixing the requirements early enables estimation, budgeting, fixed-price contracts and resource planning.
  4. Doing design before code avoids the decay that code-and-fix suffers.
  5. QA reviews at each phase stop errors propagating into later phases.
  6. The documentation supports maintenance, staff turnover, outsourcing and audits.
  7. It suits stable requirements, mature technology, and regulated or safety work.
In short
  • Six slide phases: requirements → analysis (SRS) → design → implementation → maintenance → retirement; no overlap, a document from each phase, every document QA-reviewed.
  • Real projects loop back; changed requirements re-enter at analysis.
  • It is document-driven, so late change means updating every affected document, which is very costly. It works badly when errors in early phases are likely or requirements are hard to pin down or likely to change.
2.4

What Royce Actually Said (1970)

The slides cite Winston Royce's 1970 paper as the source of the waterfall. The surprise, and a favourite exam trap, is that Royce never used the word "waterfall" and criticised the naive single pass. Knowing what he really argued lets you answer "evaluate the waterfall" questions with more than the usual clichés.

Royce's diagnosis exam

Royce argued that analysis then coding is enough for small programs run by the people who built them, but that for large systems this approach is "doomed to failure". He drew the steps as system requirements, software requirements, analysis, program design, coding, testing and operations, and he hoped that any iteration would stay between adjacent steps. He said he believed in the concept, but that this implementation "is risky and invites failure".

Systemrequirements Softwarerequirements Analysis Programdesign Coding Testing Operations what really happens: testing sends work back to design Why the single pass is risky Testing comes last, so it is the first time timing, storage and I/O are actually experienced. Failures force major redesign: up to 100% overrun. Green: the iteration Royce hoped for, kept between adjacent steps only.
The "waterfall" people attack is the version Royce warned against. The green loops are safe, local rework. The red loop is the disaster: problems with timing, storage and input/output (I/O) only show up at testing, the first moment the real system runs, and they can force redesign with up to 100% schedule or cost overrun.

Royce's five fixes exam

Royce didn't abandon the sequence; he added five steps to make it safe. The guide says to memorise them. Step through to see each one bolted onto his model.

Royce's five fixes, added one at a time
ROYCE'S SEVEN STEPS (1970) and the five fixes that make them safe System reqs Software reqs Analysis Program design Coding Testing Operations 1 · Preliminary program design first designers set storage, timing, interfaces 2 · Document the design ~1,500 pages per $5M of software vs ~30 per $5M of hardware 3 · Do it twice pilot build a pilot / simulation of critical areas first; origin of prototyping 4 · Plan, control & monitor testing specialists, inspection, every logic path once C C C customer 5 · Involve the customer formally, at several points after requirements (C)
  1. Royce's seven steps, done once in order. On their own they are "risky and invite failure", because testing comes last. Each step adds one of his fixes.
  2. Fix 1: program design comes first. Do a preliminary design before analysis, so the designers set the storage, timing and interface constraints, and write an overview document.
  3. Fix 2: document the design. Royce wants "quite a lot" of documentation: about 1,500 specification pages for $5M of software, against about 30 for $5M of hardware. Early on, the documentation is the design.
  4. Fix 3: do it twice. Build a pilot or simulation of the critical areas first, so that the version you deliver is really the second one. This is the origin of prototyping (2.8).
  5. Fix 4: plan, control and monitor testing. Testing is the biggest resource consumer and the biggest risk, so use test specialists and second-party code inspection (someone other than the author checks the code), and test every logic path at least once.
  6. Fix 5: involve the customer formally, at several points after requirements definition (the C badges), rather than only at the start and the end.

The history the slides leave out

Larman & Basili (2003) add some history. Iterative and incremental development (IID), building a system in repeated cycles that each add to it, is not new: it dates back to the 1950s.

1950s · Project Mercury NASA uses iterative and incremental development 1970s · Space shuttle IID succeeds on a large system: 17 iterations over 31 months US DoD waterfall single-pass standard: 75% of one $37 billion sample failed or was never used Brooks (1995) "The waterfall model is wrong!" Why it persisted anyway: it is simple to explain and gives an illusion of an orderly, measurable process.
Iteration is older than the waterfall. The green cards are iterative successes, the red card the single-pass standard's record. Use this when an exam question invites you to challenge "waterfall is the traditional, proven way".
Check yourselfWhich statements about Royce (1970) are correct? (Select all that apply.)
  1. He named the model "the waterfall".
  2. He said analysis-then-coding is fine for small programs run by their builders.
  3. He recommended building a pilot of the critical areas first.
  4. He argued testing should be minimised because it consumes resources.
  5. He called the single-pass implementation "risky".

B, C and E. A is the classic myth: Royce never used the word. D inverts fix 4: testing is the biggest resource consumer and the biggest risk, so it should be planned, controlled and monitored, not minimised.

Check yourself · self-testWhat were Royce's five recommendations, and why does the paper matter?

Royce recommended (1) doing program design first, (2) documenting the design, (3) doing it twice (a pilot), (4) planning, controlling and monitoring testing, and (5) involving the customer. The paper matters because Royce called the single-pass sequence "risky": testing comes last, so problems surface late, with up to 100% overrun. The "waterfall" people attack is the naive version he criticised.

In short
  • Royce never said "waterfall"; he called the single pass risky because testing comes last, when timing, storage and I/O are first experienced (up to 100% overrun).
  • His five fixes: program design first, document the design, do it twice, plan/control/monitor testing, involve the customer.
  • IID dates to the 1950s (Mercury) and succeeded on the space shuttle; the DoD's single-pass standard was linked to failure; waterfall persisted because it is simple and looks orderly.
2.5

The V-Model

The waterfall's biggest weakness is that testing comes last, so nobody thinks hard about how each thing will be tested until it is too late. The V-model is a waterfall variant that fixes this one problem: it pairs each development phase with a test phase, and plans that test during the development phase. The guide treats it briefly, but its pairing is a favourite short-answer question.

Two terms help. Verification asks "are we building the product right?", i.e. does it match its specification. Validation asks "are we building the right product?", i.e. does it meet the users' real needs. In the V, every test level verifies the artefact opposite it, and the top level, acceptance testing, validates against the user needs. (Part VII covers both in depth.)

Down the left, across the bottom, up the right
Requirementsuser needs System specification Architectural design Module designdetailed design Coding Acceptance testing System testing Integration testing Unit testing acceptance tests planned here system tests planned here integration tests planned unit tests planned validation: the right product? Strengths early test planning forces testability; clear traceability Weaknesses sequential, document-heavy; working software arrives late; change is expensive ← decomposition and definition integration and testing →
  1. The V-model bends the waterfall into a V. Development goes down the left arm (breaking the system into ever smaller parts), coding sits at the bottom, and testing comes up the right arm (putting the parts back together and checking them).
  2. Requirements / user needs are captured, and right away the acceptance tests are planned: how will the customer decide the product is acceptable? The right-hand box is faded because it is only planned, not yet run.
  3. System specification is written, and the system tests that will check the whole system against it are planned.
  4. Architectural design splits the system into components, and the integration tests that will check the components work together are planned.
  5. Module (detailed) design designs each component internally, and the unit tests for each module are planned.
  6. Coding: the bottom of the V.
  7. Unit testing runs, verifying each module against its module design.
  8. Integration testing runs, verifying the combined components against the architectural design.
  9. System testing runs, verifying the whole system against the system specification.
  10. Acceptance testing runs against the requirements. This top level is validation: is it the right product for the users?
  11. The pairing gives the V its strengths (early test planning forces testability; clear traceability) and it keeps the waterfall's weaknesses (sequential, document-heavy, late working software, costly change).

Traceability means you can follow a line from each requirement to the design that meets it and to the test that checks it, in both directions. In the V that line is drawn for you: each horizontal pair is a trace. That is why the guide recommends the V-model for safety-critical, embedded and regulated systems with stable requirements, such as medical devices and avionics, where auditors want proof that every requirement was tested.

Check yourself · self-testIn the V-model, which test level checks which artefact? Give one strength and one weakness.

Unit testing checks the module design, integration testing checks the architectural design, system testing checks the system specification, and acceptance testing checks the requirements. One strength is that tests are planned early, so the work is testable and traceable. One weakness is that the model is sequential, so working software arrives late and change is costly.

Check yourselfA team building avionics software with fixed, certified requirements is choosing between the V-model and Scrum. Which suits it better, by the guide, and why in one sentence?

The V-model: requirements are stable and the system is safety-critical and regulated, so early test planning and requirement-to-test traceability are exactly what certification needs, while the V-model's weakness (costly change) matters little when requirements won't change.

In short
  • The V-model pairs each development phase (left) with a test level (right) at the same height; each test level is planned during its phase and later verifies it. Acceptance testing validates the requirements.
  • Pairs: requirements–acceptance, system spec–system, architecture–integration, module design–unit.
  • Strengths: testability, traceability. Weaknesses: sequential, document-heavy, late software, costly change. Use for safety-critical, regulated work with stable requirements.
2.6

The Incremental Model exam

The waterfall makes the customer wait until the very end for anything usable, and all the risk lands at once. The incremental model keeps the up-front requirements but delivers the system in slices, so the most important part is in use early and the risk is spread out.

The idea

In the slides' version, you first capture the project requirements, then build the system as a series of "mini waterfalls", each running through analysis, design, development, testing and deployment, to give Release 1, 2 … n. Each increment is an operational, deliverable part of the product: something users can actually use, not a demo. Basic features come first and supplementary features later, so the product grows from A, to A+B, to A+B+C. A stable architecture (the overall structure: main components and how they connect) must be designed early, so that later increments fit.

Project requirementscaptured first, then partitioned Stable architecturedesigned early INCREMENT 1 · MINI WATERFALL INCREMENT 2 INCREMENT 3 Analysis Design Develop Test Deploy Analysis Design Develop Test Deploy Analysis Design Develop Test Deploy Release 1 Release 2 Release 3 A A B A B C
Requirements once, then a mini waterfall per release. Read down the right-hand column: the product in users' hands grows A → A+B → A+B+C. Everything to the left of the releases is planned from the requirements captured at the start, which is what separates this model from evolutionary development (2.7).
An incremental project, release by release
REQUIREMENTS (UP FRONT) A · basic features B · supplementary C · supplementary Architecture INCREMENTS · EACH A MINI WATERFALL IN USERS' HANDS Inc 1 Analysis Design Develop Test Deploy A lessons learned Change request (late) deferred to a later increment Inc 2 Analysis Design Develop Test Deploy A B Inc 3 Analysis Design Develop Test Deploy A B C customer Advantages: major requirements first · risk spread over increments · lessons improve later increments · each release operational · faster initial delivery · lower risk of failure
  1. All the requirements are captured up front and partitioned: A holds the basic features, B and C the supplementary ones. Each colour marks one slice.
  2. A stable architecture is designed early, so that every later increment will fit into it.
  3. Increment 1 runs a complete mini waterfall on slice A and is deployed: the customer now has a working, operational product with the basic features.
  4. Two things happen between increments. Lessons from increment 1 improve the later ones. And when a change request arrives late, it doesn't disrupt the current work: it can be deferred to a later increment.
  5. Increment 2 adds slice B, and the product in use becomes A+B. Because B's requirements were known from the start, increment 2 could even have started before increment 1 finished: increments can overlap.
  6. Increment 3 adds C: the full product A+B+C, which was known from the very beginning.
  7. The slides' advantages: major requirements are developed first; development risk is spread across the increments; lessons from each increment improve the later ones; each release is operational; initial delivery is faster; the risk of failure is reduced.

Advantages and disadvantages

Advantages (slides)
  • Major requirements are developed first.
  • Development risk is spread across the increments.
  • Lessons from each increment improve the later ones.
  • Each release is an operational increment.
  • Initial delivery is faster.
  • The risk of failure is reduced.
Disadvantages (slides)
  • It needs good planning and design, and designing the increments may not be straightforward.
  • It needs early definition of requirements, otherwise you can't identify the increments at all.
  • It is rigid: there is no iteration within an increment or mini waterfall.

Three further features round out the model. A stable architecture must be designed early so later increments fit; change requests can be deferred to a later increment; and increments can be overlapped (pipelined, like an assembly line), because their requirements are already known.

Check yourselfWhich are disadvantages of the incremental model on the slides? (Select all that apply.)
  1. It needs early definition of requirements to identify the increments.
  2. The customer gets nothing usable until the end.
  3. There is no iteration within an increment.
  4. It cannot accept any change request.

A and C (the third listed disadvantage is that it needs good planning and design). B is the waterfall's problem: incremental delivers operational releases early. D is wrong: change requests can be deferred to a later increment.

Deliver each increment, or keep it internal? exam

A predecessor-subject exam asked about a real trade-off: do you hand each increment to the customer, or treat increments as internal milestones and deliver only at the end?

Deliver increments to the customerKeep increments as internal milestones
Risklower Early user feedback catches misunderstood requirements; the customer gets early value; integration is tested in the real environment.higher Requirements and acceptance risk are deferred to the end, as in the waterfall.
Cost and schedulehigher Every delivery must be release quality (testing, installation, documentation, training, support); several versions in the field must be maintained; feedback brings change requests and scope creep.lower Cheaper and more predictable.
Choose whenRequirements risk is high.Requirements are stable, or partial deployment is impractical.
Check yourself · past exam[PAST EXAM 433-443 1999 Q2, predecessor subject] In the incremental model, discuss the risk vs cost/schedule trade-off of delivering increments to the customer versus keeping them as internal milestones.
  • Delivering increments lowers risk: early user feedback catches misunderstood requirements, the customer gets early value, and integration is tested in the real environment. But it raises cost and schedule, because every delivery must be of release quality (testing, installation, documentation, training, support), several versions in the field must be maintained, and the feedback brings change requests and scope creep.
  • Keeping increments as internal milestones is cheaper and more predictable, but the requirements and acceptance risk are deferred to the end, as in the waterfall.
  • So deliver when requirements risk is high, and keep increments internal when requirements are stable or partial deployment is impractical. A compromise is to demonstrate increments at review milestones.
Check yourself · past exam[PAST EXAM 433-443 1999 Q19.2, predecessor subject] Build A is infrastructure, B is core, and C (advanced) proceeds only if B succeeds. A whole-system SRS is reviewed at T0+4. Each build goes through analysis, design, implementation and test, and is delivered at T0+4, +10 and +16. Characterise the process model.
  • This is an incremental, staged-delivery model. Requirements for the whole system are baselined (formally fixed) up front, waterfall-style, with the SRS review at T0+4. The system is then built and delivered in three increments, each a mini waterfall of the four phases with its own acceptance review. The analysis of B and C overlaps A, and C's design starts after B is accepted.
  • It is risk-ordered (infrastructure, then core, then advanced), with a spiral-like go/no-go decision at Build B.
  • It is not evolutionary, because the requirements come from the SRS, not from feedback on delivered builds.
In short
  • Capture all requirements first, design a stable architecture, then deliver operational releases through mini waterfalls: A → A+B → A+B+C.
  • Pros: core first, risk spread, lessons carried forward, faster first delivery. Cons: needs early requirements and good planning; no iteration inside an increment.
  • Change requests can be deferred to later increments, and increments can overlap because their requirements are known.
2.7

Evolutionary Development, and Incremental vs Evolutionary exam

Incremental development assumes you know the requirements at the start. Sometimes you simply can't: the users say "I can't tell you what I want, but I'll know it when I see it". Evolutionary development is built for that situation: instead of planning the whole product, you build a first version and let real use tell you what the next version should be.

The model

Definition (Boehm 1988)

Evolutionary development is a model whose stages are "expanding increments of an operational software product, with the directions of evolution being determined by operational experience". In practice: build a first version from outline requirements, let the customer use it, and use their feedback to define the next version. It gives a rapid initial capability.

An evolutionary project, version by version
Outline requirements only customer "I can't tell you what I want, but I'll know it when I see it" Version 1 Feature X (rough) Feature Y use → feedback → new requirements Version 2 Feature X (reworked) Feature Y Feature Z (new) use → feedback Version 3 Feature X Feature Y (reworked) Feature Z Feature W (new) "That's it!" Boehm's difficulties: hard to tell apart from code-and-fix (spaghetti code, little planning); assumes the system can absorb unplanned evolution, which fails on integration, "information sclerosis", replacement
  1. The customer can give only outline requirements: they genuinely don't know the details until they see something working.
  2. Version 1 is built quickly from the outline, and it is operational: the customer really uses it, which gives a rapid initial capability.
  3. The customer uses version 1, and their feedback becomes the requirements for the next version. Requirements analysis happens again, every cycle.
  4. Version 2 is not just "version 1 plus a slice": it revises earlier functions (X is reworked, gold) as well as adding new ones (Z, green). The next cycle can't start until this version has been used.
  5. Another round of use and feedback gives version 3, and the customer says "that's it". The end product emerged; nobody could have specified it on day one.
  6. Boehm's difficulties. It is hard to tell apart from code-and-fix, with the same risk of spaghetti code (tangled, unstructured code) and little planning. And it assumes the system can absorb unplanned evolution, which fails in three situations explained below the stepper.

Boehm's second difficulty deserves unpacking, because each failure case is a realistic situation. The assumption that the system can absorb unplanned evolution breaks down when independently evolved applications must later be integrated (each grew its own way, so they don't fit together); when temporary workarounds harden into fixed constraints, which Boehm calls "information sclerosis" (a quick fix becomes something everything else depends on, so it can no longer be changed); and when new software must gradually replace a poorly modularised old system (you can't evolve away from something you can't take apart).

Incremental versus evolutionary, side by side

The two are easy to confuse, because both deliver in cycles. The root difference is where the requirements come from: incremental partitions requirements known up front; evolutionary discovers them from feedback. Every other difference follows from that one.

INCREMENTAL · A KNOWN JIGSAW A A B A B C Release 1Release 2Release 3 dashed outline = the whole product, known on day one
Incremental: built piece by piece. The picture on the box is known; each release fits the next planned piece.
EVOLUTIONARY · SCULPTING Version 1Version 2"That's it" roughreshaped by feedbackaccepted no outline: the final shape emerges from use
Evolutionary: shaped until the customer says "that's it". Each version may change what earlier versions did.
IncrementalEvolutionary
RequirementsMostly defined up front, then partitionedOnly an outline at first; they emerge from feedback
Each cycleAdds a planned slice (A → A+B → A+B+C)A new version that may revise earlier functions
End productKnown at the startEmerges
Requirements analysisOnce, at the startRepeated every cycle
Cycles overlap?Yes, they can be pipelinedNo. Each depends on feedback from the last delivery
Main riskWrong partitioning; late requirement changePoor structure; hard to plan, cost or contract
Mnemonic

Incremental is a known jigsaw built piece by piece; evolutionary is sculpting until the customer says "that's it". A third word, iterative, means repeating cycles to rework something. Agile is iterative and incremental (Part III).

Gantt sketches: waterfall, incremental, evolutionary exam

Two predecessor-subject exams (433-443 1999 Q1 and 2000 Q1b) asked students to draw these models as Gantt charts: bar charts with time across the page and one row per task. In each sketch below, the rows are summary tasks (a summary task groups the detailed tasks under it), the gold diamonds are customer-review milestones (zero-length events), and the dates are arbitrary. All three share one time axis, so you can compare when the first delivery arrives.

DAYS (ARBITRARY) 020406080100120140160180200 WATERFALLone pass, one delivery Requirements analysis Req Design Design Implementation Code Testing Test delivery INCREMENTALrequirements once · increments overlap · several deliveries Requirements analysis Req Architectural design Arch Increment 1 D C T D1 Increment 2 D C T D2 Increment 3 D C T D3 EVOLUTIONARYrequirements every cycle · cycles strictly sequential Version 1 R Build T Version 2 R Build T Version 3 R Build T Requirements / architecture Design / build Code Test customer review / delivery
Look at the shape of each chart. The waterfall is one staircase with a single delivery at the end. The incremental chart has one requirements bar, then increments that overlap in time (increment 2's design starts while increment 1 is still being coded), each ending in a delivery review D1–D3. The evolutionary chart repeats requirements (purple) in every version, and its versions can't overlap, because version n+1 needs the customer's evaluation of version n. Dotted gaps in the incremental rows are waits for the coders to free up.
Drawing these by hand

Annotate the key differences on your chart, because that is what earns the marks: incremental has one requirements phase and overlapping increments; evolutionary repeats requirements every cycle and its cycles are strictly sequential. Mark every customer review as a milestone diamond.

Check yourselfClassify each project as incremental or evolutionary: (a) a payroll system with a signed SRS, released in three planned slices; (b) a research team's data tool where scientists keep discovering what they need after trying each version; (c) a project where release 2 deliberately redesigns the screens built in release 1 because users disliked them.

(a) Incremental: requirements known up front (the SRS) and partitioned into planned slices. (b) Evolutionary: requirements emerge from using each version. (c) Evolutionary: a cycle that revises earlier functions because of feedback is the evolutionary signature; incremental cycles add planned slices.

Check yourself · past exam[PAST EXAM 433-443 1999 Q1, predecessor subject] Draw Gantt charts for the waterfall, incremental and evolutionary models, with summary tasks and customer reviews as milestones.

Use the three sketches above.

  • The waterfall chart has its phases in sequence, with review milestones after requirements, after design, and at acceptance.
  • The incremental chart has one requirements and architecture phase, followed by overlapping increment summaries, each ending in a delivery review.
  • The evolutionary chart has sequential "version n" summaries, each ending in a customer evaluation that feeds the next cycle.
Check yourself · past exam[PAST EXAM 433-443 2000 Q1 a–d, predecessor subject] (a) Distinguish waterfall, incremental and evolutionary. (b) Draw two Gantt charts contrasting incremental and evolutionary. (c) What is meant by the spiral model (2 sentences)? (d) What tool would you use if the commissioner's goals are unclear or a technology is used for the first time?
  • (a) Waterfall does each phase once, with one delivery. Incremental fixes requirements up front, then delivers planned slices that each add function. Evolutionary starts from outline requirements and delivers versions revised from user feedback, so the product emerges.
  • (b) Use the charts above, annotated to show the differences: single versus repeated requirements, and overlapping versus sequential cycles.
  • (c) Boehm's spiral is a risk-driven iterative process. Each loop sets objectives, alternatives and constraints, resolves the biggest risks (often by prototyping), develops and verifies the next level of product, and plans the next loop after a stakeholder commitment review. (See 2.9.)
  • (d) Prototyping: use a throwaway or proof-of-concept prototype, within a risk-driven (spiral) approach. (See 2.8.)
In short
  • Evolutionary: build from outline requirements, let the customer use it, let feedback define the next version; good for "I'll know it when I see it". Risks: code-and-fix-like spaghetti, and unplanned evolution failing on integration, information sclerosis or replacing old systems.
  • The root difference: incremental requirements are known and partitioned (cycles add, can overlap); evolutionary requirements emerge (cycles revise, strictly sequential).
  • On a Gantt chart: one requirements bar and overlapping increments, versus requirements in every version and back-to-back cycles.
2.8

Prototyping and Rapid Prototyping

When the customer can't say exactly what they want, or nobody is sure a technology will work, writing a 200-page SRS just records guesses. Prototyping attacks that problem directly: build something cheap that people can see and try, learn from it, and only then commit to the real thing. It is Royce's "do it twice" (2.4) turned into a model.

Prototyping (slides)

A prototype is an early, partial version of the software built to answer a question. In the prototyping model, you build a prototype to nail down the requirements, and then proceed waterfall-style: prototype, requirements, analysis, design, implementation, maintenance.

Prototype build, show, refine Requirements Analysis Design Implementation Maintenance THEN WATERFALL-STYLE But: prototypes can be expensive, and a single prototype might not be enough. The need for multiple successive prototypes is what inspired the spiral model.
One prototype up front, then a waterfall. The gold step is where the requirements get settled by showing people something concrete; after that the model is a plain waterfall, which is exactly why one prototype is sometimes not enough.

Rapid prototyping (slides)

Rapid prototyping evolved from prototyping. A rapid prototype is a working model functionally equivalent to a subset of the product: it really does some of what the final product will do. The approach is client-oriented: the client gives feedback before the team moves on, in a cycle of (1) prototype, (2) review, and (3) refine and iterate.

1 · Prototype 2 · Review 3 · Refine, iterate client-oriented feedback before moving on by the client
Rapid prototyping is a loop around the client. Nothing moves forward until the client has reviewed the latest prototype.
A prototype is for learning and risk reduction, not the product Clarify requirements Explore usability Test new technologya proof of concept
Three questions a prototype answers. What do they really want? Can they use it? Will the technology work? A proof of concept is a prototype built only to show something is feasible.

Two kinds of prototype

Whichever model you use, decide up front which kind of prototype you are building, because the two are built to different standards.

THROWAWAY Quick prototype Question answered Discarded lessons only Real system, engineered properly with NFRs, design, documentation and testing
Throwaway: built fast and discarded once it has answered its question. Only the knowledge survives.
EVOLUTIONARY PROTOTYPE Prototype Grown version Final system built to production quality and kept grown into the product, never thrown away
Evolutionary prototype: built to production quality from day one, then grown into the final system.
Prototyping pitfalls

The main pitfall is treating a throwaway prototype as nearly finished. It skips the non-functional requirements (NFRs: qualities such as performance, security and error handling, as opposed to features), documentation and testing, so it is nowhere near shippable however good it looks. The other pitfalls are unplanned prototyping cost and endless refinement: the "one more tweak" loop is scope creep (scope quietly growing beyond what was agreed).

Check yourself · past exam[PAST EXAM 433-443 1998 Q11, predecessor subject] "We already have a working prototype so we just need to iron out some minor problems and the system is ready for delivery." Discuss the role of a prototype and the relationship between the prototyping and spiral models.
  • A prototype is a cheap learning tool. It elicits and validates requirements, tests the UI and checks feasibility.
  • A throwaway prototype omits non-functional quality (performance, security, error handling), design, documentation and testing. These are not "minor problems", so the right response is to discard it and engineer the system, unless it was built as an evolutionary prototype.
  • The prototyping model uses one prototype to fix the requirements and then follows a waterfall. One prototype is often not enough, and that is what inspired the spiral.
  • The spiral generalises prototyping. Every cycle analyses risk and builds a prototype (1, 2, 3, then operational) to resolve it, then develops, verifies, plans and reviews. Prototyping is therefore a risk-resolution tool within the spiral.
Check yourselfA team builds a quick UI mock-up in a drag-and-drop tool to settle what screens the users want. The manager now proposes shipping it after "a bit of polish". What kind of prototype is it, and what is missing?

It is a throwaway prototype: built fast to answer a requirements question. Shipping it is the main prototyping pitfall, because it lacks the non-functional requirements (performance, security, error handling), documentation and testing. The right move is to keep the lessons and engineer the real system; it could only be grown into the product if it had been built to production quality from the start (an evolutionary prototype).

In short
  • Prototyping: one prototype to nail down requirements, then waterfall. Prototypes can be costly and one may not be enough, which inspired the spiral.
  • Rapid prototyping: a working model of a subset of the product, refined in a client-oriented prototype → review → refine loop.
  • A prototype is for learning and risk reduction. Throwaway (discard after) vs evolutionary (production quality, grown into the system). Never ship a throwaway.
2.9

The Spiral Model (Boehm 1986; Journal Version 1988) exam

Each model so far is good against one kind of trouble: the waterfall against chaos, prototyping against unclear requirements, incremental against late delivery. Barry Boehm's spiral asks a more general question: what could sink this project right now? Whatever the answer, that is what the next loop of work attacks. A risk here is anything uncertain that could harm the project, such as an unproven technology or a misunderstood requirement (Part IV treats risk in depth).

Risk-driven, not document-driven or code-driven

WATERFALL Document-driven a phase ends when its document is complete and reviewed EVOLUTIONARY Code-driven the next version follows from operational experience of the code SPIRAL Risk-driven each loop tackles the highest remaining risks first Same question for all three: "what decides what we do next?"
The spiral's key idea in one row. When an exam asks what distinguishes the spiral, the answer is risk analysis, not "it goes round in circles".

The spiral diagram has two dimensions. The radial dimension (distance from the centre) is the cumulative cost so far; the angular dimension (how far round you are) is progress through the current cycle. The slides walk round it from the centre ("Start here") through Plan, Risk analysis, Prototype, and Build and validate. In Boehm's own wording, each cycle passes through four quadrants. Step a project round it.

Round the spiral, one quadrant at a time
radius = cumulative cost angle = progress through the current cycle (clockwise) start 1 · Determine objectives, alternatives, constraints e.g. performance; design A/B, reuse, buy; cost, schedule 2 · Evaluate alternatives; identify & resolve risks risk analysis; prototypes 1, 2, 3, operational prototype; benchmarks 3 · Develop & verify next-level product concept of operation → reqs → design → code → tests → install 4 · Plan next phases requirements & life-cycle plan; development plan; integration & test plan P1 P2 P3 OP review &commitment(or terminate)
  1. The four quadrants are fixed; the project spirals out through them, clockwise, starting at the centre. Watch the line get longer and further from the centre: that is money being spent.
  2. Quadrant 1 · determine objectives, alternatives, constraints for this portion of the product: what must it achieve (e.g. performance), what are the options (design A or B, reuse, buy), and what limits apply (cost, schedule)?
  3. Quadrant 2 · evaluate alternatives; identify and resolve risks. Find the major risks and resolve them cost-effectively, by prototyping, simulation, benchmarking or reference checks. On the first loop that is prototype 1 (P1).
  4. Quadrant 3 · develop and verify the next-level product ("build and validate" on the slides). On the first loop the "product" is just a concept of operation: how the system will be used. Here the remaining risk decides the step: if UI or performance risk dominates, take an evolutionary or prototyping step; if development risk dominates, take a waterfall-like step (requirements, design, code, test), possibly an incremental one.
  5. Quadrant 4 · plan the next phases (first loop: the requirements and life-cycle plan), then hold a stakeholder review (gold diamond) so that everyone is committed to the next loop. The project may also be terminated here, for example if it will miss its market window.
  6. Loop 2: with the concept settled, the risks shift. Prototype 2 resolves them, the loop develops and validates the requirements, plans development, and ends in another review and commitment.
  7. Loop 3: prototype 3, then the design is developed and verified, the integration and test plan is drawn up, and a third review commits to the final loop.
  8. Loop 4: an operational prototype, then detailed code, tests and installation. By now most risks are gone, so this loop looks a lot like a waterfall.
  9. Read the finished picture: the radius is cumulative cost, so outer loops are the expensive ones, and the angle is progress through a cycle. Resolving risks in the cheap inner loops is the whole point.

Colours in the stepper match the quadrants: objectives, risk, develop and plan. P1–P3 are prototypes 1–3 and OP the operational prototype.

  1. Identify the objectives, alternatives and constraints for this portion of the product.
  2. Evaluate the alternatives, find the major risks, and resolve them cost-effectively, by prototyping, simulation, benchmarking or reference checks.
  3. Let the remaining risk decide the next step. If UI or performance risk dominates, take an evolutionary or prototyping step. If development risk dominates, take a waterfall-like step (requirements, design, code, test), possibly an incremental one.
  4. Plan the next cycle, then hold a stakeholder review so that everyone is committed to the next phase. The project may also be terminated at this point.
Check yourselfPut Boehm's four quadrants in the order a cycle visits them: (a) plan next phases; (b) develop and verify next-level product; (c) determine objectives, alternatives, constraints; (d) evaluate alternatives, identify and resolve risks. Where does the review and commitment happen?

c → d → b → a: objectives, then risk, then develop, then plan. The review and commitment comes at the end of the plan quadrant, before the next cycle starts (on the boundary between quadrants 4 and 1), and it is also where the project can be terminated.

A meta-model: the spiral becomes what the risks require

Because risk decides each step, Boehm describes the spiral as a meta-model: a model for generating models. What it turns into depends on the project's risks.

Spiral risk decides each step Low UI and performance risk, but high budget and schedule risk High risk of getting the UI or user requirements wrong Mixed risks behaves like a Waterfall behaves like Evolutionary development becomes a Mix of models
Feed in a risk profile, get out a process. This is why "the spiral is the waterfall drawn in a circle" is wrong: with the right risks it becomes a waterfall, but with others it becomes evolutionary development, or a blend.

Documents are risk-driven too. You write detailed documentation for the high-risk parts and defer it for the low-risk ones. That answers the awkward question every document-driven process faces: "how much documentation is enough?" Answer: as much as the risk justifies.

Check yourselfA project to re-host a well-understood payroll system has very clear user requirements and a stable UI, but a tight budget and a fixed go-live date. What does Boehm say the spiral turns into here?
  1. Evolutionary development
  2. A waterfall
  3. Rapid prototyping
  4. Code-and-fix

B. Low UI and performance risk with high budget and schedule risk is exactly the profile where the spiral behaves like a waterfall. A would follow from a high risk of getting the UI or user requirements wrong.

Advantages, difficulties and fit

Advantages (Boehm)
  • Eliminates errors and unattractive alternatives early.
  • Encourages reuse.
  • Builds quality objectives in.
  • Handles growth and change.
  • Uses one approach for both development and maintenance.
  • Suits hardware–software systems.
Three difficulties (Boehm) exam
  1. Matching to contract software. It works best for internal projects, because fixed contracts need deliverables specified in advance.
  2. Reliance on risk-assessment expertise. Inexperienced teams may detail the easy parts and gloss over the risky ones, which creates an illusion of progress.
  3. Needs further elaboration of its milestones, reviews and status tracking.

A further problem is that the per-cycle overhead (risk analysis, prototypes, reviews in every loop) makes cost and schedule hard to predict.

fits

Use the spiral for…

large, complex, high-risk, novel systems, with an experienced team and a flexible contract.
does not fit

Avoid it for…

small or low-risk work, fixed-price fixed-scope contracts, or teams without risk-management skill.

Boehm's top-10 software risk list, which feeds the spiral's risk quadrant, is covered in Part IV.

Check yourselfWhich are among Boehm's three named difficulties of the spiral? (Select all that apply.)
  1. It relies on risk-assessment expertise.
  2. It cannot handle hardware–software systems.
  3. It is hard to match to contract software.
  4. It never delivers a working system.
  5. Its milestones, reviews and status tracking need further elaboration.

A, C and E. B contradicts an advantage (it suits hardware–software systems), and D is false: the last loop develops, tests and installs the system.

In short
  • The spiral is risk-driven: each loop tackles the highest remaining risks. Radius = cumulative cost; angle = progress through the cycle.
  • Each loop: objectives/alternatives/constraints → evaluate and resolve risks (prototypes 1, 2, 3, operational) → develop and verify → plan, then a review and commitment (or termination).
  • It is a meta-model: waterfall-like, evolutionary or mixed depending on the risks; documents are risk-driven too.
  • Difficulties: contract fit, reliance on risk expertise, under-elaborated milestones; plus hard-to-predict cost. Fits large, novel, high-risk work with experienced teams and flexible contracts.
2.10

The Spectrum and the Comparison Grid exam

You now know seven models. Exam questions rarely ask you to recite one; they ask you to compare them, or to place a project among them. This section gives you two tools for that: a spectrum to locate each model, and a comparison grid to revise from.

From plan-driven to agile

The models sit on a spectrum. Formal models are at the defined, plan-driven end; agile frameworks (Part III) are at the empirical end; and the incremental, evolutionary and spiral models fall in between, each adding some feedback to a plan.

DEFINED · PLAN-DRIVEN EMPIRICAL · AGILE agility is not binary: it is a spectrum Waterfall V-model IN BETWEEN (NO SET ORDER) Incremental Evolutionary Spiral Agile (e.g. Scrum) Hybrid = a tailoring, not a formal SDLC: e.g. the client's mandated phase gates, with agile delivery inside them. Use one when the client already has a prescriptive model established.
Where each model sits. The guide places incremental, evolutionary and spiral "in between" without ranking them, so they are drawn as a group. Prototyping, as a model, is a prototype bolted onto a waterfall (2.8).

T02 "SDLC summary" exam

choose formal models when

The world is known

The customer knows what they want at the start; requirements are stable, precise and known; change is not expected; the technologies and tools are mature.
choose agile models when

The answer emerges

The customer gives time to the project; requirements keep emerging; change is welcome.
choose hybrid models when

A process is imposed

The client already has a prescriptive model established, e.g. mandated phase gates with agile delivery inside them. A hybrid is a tailoring, not a formal SDLC.

Van Lamsweerde's agile assumptions (covered in Part III) mark the limits of agile: a small co-located team, an available user, and a non-critical system. Mission-critical systems such as air traffic control, power plants and banking often break these assumptions, which is one reason formal models survive.

The comparison grid

This grid pulls the models together and is the one to revise from. Read across a row to compare the models on one dimension, or down a column for a quick profile of one model. First, a picture of four of its rows:

Waterfall V-model Incremental Evolutionary Prototyping Spiral Agile Requirements Stable, fully known up front Stable, testable Mostly known, partitioned Outline only; emerge from use Unclear; prototype clarifies Uncertain, high-risk; risk-first Expected to change Customer involvement Start and end Start and acceptance Each release High; uses each version High during evaluation Review and commitment each cycle Continuous (PO, reviews) Delivery Once, at end Once, at end Several operational releases Several versions After prototyping, usually once After final cycle (may be incremental) Increment every sprint Cost of late change Very high Very high Moderate; defer to later increment Low to moderate Low early Moderate; absorbed at cycle bounds Low; change welcome Bottom row tint: red very high · gold moderate · green low. Words are the guide's.
Four rows at a glance. Watch the bottom row go from red to green as you move from the plan-driven models to the feedback-driven ones: the more a model expects change, the less a late change costs. "PO" is Scrum's Product Owner (Part III).
WaterfallV-modelIncrementalEvolutionaryPrototypingSpiralAgile (Part III)
Requirements stabilityStable, fully known up frontStable, testableMostly known up front, partitionedOutline only; emerge from useUnclear; prototype clarifiesUncertain, high-risk; elaborated risk-firstExpected to change
Risk handlingPoor; risks surface at testingTest planning early, but execution lateSpread over increments; core firstEarly user feedback; architecture riskCuts requirements and UI riskExplicit risk analysis every cycleShort cycles, inspect and adapt
Customer involvementStart and endStart and acceptanceEach releaseHigh; uses each versionHigh during evaluationReview and commitment each cycleContinuous (Product Owner, reviews)
DocumentationHeavy, document-drivenHeavy + test plans per levelModerate to heavyLight, often poorLight for prototypeRisk-driven: "as much as needed"Light, just enough
DeliveryOnce, at endOnce, at endSeveral operational releasesSeveral versionsAfter prototyping, usually onceAfter final cycle (may be incremental)Increment every sprint
Cost of late changeVery highVery highModerate; defer to later incrementLow to moderateLow earlyModerate, absorbed at cycle boundariesLow; change welcome
Team / project sizeAny; suits large, contractedLargeMedium to largeSmall to mediumSmall to mediumLarge, complex; needs risk expertsSmall teams; scaled via SAFe (Part XI)
Typical domainsRegulated, fixed-price, well-understood upgradesSafety-critical, embedded, medicalBusiness systems needing an early coreNovel or exploratory apps, 4GLUI-heavy, novel interactionDefence, aerospace, novel hardware and softwareWeb and mobile products, volatile markets
ProsSimple, visible, predictable, documentedTraceable V&V, testabilityEarly value, lower risk, feedbackFast first version; requirements discoveredClarifies needs, cheap learningHandles risk; flexible meta-modelFast feedback, adaptable, value early
ConsInflexible; late testing; costly changeInflexible; late working codeNeeds early requirements and good architectureSpaghetti risk; hard to plan or contractPrototype mistaken for product; costComplex, overhead; needs expertise; poor contract fitNeeds available customer; weak for critical or large work; light docs

Two abbreviations in the grid: V&V is verification and validation (2.5), and a 4GL (fourth-generation language) is a high-level tool for building applications quickly, such as a database query and reporting language.

Check yourselfAccording to the comparison grid, which model's documentation is "risk-driven: as much as needed", and which model has customer involvement only at the "start and acceptance"?
  1. Spiral; V-model
  2. Agile; waterfall
  3. Spiral; waterfall
  4. Incremental; V-model

A. The waterfall's involvement is "start and end"; the V-model's is "start and acceptance", because acceptance testing is its customer touchpoint. Agile's documentation is "light, just enough"; risk-driven documentation is the spiral's signature.

Check yourselfWhich models in the grid deliver more than once? (Select all that apply.)
  1. Waterfall
  2. Incremental
  3. V-model
  4. Evolutionary
  5. Agile

B, D and E. Incremental gives several operational releases, evolutionary several versions, agile an increment every sprint. Waterfall and V-model deliver once, at the end. (The spiral delivers after its final cycle, which may itself be incremental; prototyping usually delivers once.)

In short
  • Spectrum: waterfall and V-model (plan-driven) … incremental, evolutionary, spiral … agile (empirical). Agility is not binary.
  • T02: formal when requirements are known, stable and tech is mature; agile when requirements emerge and the customer gives time; hybrid when the client imposes a prescriptive model.
  • The grid compares requirements, risk, customer, documentation, delivery, cost of late change, size, domains, pros and cons. Cost of late change falls as models expect more change.
2.11

Choosing an SDLC for a Project exam

Knowing the models is only half the job; the exam's extended questions ask you to choose one for a given project and justify the choice. This section gives you a checklist of factors, a visual decision guide built from it, the difference between weak and strong arguments, and a seven-step framework for a full "evaluate and recommend" answer.

The decision checklist

  1. Requirements clarity and stability. Clear and stable → waterfall or V-model. Mostly clear and early value needed → incremental. Unclear or volatile → prototyping, evolutionary or agile.
  2. Technical novelty and risk. New hardware, algorithms or platforms point to the spiral, or to a prototype as a proof of concept.
  3. Criticality and regulation. Safety-critical or audit-heavy work calls for V-model or waterfall-style V&V and documentation, or for the spiral. Avoid a purely agile approach for the critical parts.
  4. Customer availability. Often available → agile or evolutionary. Available only at fixed points → a plan-driven model, or a spiral with scheduled reviews.
  5. Size and distribution. Small, co-located work → agile. Large, multi-team or contracted work → plan-driven, the spiral, or scaled agile.
  6. Need for early delivery → incremental or agile.
  7. Team experience with the domain, the technology and the process. A spiral needs risk expertise; agile needs self-management.
  8. Contract and culture. Fixed price and fixed scope → plan-driven; time-and-materials (the client pays for the work actually done) → iterative; a client with a mandated process → hybrid.
  9. Maintenance and handover. If another team will maintain the system, you need more documentation.
  10. Predictability required up front → plan-driven.

The mnemonic, from Boehm & Turner's "home grounds" for agile versus plan-driven methods, is size, criticality, dynamism, personnel, culture. "Dynamism" means how much the requirements change; "personnel" means the team's skill and experience.

The decision guide, as a picture

Here is the same checklist laid out so you can scan a scenario against it. For each factor, find the branch that matches the project's facts and note the models it points to. The model that keeps turning up, and whose prerequisites the project meets, is your candidate. 2.12 runs the Medic case through it step by step.

FACTORIF THE PROJECT IS… → IT POINTS TO 1 Requirements clarity & stability clear and stable Waterfall · V-model mostly clear, early value needed Incremental unclear or volatile Prototyping · Evolutionary · Agile 2 Technical novelty and risk new hardware, algorithms or platforms Spiral · proof-of-concept prototype 3 Criticality and regulation safety-critical or audit-heavy V-model / waterfall-style V&V, or Spiral for the critical parts avoid a purely agile approach 4 Customer availability often available Agile · Evolutionary available only at fixed points Plan-driven · Spiral with scheduled reviews 5 Size and distribution small, co-located Agile large, multi-team or contracted Plan-driven · Spiral · scaled agile 6 Need for early delivery early delivery needed Incremental · Agile 7 Team experience a spiral needs risk expertise agile needs self-management 8 Contract and culture fixed price, fixed scope Plan-driven time-and-materials Iterative client mandates a process Hybrid 9 Maintenance and handover another team will maintain it More documentation 10 Predictability required up front predictability needed up front Plan-driven Mnemonic (Boehm & Turner's "home grounds"): size, criticality, dynamism, personnel, culture
Ten factors, each a fork. White branches point to models (coloured names); the red branch is a warning; grey branches are prerequisites rather than pointers. It is a checklist, not a scoring machine: the guide asks you to weigh the factors that dominate this project and say why.

Strong versus weak arguments (T02)

A weak argument describes the SDLC or the project but never connects the two. "Waterfall gives us many phases" leaves the marker asking "so what?"; "Agile perfectly suits the project" leaves them asking "how? why?". A strong argument follows a chain from a project fact to the trade-off.

WEAK · NO CONNECTION about the SDLC only "Waterfall gives us many phases." a bare claim about the project "Agile perfectly suits the project." marker: "so what?" · "how? why?" STRONG · A CHAIN FROM FACT TO TRADE-OFF 1 · Project fact 2 · Need or risk 3 · SDLC feature 4 · How it helps 5 · Trade-off Senior doctors arerarely available so their input mustbe concentrated Prototyping front-loadsrequirements workshops+ one mid-project UImock-up review uses their limited timewhere it most reducesthe risk of anunusable UI admit what the choicecosts or assumes T02 also says: recommend one SDLC. Combining several for one project is beyond what is expected.
Every link is a sentence in your answer. The T02 example (grey text) covers links 1–4 in one sentence; add link 5 yourself by admitting the cost or assumption of your choice.
Weak

"We should use prototyping because it is good for unclear requirements."

Generic: true of every project, linked to no fact of this one.

Strong (T02)

"Senior doctors are rarely available, so their input must be concentrated. Prototyping front-loads requirements workshops and one mid-project UI-mockup review, using their limited time where it most reduces the risk of an unusable UI."

Check yourselfRewrite this weak argument as a strong one: "The spiral is good because it handles risk." Use this fact: the project depends on a GPS chip the team has never used.

One strong version: "The project depends on a GPS chip the team has never used (fact), so there is a high technical risk that it won't meet accuracy or timing needs, discovered only at integration (risk). The spiral's second quadrant resolves the biggest risks first by prototyping (SDLC feature), so an early loop can benchmark the chip before major investment, and the review at the end of the loop can switch hardware or stop (how it helps). The cost is per-cycle overhead and a less predictable schedule, and it needs someone skilled in risk analysis (trade-off)." The point is the chain, not these exact words.

The "evaluate the SDLC used / recommend an alternative" framework (from A1)

Assignment 1 asked students to evaluate the SDLC a failed project used and recommend an alternative. Its structure is a ready-made plan for the exam's case-study questions:

  1. Context and goals. Set out the project's size, novelty, criticality, stakeholders and contract.
  2. Identify the SDLC used. If it isn't named, infer it from the evidence and say so. For example, up-front specification, phase sign-offs and one "big bang" delivery imply waterfall.
  3. Setbacks. Describe them with specific evidence of delay, cost, scope, quality or cancellation.
  4. Causes linked to SDLC practices. Trace each one from cause, to practice, to effect (see the chain below).
  5. Better use of the same SDLC. Give fixes tied to each cause. Royce's five steps (2.4) are a ready-made source, and you can add phase-gate reviews, change control and risk management.
  6. Alternative SDLC. Recommend one, with a table whose columns are issue, feature of the new SDLC and why it helps. Admit its costs and assumptions, for example that Scrum needs an available Product Owner.
  7. Conclude in one or two sentences.
STEP 4 · CAUSE → PRACTICE → EFFECT, EXAMPLE Requirements frozen withlittle user validation Misfit found atacceptance testing Rework and delay each setback gets its own chain, ending in evidence from the case
Link the setback to a practice of the process. "The project failed because of waterfall" earns little; this chain shows which waterfall practice caused which setback.

Illustration. For the Surrey Police SIREN project (begun 2009, later abandoned), a good answer infers the process from the documented practices, links the setbacks to them, and justifies an alternative feature by feature, rather than just saying "agile would have been better".

How this is examined

Extended questions are often "evaluate and recommend". They want one recommendation, justified against the case's facts, with the trade-offs admitted. Marks go to the reasoning chain, not to naming a fashionable model.

Check yourself · past exam[PAST EXAM 433-443 1998 Q12, predecessor subject] A bank's accounting-systems team (programmers with 7+ years in the domain) wants to try the spiral model, which they have just heard of, for new functionality in an existing system. Discuss the factors that affect process selection, and recommend.
  • The factors are those in the checklist above: requirements stability, technical risk, size, criticality, customer availability, team experience with the domain and the process, contract and culture, time pressure, and documentation.
  • The recommendation is not to adopt the full spiral here. This is an enhancement of a well-understood system by domain experts, so risk is low and the requirements are fairly clear, which makes per-cycle risk analysis unjustified overhead. The spiral also relies on risk-assessment expertise that the team lacks, and it fits contract work poorly (Boehm).
  • Instead, the team should keep their proven process and add Boehm's lightweight risk management plan (top-10 risks reviewed monthly). They should also train staff and pilot the spiral on a novel, high-risk project.
Check yourself · past exam[PAST EXAM 433-443 2002 Q10, predecessor subject] The customer is hesitant, doesn't know the application area and keeps changing their mind. How would you organise the project?
  • Use an iterative, empirical life cycle (prototyping, evolutionary or Scrum), not waterfall.
  • Start with workshops and mock-ups or prototypes, so that the customer reacts to something concrete.
  • Run short iterations, each ending in a demo and review, and deliver the most certain, highest-value core first.
  • Have one empowered customer representative, supported by a domain expert or business analyst.
  • Keep a prioritised backlog and change control, and get sign-off at each iteration.
  • Use a time-and-materials or staged contract rather than a fixed price, and log requirements volatility as a risk.
Check yourself · past exam[PAST EXAM 433-341 2009 Q2, predecessor subject] Port management system: 18 months, new monitoring hardware, port modelling that is hard to estimate. Should it use (A) a modified waterfall with feedback or (B) an iterative model with prototyping? Give benefits and drawbacks, and choose.
BenefitsDrawbacks
(A) Modified waterfallClear phases, documents and milestones; a predictable plan; traceability for a safety-related system.Hardware and modelling problems surface only at integration and test; feedback is costly; estimates are unreliable.
(B) Iterative with prototypingPrototypes of the monitoring, model and scheduling resolve technical and requirements risk early; estimates improve with each iteration.Less predictable up-front cost and schedule; more management; lighter documentation.

Choose B. Technological novelty and estimation uncertainty dominate, and prototyping attacks both; the plan already front-loads prototypes and a feasibility study. Keep strong V&V, though, because ship separation is safety-critical.

In short
  • Weigh ten factors (requirements, novelty, criticality, customer availability, size, early delivery, team experience, contract, maintenance, predictability); mnemonic: size, criticality, dynamism, personnel, culture.
  • Strong arguments chain fact → need/risk → SDLC feature → how it helps → trade-off. Recommend one SDLC.
  • A1 framework: context, identify the SDLC (infer if needed), setbacks, causes linked to practices, better use of the same SDLC, one alternative with an issue/feature/why table, conclusion.
2.12

Applying It to the Medic Case: Which SDLC and Why

The tutorials' running case is Medic: a virtual-reality surgical simulator for the hospital RVEEH, letting trainee surgeons practise cochlear-implant and temporal-bone surgery, because good-quality cadavers for practice are scarce. The trainee feels the drill through haptic devices (hardware that pushes back on your hand to simulate touch and force) while viewing the anatomy in stereoscopic 3-D. Tutorial 2 asks: which SDLC should the Medic project use? This section works the answer the way the exam wants it: from case facts, to risks, to a model.

Case facts that drive the choice

Each fact below implies a risk or a need, and together they decide the SDLC (Medic case study; T02 recap).

CASE FACT RISK OR NEED IT CREATES New hardwarehaptic devices, stereoscopic 3-D High technical riskprove feasibility early, not at final testing (Royce's warning) Strict performance and reliabilityrequirements in the case Up-front analysis neededthese can't simply emerge sprint by sprint Fidelity is open-ended: "How close can we get?"non-standard analysis, complex force algorithms Requirements partly unknownthey must be explored Users are trainee surgeonsnot IT experts Usability riskreduced by mock-ups and prototypes Clients: two busy senior surgeonscustomer time is scarce Breaks an agile assumptionno constantly available customer 12 inexperienced developers + 2 experienced managersweak in C++, 3-D, haptics; language (C++ or Java) negotiable Skills riskneeds structure and early learning RVEEH IT must maintain the systemafter handover Maintenance documentation neededfor the hospital's IT team
Facts on the left, risks on the right. Notice how many right-hand boxes are risks: technical, requirements, usability, skills. That pattern, a project dominated by risk, is what will point to the spiral. "Fidelity" means how realistic the simulation feels.

Running Medic through the decision guide

Now take the decision guide from 2.11 and walk Medic's facts through it, factor by factor. Gold rings mark the branch each fact selects.

The Medic case, through the decision guide
FACTORIF THE PROJECT IS… → IT POINTS TO 1 Requirements clarity & stability clear and stable Waterfall · V-model mostly clear, early value needed Incremental unclear or volatile Prototyping · Evolutionary · Agile 2 Technical novelty and risk new hardware, algorithms or platforms Spiral · proof-of-concept prototype 3 Criticality and regulation safety-critical or audit-heavy V-model / waterfall-style V&V, or Spiral for the critical parts avoid a purely agile approach 4 Customer availability often available Agile · Evolutionary available only at fixed points Plan-driven · Spiral with scheduled reviews 5 Size and distribution small, co-located Agile large, multi-team or contracted Plan-driven · Spiral · scaled agile 6 Need for early delivery early delivery needed Incremental · Agile not settled by the case facts used here 7 Team experience a spiral needs risk expertise agile needs self-management 8 Contract and culture fixed price, fixed scope Plan-driven time-and-materials Iterative client mandates a process Hybrid not settled by the case facts used here 9 Maintenance and handover another team will maintain it More documentation 10 Predictability required up front predictability needed up front Plan-driven not settled by the case facts used here Verdict: Spiral pointed to by rows 2, 4 and 5; its prerequisite (7) met by the two managers; risk-driven docs serve 9.
  1. The ten factors from the checklist. We'll test Medic's case facts against each one and see which models keep turning up.
  2. 1 · Requirements: fidelity is open-ended ("How close can we get?"), with non-standard analysis and complex force algorithms. The requirements are partly unknown, so the "unclear or volatile" branch: prototyping, evolutionary or agile.
  3. 2 · Technical novelty: new haptic hardware and stereoscopic 3-D. That points squarely to the spiral, or a proof-of-concept prototype.
  4. 3 · Criticality (partial match, dashed): Medic isn't described as regulated, but its strict performance and reliability requirements need up-front analysis. That counts against a purely agile approach for those parts, which is one reason the guide rates Scrum only a partial fit.
  5. 4 · Customer availability: two busy senior surgeons, available only at agreed points. That points to a plan-driven model or a spiral with scheduled reviews, and away from agile's constant customer.
  6. 5 · Size: 12 developers plus 2 managers, more than one Scrum team. The "large, multi-team" branch: plan-driven, spiral or scaled agile.
  7. 7 · Team experience: the developers are inexperienced, but the spiral's prerequisite is risk expertise, and the two experienced managers can supply it by leading the risk analysis.
  8. 9 · Maintenance: RVEEH IT will maintain the system, so more documentation is needed. The spiral's risk-driven documentation can deliver it where it matters.
  9. Factors 6, 8 and 10 (early delivery, contract, up-front predictability) aren't settled by the case facts used here, so they don't decide the choice.
  10. Verdict: the spiral. It is pointed to by novelty, customer availability and size; its one prerequisite is met by the managers; and its risk-driven documentation serves the handover. Factor 1 shows why prototyping is the strongest runner-up.

Evaluating the candidates

WaterfallScrumIncrementalPrototypingSpiral poor fit partial fit partial fit strong for UI, time recommended Haptics and performance unknowns would surface only in late testing, forcing redesign. Iteration helps the UI, but the surgeons can't be a constantly available Product Owner, performance and reliability need up-front analysis, and 12 people exceed one Scrum team. Would deliver features progressively (load model → 3-D view → procedure → save/restore, replay), but needs early fixed requirements and does nothing specific about technology risk. T02's worked "good argument": early requirements workshops, mid-stage UI mock-ups, and the doctors' time used at agreed points. Risk-dominated project: prototypes and benchmarks resolve the top risks early; short scheduled reviews suit the surgeons; risk-driven documentation for RVEEH IT.
Five candidates, one recommendation. Notice that even the losers get a fair hearing: the exam rewards weighing alternatives, and prototyping is a genuinely strong runner-up.

What Medic's spiral looks like

Recommending the spiral is only convincing if you can say what its loops would actually contain for Medic:

1 · Objectives, alternatives C++ or Java? build or buy the graphics and haptics libraries? 2 · Resolve the top risks haptic proof of concept, frame-rate benchmarks, UI mock-ups 3 · Develop and verify the next-level product, now that its top risks are resolved 4 · Plan, review, commit a short, scheduled meeting: uses the surgeons' scarce time well EARLY CYCLES LATER CYCLES Waterfall-like or incremental for the well-understood features Risk-driven documentation for the RVEEH IT team Weakness: needs risk expertise so the two experienced managers must lead the risk analysis (risk management: Part IV)
The spiral, filled in with Medic's content. Quadrant 2 is where the case's big unknowns (haptic feasibility, frame rate, usability) get settled cheaply. Once they are, the meta-model turns the later loops into something waterfall-like or incremental.
Model conclusion (guide)

"Spiral, because Medic's dominant problems are risks (new haptic hardware, real-time performance, fidelity, usability, an inexperienced team). Explicit risk analysis and a prototype per cycle resolve these before major investment, and the review points match the surgeons' limited availability."

Which facts you use changes the answer

This analysis uses the original case, where the client surgeons are busy. The Week 4 stakeholder addendum, however, makes two liaison surgeons available day-to-day, and with that fact an adapted (hybrid) Scrum becomes just as defensible (see Part III). T02's own worked example argued for prototyping. So in the exam, say which facts you rely on: marks go to a justification tied to the case facts, not to one "correct" model.

Check yourself · self-testA Medic team member says "use Scrum because agile suits changing requirements". Critique this and give a stronger evaluation.

The argument is weak because it states a generic feature with no link to the case. A stronger evaluation weighs both sides. For Scrum, the surgeons could give usability feedback each sprint, and spikes (short time-boxed experiments) would let the team learn haptics. Against it, the busy surgeons can't be an always-available Product Owner, strict performance and reliability need up-front analysis, the new hardware brings high technical risk, 12 inexperienced developers exceed one Scrum team, and the RVEEH IT team needs documentation. On balance, a risk-driven spiral fits better.

Check yourselfAn exam version of the Medic case states that two liaison surgeons are available to the team every day. Does the spiral recommendation still stand, and what should your answer say?

It is no longer the only defensible answer. With a customer available day-to-day, the main objection to Scrum (no constantly available Product Owner) falls away, and the guide says an adapted (hybrid) Scrum becomes just as defensible. Your answer should state which facts it relies on, pick one model, and justify it against those facts with its trade-offs (e.g. for adapted Scrum: up-front architecture and performance work and handover documentation still needed; for the spiral: per-cycle overhead and reliance on the managers' risk expertise).

In short
  • Medic's facts (new haptic hardware, strict performance, open-ended fidelity, non-expert users, busy surgeons, an inexperienced team, maintenance by RVEEH IT) mostly create risks.
  • Waterfall: poor. Scrum and incremental: partial. Prototyping: strong for UI and availability. Spiral: recommended, with risk-resolving prototypes, short scheduled reviews and risk-driven documentation; the managers lead risk analysis.
  • Different facts (the Week 4 addendum) can justify adapted Scrum; always say which facts you rely on.
2.13

Common Pitfalls and Self-Test

These are the mistakes that cost marks on this topic, collected in one place. Each one is a sentence you might be tempted to write; the fix follows it.

Common pitfalls
  • "Royce advocated the waterfall." He didn't: he called the single pass "risky" and added iteration, prototyping and customer involvement (2.4).
  • Treating incremental and evolutionary as synonyms. They differ in where the requirements come from and in whether cycles can overlap (2.7).
  • "Spiral = waterfall in a circle." Its defining feature is risk analysis (2.9).
  • Shipping a throwaway prototype as the product, even though it was never built to production quality (2.8).
  • "Waterfall is always bad." It is the right choice for stable, well-understood, regulated or fixed-price work.
  • Agile misconceptions (T02). These include slipping back into waterfall under pressure, calling "lots of short waterfalls" agile, and labelling a waterfall as agile.
  • Generic justifications that don't connect a feature of the SDLC to a case fact (2.11).
"LOTS OF SHORT WATERFALLS" Reqs Design Code Test Reqs Design Code Test Reqs Design Code Test still sequential hand-offs inside each cycle
Not agile: short cycles alone don't make a process agile if each one is still a strict hand-off sequence.
WHAT EARNS THE MARKS a case fact an SDLC feature why it helps here the trade-off connected, specific, honest
The cure for generic justification: every claim about a model is tied to a fact of this case, and its cost is admitted.

Mixed self-test

Check yourselfWhich statements are correct? (Select all that apply.)
  1. The spiral's defining feature is that it repeats the waterfall phases in a loop.
  2. Incremental cycles can overlap because their requirements are already known.
  3. A throwaway prototype can be shipped once its minor bugs are fixed.
  4. Waterfall can be the right choice for regulated, fixed-price work with stable requirements.
  5. Evolutionary cycles revise earlier functions in response to feedback.

B, D and E. A is the "waterfall in a circle" pitfall: the defining feature is risk analysis. C is the throwaway-prototype pitfall: it lacks NFRs, documentation and testing, which are not "minor bugs".

Check yourselfA small co-located startup team of five is building a social app for a market nobody fully understands yet; the founder sits with the team daily and features change weekly. Which end of the spectrum, and which factor-checklist items justify it?

The agile (empirical) end. Checklist items: requirements are unclear and volatile (factor 1 → prototyping, evolutionary or agile), the customer is often available (factor 4 → agile or evolutionary), the team is small and co-located (factor 5 → agile), and early delivery matters (factor 6 → incremental or agile). Agile is the model all four point to. The trade-off to admit: the team needs self-management (factor 7), and documentation will be light.

Check yourselfIn one sentence each: what does each of these add to the plain waterfall? (a) Royce's "do it twice"; (b) the V-model; (c) the incremental model; (d) the spiral.

(a) A pilot of the critical areas first, so the delivered system is really the second version (the origin of prototyping). (b) A test level paired with, and planned during, each development phase. (c) Delivery in operational slices through mini waterfalls, after up-front requirements. (d) Explicit risk analysis in every loop, letting the remaining risk decide what kind of step comes next.

In short
  • Don't say Royce advocated the waterfall, don't merge incremental and evolutionary, don't call the spiral a circular waterfall, don't ship a throwaway prototype, and don't dismiss the waterfall outright.
  • Short waterfalls in a row are not agile.
  • Every justification must link an SDLC feature to a case fact and admit the trade-off.