Back to Spec Kit

What is Spec-Driven Development?

docs/concepts/sdd.md

0.10.12.6 KB
Original Source

What is Spec-Driven Development?

Spec-Driven Development flips the script on traditional software development. For decades, code has been king — specifications were just scaffolding we built and discarded once the "real work" of coding began. Spec-Driven Development changes this: specifications become executable, directly generating working implementations rather than just guiding them.

Core Philosophy

Spec-Driven Development is a structured process that emphasizes:

  • Intent-driven development where specifications define the "what" before the "how"
  • Rich specification creation using guardrails and organizational principles
  • Multi-step refinement rather than one-shot code generation from prompts
  • Heavy reliance on advanced AI model capabilities for specification interpretation

Spec Kit does not prescribe how teams preserve or mutate spec.md, plan.md, and tasks.md after requirements change. See Spec Persistence Models for three common ways to manage those artifacts over time.

Development Phases

PhaseFocusKey Activities
0-to-1 Development ("Greenfield")Generate from scratch<ul><li>Start with high-level requirements</li><li>Generate specifications</li><li>Plan implementation steps</li><li>Build production-ready applications</li></ul>
Creative ExplorationParallel implementations<ul><li>Explore diverse solutions</li><li>Support multiple technology stacks & architectures</li><li>Experiment with UX patterns</li></ul>
Iterative Enhancement ("Brownfield")Brownfield modernization<ul><li>Add features iteratively</li><li>Modernize legacy systems</li><li>Adapt processes</li></ul>

Experimental Goals

Our research and experimentation focus on:

Technology Independence

  • Create applications using diverse technology stacks
  • Validate the hypothesis that Spec-Driven Development is a process not tied to specific technologies, programming languages, or frameworks

Enterprise Constraints

  • Demonstrate mission-critical application development
  • Incorporate organizational constraints (cloud providers, tech stacks, engineering practices)
  • Support enterprise design systems and compliance requirements

User-Centric Development

  • Build applications for different user cohorts and preferences
  • Support various development approaches (from vibe-coding to AI-native development)

Creative & Iterative Processes

  • Validate the concept of parallel implementation exploration
  • Provide robust iterative feature development workflows
  • Extend processes to handle upgrades and modernization tasks