Spec-driven development
Spec-driven development (SDD) is a software engineering methodology where a formal, machine-readable specification serves as the authoritative source of truth[1] and the primary artifact from which implementation, testing, and documentation are derived.[2][3] Unlike traditional development where documentation is often retrospective, SDD mandates that system intent be explicitly defined in a structured format—such as OpenAPI or Markdown—before implementation begins.[4] In the context of AI-assisted engineering, SDD serves as a rigorous framework that transforms specifications into executable blueprints for coding agents, preventing the inconsistencies associated with ad-hoc "vibe coding".[5]
History
[edit]The roots of SDD trace back to 1960s NASA workflows and early formal methods that prioritized logic verification before coding. The methodology was academically formalized in 2004 as a synergy between test-driven development (TDD) and design by contract (DbC), before seeing a 2020s renaissance driven by LLM-powered agentic workflows.[6]
Core concepts
[edit]Modern SDD typically follows a four-phase lifecycle:
- Specify (defining functional requirements),
- Plan (translating intent into technical architecture),
- Task (decomposing the plan into atomic units), and
- Implement (automated code generation and human validation).[7]
Proponents argue this approach represents a shift toward architecture as an executable control plane, where implementation code is treated as a transient byproduct of the maintained specification—a concept sometimes referred to as "spec-as-source".[8]
Comparison with other methodologies
[edit]While complementary, SDD is often distinguished from similar practices by its focus on high-level intent:
- Test-driven development (TDD): Focuses on correctness at the implementation level; SDD uses the specification to generate initial tests.[9]
- Behaviour-driven development (BDD): Focuses on user-facing scenarios; SDD provides the structural and architectural invariants that BDD scenarios must satisfy.[10]
See also
[edit]References
[edit]- ^ Böckeler, Birgitta. "Understanding Spec-Driven-Development: Kiro, spec-kit, and Tessl". MartinFowler.
- ^ "Spec Driven Development: When Architecture Becomes Executable". InfoQ. 2026-01-12.
- ^ "Spec-Driven Development Explained". Nitor Infotech.
- ^ "Spec-Driven Development with AI". GitHub Blog. 2025-01-10.
- ^ "Spec-Driven Development Guide". Scalable Path. 2025-11-10.
- ^ Ostroff, J.S.; Makalsky, D.; Paige, R.F. (2004). "Agile Specification-Driven Development". Lecture Notes in Computer Science.
{{cite book}}: Missing or empty|title=(help) - ^ "Inside Spec-Driven Development: What GitHub Spec Kit Makes Possible". EPAM Insights.
- ^ "Tessl launches spec-driven framework". Tessl.io. 2025-09-23.
- ^ "Beyond TDD: Why Spec-Driven Development is the Next Step". Kinde.
- ^ "SDD vs TDD vs BDD in plain words". Beam.ai.