Spec-driven development

From HandWiki

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

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

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

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

References

  1. Böckeler, Birgitta. "Understanding Spec-Driven-Development: Kiro, spec-kit, and Tessl". https://martinfowler.com/articles/exploring-gen-ai/sdd-3-tools.html. 
  2. "Spec Driven Development: When Architecture Becomes Executable". 2026-01-12. https://www.infoq.com/articles/spec-driven-development/. 
  3. "Spec-Driven Development Explained". https://www.nitorinfotech.com/blog/spec-driven-development-explained/. 
  4. "Spec-Driven Development with AI". 2025-01-10. https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/. 
  5. "Spec-Driven Development Guide". 2025-11-10. https://www.scalablepath.com/machine-learning/spec-driven-development-guide. 
  6. Ostroff, J.S.; Makalsky, D.; Paige, R.F. (2004). "Agile Specification-Driven Development". Lecture Notes in Computer Science. https://www.researchgate.net/publication/221592745. 
  7. "Inside Spec-Driven Development: What GitHub Spec Kit Makes Possible". https://www.epam.com/insights/ai/blogs/inside-spec-driven-development-what-githubspec-kit-makes-possible-for-ai-engineering. 
  8. "Tessl launches spec-driven framework". 2025-09-23. https://tessl.io/blog/tessl-launches-spec-driven-framework-and-registry/. 
  9. "Beyond TDD: Why Spec-Driven Development is the Next Step". https://kinde.com/learn/ai-for-software-engineering/best-practice/beyond-tdd-why-spec-driven-development-is-the-next-step/. 
  10. "SDD vs TDD vs BDD in plain words". https://beam.ai/agentic-insights/spec-driven-development-build-what-you-mean-not-what-you-guess.