On this page

← RCF

Lineage

What RCF inherits

RCF combines practices from waterfall, requirements-driven development, agile, extreme programming, behaviour-driven development, domain-driven design, continuous delivery and spec-driven development. This page records each contribution and where RCF uses it.

RCF names practices the author developed across AI-assisted projects after thirty years in software. Requirements govern the work, acceptance criteria define verification, and traceability connects business decisions to code. Those practices come from earlier methodologies.

Each section identifies a contributor, its practice and its place in RCF. The framework combines these practices with explicit traceability for work carried out by agents. It remains an evolving synthesis.

What RCF inherits: a contributor map A contributor map. The Requirements Confidence Framework, RCF, sits at the centre in a solid signal-coloured card. Eight contributing methodologies array around it: Waterfall (1970s), requirements-driven development (1990s), Agile (2001), and XP with TDD (late 1990s) along the top; BDD (mid-2000s), DDD (2003), Continuous Delivery (2010), and SDD (2024-25) along the bottom. From each contributor card a single thread runs into RCF, labelled with the specific piece RCF inherited from that methodology: document chain and audit trail from Waterfall; traceability as a discipline from requirements-driven development; living spec and feedback from Agile; tests-first plus customer-owned acceptance tests from XP; Given/When/Then as the acceptance-criterion syntax from BDD; ubiquitous language from DDD; every stage commits, the commit as the unit of truth, from Continuous Delivery; the spec as a primary artefact from SDD. Visual rhetoric: everything converges on RCF, the diagram is not a timeline. document chain traceability living spec, feedback tests-first; customer ACs Given/When/Then ubiquitous language commit as the unit of truth spec as primary artefact Waterfall. What it contributed: the document chain and the audit trail. Requirements as artefacts that get agreed before code, not after. The chain is auditable by construction. 1970S Waterfall Requirements-driven development. What it contributed: traceability as a discipline. Requirements drive the build, and every artefact carries a link back to the requirement and forward to the test that proves it. RCF inherits traceability as a property of the data model. 1990S RDD Agile. What it contributed: feedback and adaptation. The living spec posture, iteration as first-class work, the compressed feedback loop. RCF inherits the claim that the spec is allowed to move and the gap between docs and code becomes the next build cycle. 2001 Agile XP (Extreme Programming), with TDD inside it. What it contributed: tests-first as the unit of progress, and customer-owned acceptance tests. RCF's acceptance criterion descends from Beck's framing that the customer writes the tests that decide whether the story is done. LATE 1990S XP with TDD Behaviour-Driven Development. What it contributed: Given/When/Then as the syntax for acceptance criteria. RCF's AC syntax is BDD's, used without apology. The theatre failure mode BDD makes possible is what RCF's structural defences guard against. MID-2000S BDD Domain-Driven Design. What it contributed: ubiquitous language. The deliberate practice of using the domain vocabulary consistently across code, docs, tests, and conversation. RCF's opaque IDs and domain-tagged requirements descend from this. 2003 DDD Continuous delivery. What it contributed: every stage commits, the commit is the unit of truth. RCF's per-stage commit discipline in the build cycle is the direct descendant of Humble and Farley's pipeline-as-truth move, applied one layer up the chain. 2010 CD Spec-Driven Development. What it contributed: the executable spec as a primary artefact, giving AI agents a stable target. RCF inherits the spec-as-truth move and puts requirements above it so the chain names which spec was the right spec. 2024-25 SDD RCF. The Requirements Confidence Framework. The convergence point of the contributors above. RCF synthesises pieces from each: document chain, traceability, living spec, tests-first, customer-owned ACs, Given/When/Then syntax, ubiquitous language, commit-as-truth, spec-as-primary. RCF's own contribution is putting the pieces together with traceability as a property of the data model itself. RCF the synthesis What RCF inherits: contributor stack (vertical layout) A vertical contributor stack. Eight methodologies feed into RCF at the bottom. Top to bottom: Waterfall, requirements-driven development, Agile, XP with TDD, BDD, DDD, Continuous Delivery, SDD. Each contributor connects to the next via a short signal-coloured thread, with a label naming the piece passed forward: document chain, traceability, living spec and feedback, tests-first plus customer ACs, Given/When/Then, ubiquitous language, commit as the unit of truth, spec as primary artefact. The chain terminates at RCF, rendered in a solid signal-coloured card. document chain traceability living spec, feedback tests-first; customer ACs Given/When/Then ubiquitous language commit as the unit of truth spec as primary artefact Waterfall. Contribution: document chain and audit trail. 1970S Waterfall Requirements-driven development. Contribution: traceability as a discipline, requirements driving the build with links back and forward. 1990S RDD Agile. Contribution: feedback, living spec, iteration as first-class. 2001 Agile XP with TDD. Contribution: tests-first, customer-owned acceptance tests. LATE 1990S XP with TDD BDD. Contribution: Given/When/Then as the AC syntax. MID-2000S BDD DDD. Contribution: ubiquitous language and domain-tagged requirements. 2003 DDD Continuous Delivery. Contribution: every stage commits, the commit is the unit of truth. 2010 CD SDD. Contribution: spec as a primary artefact for AI agents. 2024-25 SDD RCF. The Requirements Confidence Framework. The convergence point of the contributors above. RCF the synthesis
Waterfall, RDD, Agile, XP, BDD, DDD, CD, SDD → RCF

Waterfall: the document chain and the audit trail

Waterfall introduced structure as software projects and contracts grew in the 1970s. Requirements, design, build, test and shipping followed in sequence, with a signed document at each handover.

RCF inherits waterfall’s written, owned and approved requirements, explicit scope exclusions and audit trail. These record decisions by the accountable people before implementation. Regulated industries still use waterfall variants for this structure and auditability.

Waterfall established written and approved documents. It did not guarantee checked links between those documents and implemented features. Requirements-driven development made those links explicit.

Requirements-driven development: traceability as a discipline

Requirements-driven development makes requirements drive the build. Artefacts link back to their requirements and forward to verification. A requirements traceability matrix records these connections and makes end-to-end coverage checkable.

RCF inherits most directly from RDD’s use in aerospace, automotive and medical software. DO-178C, ISO 26262 and IEC 62304 expect traceability from code to requirements and tests, with auditable coverage. The full RDD lifecycle includes elicitation, specification and verification, with a matrix maintaining the links. These practices have supported regulated software for decades.

RCF inherits the stance that requirements drive everything and traceability is a first-class, auditable discipline rather than a nicety. Where waterfall contributed the documents, RDD contributed the rigorous traceability across them and the idea that end-to-end coverage is something you prove, not something you assert. In RCF that lives in traceability as a property of the data model, with requirements sitting at the apex of the chain and driving what gets built below. What RCF does with the inheritance is take it out of the heavyweight ALM tooling the regulated world relies on and put it in the repository, enforced by the build cycle instead of a separate requirements database. For the fuller treatment, including where classical RDD is still the better choice, see RCF and requirements-driven development.

Waterfall and classical RDD assumed a stable specification. Requirements could be written, traced, verified and shipped against that target. Agile contributed a process for changing the specification while building.

Agile: the living spec

The Agile Manifesto turned twenty-five in February 2026. Practice has changed considerably since its seventeen authors met in Utah.

Agile contributed short feedback cycles: build a small increment, show it to users, learn and revise. It drew on lean ideas, including the Toyota Production System and lean startup practices. Small batches and fast feedback let organisations adapt to what they learn.

RCF inherits the living-spec idea straight from this. The document chain is editable on purpose. When a build finds a constraint nobody saw coming, the spec moves, and the gap between docs and code becomes the next build cycle. Iteration is first-class work, not a deviation from the plan.

Some teams have used agile to justify leaving requirements unwritten, treating sprints as accounting periods and adding criteria when tickets close. The manifesto values both working software and documentation, while giving the former priority. It assumes engineering discipline; XP made those practices explicit.

Extreme programming: tests first, and the customer writes the acceptance tests

Extreme Programming, mostly Kent Beck’s framing from the late 1990s, was the methodology that took agile’s feedback claim and added the engineering discipline it assumed. Pair programming, continuous integration, refactoring as a named practice, small releases, collective ownership. And two specific moves that RCF inherits at the centre of its chain.

First, tests first. Test-driven development came out of XP, not the other way around. Write the failing test in code, write just enough implementation to make it pass, refactor. The discipline forces you to know what success looks like before you build, and it leaves a regression net behind as a side effect. RCF inherits TDD’s test-suite layer wholesale. Tests prove the contract holds, and the contract is the thing the test was written against, not a thing the developer invented while coding.

XP made acceptance tests the customer’s responsibility. The customer defines when a story is complete. Later agile terminology used acceptance criteria for this commitment. RCF’s acceptance criterion as the contract preserves that ownership: the developer implements behaviour the customer has agreed.

Behaviour-driven development: Given/When/Then as the AC syntax

Behaviour-driven development grew out of TDD in the mid-2000s, mostly through Dan North, with the explicit aim of fixing the way TDD encouraged engineers to write tests in implementation language. North’s framing was that BDD is “TDD done right” because it puts the verb on observable outcomes rather than internal mechanics. The contribution was a sentence shape product owners and engineers could both read and both argue about. Given a precondition, when an event happens, then an observable thing must be true. Three clauses, one specific behaviour.

RCF uses Given/When/Then for every acceptance criterion. The AC-as-contract page explains how to write verifiable criteria using that syntax.

BDD exposes a failure mode: developers can write Gherkin scenarios after implementation to match existing code, then obtain superficial approval. The tests pass without establishing the intended behaviour. RCF’s theatre-risk page describes four safeguards: content standards, AI-assisted extraction, recorded gaps and approval commits. RCF inherits BDD’s syntax and adds these checks.

Domain-driven design: domain language as a first-class axis

Eric Evans’ 2003 book Domain-Driven Design defines ubiquitous language: consistent domain vocabulary in code, documents, tests and conversations. RCF adopts this connection between language and the model.

RCF inherits that posture twice. Once in the AC ID itself, which is opaque, load-bearing, and the same string in the requirement, the test runner, and the code annotation. There’s no translation layer; the ID is the lookup key. And again in requirement attributes. Every requirement carries a domain tag alongside its functional, non-functional, or regulatory classification. Requirements partition by domain, not just by function. That’s DDD thinking applied at the methodology layer rather than the code layer.

Continuous delivery: every stage commits

Jez Humble and Dave Farley’s 2010 book established the deployment pipeline as an engineering practice. Every commit passes through the same build, test and deployment process toward production readiness. The pipeline itself is code and provides repeatable evidence.

RCF inherits the commit as a verifiable unit of work. Farley’s later work reinforces this principle. RCF’s five-stage build cycle requires a commit at Define, Build, Review, Test and Finalise. Each stage is recorded before the next starts, applying continuous delivery’s commit discipline to the build process.

Spec-driven development: the spec as a primary artefact

SDD is the most recent contributor. Martin Fowler’s site covers it. GitHub publishes Spec Kit, AWS provides Kiro and Tessl treats specifications as source artefacts with regenerable code. SDD emerged in 2025 to address AI-generated code that diverges from intent.

SDD gives agents a written specification as a stable target. Tooling can validate, regenerate and trace from it. RCF inherits this use of machine-readable intent.

An SDD specification may be YAML, a structured prompt or a configuration document. These provide agent inputs but do not by themselves state the business need and its reasons. RCF derives specifications from requirements. The two approaches operate at adjacent layers. Read RCF and spec-driven development for the comparison.

How the pieces fit together

Each approach contributes a distinct practice. Waterfall supplies documents, RDD supplies traceability, agile allows change, XP gives customers ownership of acceptance tests, BDD supplies their readable syntax, DDD keeps vocabulary consistent, continuous delivery makes commits verifiable and SDD gives agents a specification to build from.

RCF combines these practices with traceability in the data model. Requirements, stories, ACs, FBSs, suites and cases have opaque IDs. Code Nodes name implementing files or symbols and link them to ACs. Validation catches broken source references. Forward tracing connects business decisions to tests; backward tracing connects code to requirements. These checked relationships expose agent decisions that lack an agreed basis.

RCF is one current combination of these practices. Later methodologies may inherit from it. The purpose of this record is to identify where each practice originated.

Contributions at a glance

Contributor What it contributed Where RCF carries it
Waterfall Document chain. Audit trail. Out-of-scope named as deliberately as in-scope. PRD and requirements as the apex of the chain. The chain is auditable by construction.
Requirements-driven development Requirements drive the build. End-to-end traceability as an auditable discipline, the matrix linking every artefact back and forward. Traceability as a property of the data model. Requirements at the apex, coverage provable rather than asserted.
Agile Feedback. Iteration. The spec is allowed to move. The chain is a living spec. The gap between docs and code becomes the next build cycle.
Extreme programming (with TDD) Engineering discipline. Tests first, in code. Customer-owned acceptance tests. Test suite layer below the AC. The AC is the customer’s artefact, not the developer’s.
Behaviour-driven development Given/When/Then as the syntax for acceptance work. Every RCF acceptance criterion is a Given/When/Then.
Domain-driven design Ubiquitous language. Domain as a first-class axis. Opaque IDs that don’t translate at any boundary. Domain tags on requirements.
Continuous delivery The commit is the unit of truth. The pipeline provides verification. Per-stage commit discipline in the build cycle. Each stage records completion before the next begins.
Spec-driven development The spec as a primary artefact for AI agents to build from. The chain is machine-readable by design. Requirements sit above the spec; the spec is downstream.
RCF Pinning the contributions above into one chain, with traceability as a property of the data model. The combined RCF document chain and build cycle.

Where to go next