Spec-Driven Development
Definition
Spec-Driven Development (SDD) is an umbrella term for methodologies that define specifications before implementation. The core inversion: instead of code serving as the source of documentation, the spec becomes the authority that code must fulfill.
SDD emerged as a response to documentation decay in software projects. Traditional approaches treated specs as planning artifacts that diverged from reality post-implementation. Modern SDD treats specs as living documents co-located with code.
Contrast: For the anti-pattern SDD addresses, see Vibe Coding.
Key Characteristics
Living Documentation
Specs are not “fire and forget” planning artifacts. They reside in the repository alongside code and evolve with every change to the feature. This addresses the classic problem of documentation decay.
Iterative Refinement
Kent Beck critiques SDD implementations that assume “you aren’t going to learn anything during implementation.” This is a valid concern—specs must evolve during implementation, not block it. The spec captures learnings so future sessions can act on them.
Determinism Over Vibes
Nick Tune argues that orchestration logic should be “mechanical based on simple rules” (code) rather than probabilistic (LLMs). Specs define the rigid boundaries; code enforces the workflow; LLMs handle only the implementation tasks where flexibility is required.
Visual Designs Are Not Specs
[!WARNING] The Figma Trap A beautiful mockup is not a specification; it is a suggestion. Mockups typically demonstrate the “happy path” but hide the edge cases, error states, and data consistency rules where production bugs live.
Never treat a visual design as a complete technical requirement.
ASDLC Usage
ASDLC implements Spec-Driven Development through:
- The Specs Pattern — The structural blueprint defining what a spec contains (Blueprint + Contract) and how it relates to PBIs
- Living Specs Practice — How to create, maintain, and evolve specs alongside code
- The Learning Loop — The iterative cycle that addresses Beck’s critique
- Workflow as Code — Deterministic orchestration that enforces spec contracts programmatically
See also:
- Vibe Coding — The anti-pattern SDD addresses
- Context Engineering — Structuring specs for agent consumption
References
- (2026).
Martin Fowler Fragment: January 8, 2026
.
Accessed January 9, 2026.
Commentary on Anthropic research and Kent Beck's critique of spec-driven approaches.
- (2026).
Kent Beck on Spec-Driven Development
.
Accessed January 9, 2026.
Critique emphasizing that specifications must accommodate learning during implementation.
- (2026).
Dev Workflows as Code
.
Accessed January 18, 2026.
Validates the core thesis: use real code for deterministic logic and LLMs only for tasks requiring intelligence.