The JetBrains AI Pulse survey of 11,000 developers in January 2026 produced two numbers that sit oddly together. Ninety per cent use AI at work. Thirteen per cent use it across the entire software development lifecycle.
So AI has been adopted almost universally — as autocomplete. It suggests the next line, drafts a function, explains an unfamiliar file. What it mostly does not do is participate in how the software gets designed, built, tested and handed over.
The reason is straightforward once you have watched it happen. Coding agents will build whatever you describe, immediately, and keep building. Point one at a vague instruction and it produces a large volume of plausible code very quickly. Days later you discover it built something adjacent to what was needed. The generation was never the bottleneck. Knowing precisely what to generate is.
Spec-driven development is the practice that emerged to fix this, and in 2026 it has gone from a niche technique to something close to an industry default.
Spec-driven development (SDD) treats a structured specification — behaviour, architecture, edge cases, constraints — as the source of truth, and code as its generated output rather than the other way around. The canonical loop is four gated phases: Specify, Plan, Tasks, Implement, with a human checkpoint between each. The spec lives in version control alongside the code it produced.
The Tooling Consolidated Fast
This is not a proposal waiting for adoption. The ecosystem arrived in under a year:
| Tool | What it is | Best suited to |
|---|---|---|
| GitHub Spec Kit | Open-source CLI, MIT licensed. Past 93,000 GitHub stars by May 2026. Works with 30+ coding agents including Claude Code, Copilot and Gemini CLI. | Teams wanting a portable, agent-agnostic standard without changing IDE |
| Amazon Kiro | An agentic IDE built around the spec lifecycle — Constitution, Specify, Plan, Tasks, Implement, PR. Now GA with CLI support. | AWS-native teams wanting the workflow enforced by the environment |
| BMAD-METHOD | Open-source framework orchestrating 12+ specialised agents across the lifecycle. Around 46,700 stars. | Teams comfortable running multi-agent workflows |
| Claude Code Skills | Reusable commands that encode repeatable workflows — lightweight specs for common tasks, without a full toolkit setup. | Terminal-first teams wanting SDD principles with minimal ceremony |
| Cursor rules, Plan Mode | Plan-before-code built directly into the IDE, with project rules as persistent constraints. | IDE-first teams starting with the lightest possible commitment |
Martin Fowler has written about it. Thoughtworks published an analysis. GitHub's own framing when open-sourcing Spec Kit was that intent is now the source of truth and code is the last-mile output.
The Four-Phase Loop
Every serious SDD framework converges on the same structure, which is itself a useful signal:
The gates matter more than the phases. Each checkpoint is a place to catch a misunderstanding while it is still cheap — a paragraph to correct rather than a module to rewrite.
Writing Specs an Agent Can Actually Execute
Prose specifications fail because prose is ambiguous. EARS notation — Easy Approach to Requirements Syntax — constrains requirements into a small set of patterns that leave much less room for interpretation.
# Ubiquitous — always true shall # Event-driven When shall # State-driven While shall # Unwanted behaviour If thenshall # Optional feature Where shall
Compare that to "handle payment failures gracefully" — which is what most tickets actually say, and which an agent will interpret in one of about nine reasonable ways.
Could a competent engineer who has never spoken to you build the right thing from this document alone? If not, an agent cannot either — and it will not ask. A human would come back with questions. The agent proceeds confidently on its first interpretation, which is precisely why the written artefact has to carry what a conversation used to.
Is This Just Waterfall Again?
It is the obvious objection and it deserves a straight answer rather than a dismissal. The critique has been raised repeatedly — on Hacker News, in the Thoughtworks analysis, by plenty of engineers who lived through the original.
The surface resemblance is real. Write the requirements first. Design before building. Gates between phases. That is recognisably waterfall.
What changed is the cost of being wrong. Waterfall failed because specifications were expensive to produce and ruinous to revise — months of analysis, and by the time reality contradicted the document, the political cost of changing it exceeded the cost of shipping the wrong thing.
Rewriting a spec now takes an afternoon. Regenerating the implementation from the revised spec takes hours. When iteration is that cheap, the argument against specifying upfront mostly evaporates — you are not committing to a plan, you are writing down the current one somewhere an agent can read it.
SDD does become waterfall when teams treat the spec as a deliverable to be approved rather than a working artefact to be revised. If your specification requires three sign-offs to change, you have rebuilt the failure mode with better tooling. The spec should be as easy to amend as the code — same branch, same review, same day.
When to Use It, and When Not To
- · Prototypes and spikes you intend to throw away
- · One-off scripts and internal tooling
- · Testing whether an approach is viable at all
- · Work only you will ever touch
- · Anything where the goal is learning, not shipping
- · Anything more than one person will maintain
- · Multi-month projects with changing teams
- · Regulated domains needing an audit trail
- · Systems handling money, health or identity data
- · Anything you will hand over to someone else
The pattern most teams settle on is sequential rather than exclusive: vibe-code a spike to learn the shape of the problem, distil what you learned into a spec, then spec-drive the version that ships. The prototype was never wasted — it was the research phase.
The Part Nobody Writes About: Handover
Most SDD discussion frames the benefit as code quality. There is a second benefit that matters more in some situations and is rarely mentioned.
When an AI agent builds a system through unstructured prompting, the intent behind every decision lives in a chat transcript. Why is retry logic three attempts and not five? Why does this service own that table? The code shows what, never why.
Six months later — new engineer, or a client taking over a codebase an agency built — that context is simply gone. The code is readable and the reasoning is not. Changes get made nervously, or not at all.
A spec in version control is the artefact that survives. It records the decisions, the constraints, the edge cases that were considered and rejected. For anyone who builds software that someone else will own, the spec is not project overhead. It is the deliverable that makes the code usable after you leave.
We hand over full code ownership on every engagement, which makes this concrete rather than theoretical. A repository without specs is a repository a client's team cannot confidently modify — and a codebase you are afraid to change is a liability whatever its test coverage says. Specs and architecture decision records travel with the code, which is what makes "your IP, your code" mean something in practice.
Adopting It Without a Six-Week Rollout
Spec one feature you were going to ship anyway
Pick something small and real — not a pilot project invented to test the process. Spend thirty minutes writing the spec before touching the agent. Compare the outcome to how the last comparable feature went.
This weekWrite a constitution for the repository
Standing constraints that apply to everything: stack, conventions, what must never be changed without review, how errors are handled, what the test bar is. Every agent invocation inherits this instead of rediscovering it.
Week 1Put specs in the same pull request as the code
Reviewed together, merged together, versioned together. A spec in a wiki is stale within a fortnight. A spec in the PR that implements it stays accurate because it has to.
Week 2Adopt EARS for acceptance criteria only
Do not rewrite your whole process in formal notation. Constrain just the acceptance criteria — that is where ambiguity causes the most expensive rework, and it is a change your team can absorb in a day.
Week 2–3Measure rework, not velocity
SDD is slower to first output. It should be faster to correct output. If rework and post-merge defects are not falling after a month, something in your specs is not carrying the information the agent needs — and that is a fixable, specific problem.
OngoingExpand only where it earned its place
Some work genuinely does not need a spec. Forcing the process onto exploratory work produces ceremony without benefit, and ceremony is how good practices get abandoned. Let the teams that saw the gain pull it into more of their work.
OngoingFrequently Asked Questions
Building With AI Agents on Production Code?
We build production systems with AI-assisted engineering — specs, architecture decision records and full code ownership handed over at the end. Book a free 30-minute call. NDA first, no pitch deck.