
Category: Thought
SDD Might Be the Answer - Once We Agree What It Means.
Spec-driven development is gaining attention as developers look for a more reliable way to build software with AI. The idea makes sense: describe clearly what should be built before asking AI to build it. I’m on board - but until we agree on what a good specification actually looks like, SDD risks becoming another label everyone uses differently.
AI can produce software remarkably quickly. The slight problem is that “quickly” and “correctly” are not the same thing. Give an AI a vague request and it may confidently build something that looks impressive, works in a demo and quietly ignores half of what you actually needed. Spec-driven development, or SDD, offers a sensible response: decide and describe what should be built before asking AI to build it.
This is hardly a revolutionary concept. Planning before doing the work has generally been considered a decent idea, whether you are building software, a house or a suspiciously complicated piece of flat-pack furniture. What changes with AI is the importance of that plan. When software can be produced in minutes, the quality of the instructions becomes more important than the speed of typing. A good specification gives people and AI a shared understanding of the goal.
I’m supportive of SDD, but its critics have valid concerns. Specifications can become bloated, outdated or so detailed that writing them takes longer than solving the original problem. They can also create a false sense of certainty. A beautifully organised document is still useless if it describes the wrong product. SDD does not remove the need for judgement, testing or conversations between people. It simply moves more of the important thinking to the beginning - and hopefully keeps it alive throughout the project.
The bigger issue is that SDD currently means different things to different people. One team may write a short description of what users need. Another may produce a small library of documents, rules and checklists. Both call it SDD, while the AI tools supporting them introduce their own formats and processes. If every tool speaks a different language, specifications risk becoming yet another thing teams must translate, rewrite and maintain.
That is why the next step is not another shiny SDD tool. It is a practical, widely accepted standard: clear enough for people to read, structured enough for AI to follow and flexible enough for real projects. Reaching that standard will not be simple, and it should not be dictated by a single vendor. But if the development community can agree on the basics, SDD could become one of the most useful foundations for AI-powered software development. First, though, we may need a specification for the specifications 😉
Michal
