Written on 2026-04-12 by Adam Drake - 7 min read

My Medium friends can read this story over on Medium.
Imagine Aladdin’s genie turned up at your door one day and granted you just one wish. You can wish for anything in the whole world, the only caveat being is you have to describe what you want right down to the last detail. If you don’t include it in your wish description then it won’t be included when the wish turns into reality.
What would you wish for?
It’s hard right. You soon realise the more you wish for the harder it is to adequately describe.
Let’s keep it simple. Let’s say you wished for an elephant. Well what size of elephant? What colour should it be? (I mean the exact colour all over). How big should its ears be? How long should its trunk be? Even with a ‘simple’ elephant there are many details to consider.
This is what I am realising about Spec Driven Development. In theory it sounds great, just like being granted a magical wish, but in reality its doesn’t work out quite how you would expect.
If you check out: https://github.com/github/spec-kit you can see the sales pitch:
I’ve seen the discourse online about Spec Driven Development. It seems to divide opinions pretty strongly. I’m definitely falling into the camp of “It sounds good on paper but in reality it’s a patchy approach at best”.
The lovers (usually not Software developers)
The skeptics (usually Software developers)
If you believe the hype then you write out a spec, point the AI to the repo and task board and then go away to the beach for the weekend and come back Monday morning and everything is done.
If you don’t believe the hype then you realise that software evolves over time, you can’t possibly write specs for all the scenarios and edge cases you will encounter in the wild and AI cannot be trusted for one task, let along a whole development cycle.
The biggest issue is you have to declare what you want up front before anything gets built. It’s remarkably difficult, if not impossible, to envision and specify what you’re going to create in the very beginning. Just like describing your magical wish.
The level of detail and the level of edge cases that the app will encounter in the real world is mind-boggling.
I’ve been spending the last three years working on a few production apps, and the state the apps are in now versus what was envisioned in the beginning is light years apart.
On top of that is also the product lifecycle. Most Software Developers aren’t working on greenfield projects. They are working on existing projects within teams with some kind of project manager or project owner.
Personally I’ve spent the last six months fixing a whole bunch of bugs and very small edge cases on existing apps. These have only become apparent as the app has been used more and more in the wild. Specifying everything up front is impossible.
The majority of my time in a week is taken up with small bug fixes and incremental improvements that no person on earth could have predicted in the initial specifications.
This really begs the question: Is Spec-driven development the way forward for Software Development?
Short answer — No.
Longer answer — It can be a useful approach in the right (very restrictive) circumstances and there are definitely some good practices to take from it.
I can theoretically understand the appeal of the Spec Driven Development approach. You write down clear instructions, you break it into small, digestible pieces, and then set to work. Whether thats you or AI is irrelevant. The point is everything is specced out so it’s crystal clear what needs to be done.
For a developer, that sounds really attractive. It’s a simple, straightforward approach. Everything is thought through and planned ahead of time before any implementation, which is usually a good thing in software and it allows one to take advantage of the benefits of AI.
However, having said that even with all the upfront work and guard rails in place there will still be things going wrong. Working in an existing codebase is never clean. AI may pick up bad habits from the existing code. Edge cases are likely to be missed. Changing one thing in one place could break some existing behaviour.
If used incrementally on small subsets of the codebase, then Spec Driven Development can be useful. I would even prefer it in some circumstances as it will force you to think things through carefully ahead of implementation time.
But it won’t solve everything. Even on small pieces of work things will be missed so as a developer you don’t want to come to rely on the spec. It will become a crutch and will limit you. As a developer you need to remain agile and alert.
As soon as I see anyone really pushing a development approach or practice, I always get suspicious. Anyone that is so hard-lined has probably not thought through the entire consequence of whatever they’re promoting.
Spec Driven Development is the same. It’s like anything, it certainly has it’s use cases, it brings some interesting ideas to the table and certain people will be more drawn to it than others.
I personally see it one more step towards completely sucking out the joy of coding. I don’t know one developer who is in the game so they can write more documentation. Don’t get me wrong, documentation is important but it’s not something someone jumps out of bed to write in the morning. Not any sane person anyway.
Is Spec Driven Development the future? I don’t personally think so. In anything more complex than a very simple CRUD app, holes start appearing in this approach and it ends up not being a very suitable tool for the job.
Enjoyed This Post?
If you found this blog post helpful, why not stay updated with my latest content? Subscribe to receive email notifications every time I publish.
If you're feeling really generous you can buy me a coffee. (Btw, I really like coffee…)
I live in the vibrant city of Prague, Czech Republic, with my family. My blog is more than just articles; it's a community of like-minded developers who share a love for innovation and learning.
I'm a passionate Frontend Developer specialising in React and TypeScript. My professional journey revolves around exploring and mastering new tools and libraries within the JavaScript ecosystem.

Adam Drake is a Frontend React Developer who is very passionate about the quality of the web. He lives with his wife and three children in Prague in the Czech Republic.
Adam Drakes Site © 2026