Back to Blog
Spec-Driven DevelopmentAIProductivityspec-kit

Spec-Driven Development: How I 10x'd My Development Speed with AI

Josip Budalić

Founder & CEO

||8 min read

Look, I'll be honest with you. Six months ago, my workflow with AI coding assistants was a mess. I'd spend 20 minutes describing what I wanted, get back something that was... close but not quite right, then waste another hour going back and forth trying to fix it. Sound familiar?

Then I stumbled onto Spec-Driven Development, and it genuinely changed everything. I'm not exaggerating when I say my output probably increased 10x. Maybe more. The code quality went up too, which surprised me.

So what actually is Spec-Driven Development?

The basic idea is dead simple: you write down exactly what you want before you ask the AI to build it. Like, really write it down. Not a vague “build me a login page” but the actual details - what fields, what validation, what happens on error, the whole thing.

I know, I know. “But Josip, that sounds like more work!” That's what I thought too. Turns out, the 15 minutes you spend writing a proper spec saves you 2 hours of debugging and rewriting later. I learned this the hard way on a client project last year where I had to basically throw away a week's worth of AI-generated code because the foundation was wrong.

Here's what a proper SDD workflow typically looks like:

  • Constitution: The rules that never change. Tech stack, coding standards, stuff the AI should never violate.
  • Specification: What you're actually building. User stories, edge cases, the works.
  • Planning: How you're going to build it. Architecture decisions, data models, API contracts.
  • Tasks: Breaking it down into chunks the AI can actually handle without going off the rails.
  • Implementation: Finally, actual coding. But now with a clear path.

Why this actually works (from painful experience)

Let me tell you about the project that made me a convert. I was building a dashboard for a fintech client - nothing crazy, but lots of moving parts. Reports, user permissions, data visualization, the usual.

The first two weeks, I did it the “old way” - just chatting with the AI, iterating, fixing things as they came up. By day 10, the codebase was a disaster. Different naming conventions in different files. Three different ways of handling errors. Components that kind of worked but were impossible to modify without breaking something else.

Week three, I basically started over with SDD. Spent two days just writing specs. Felt like I was wasting time. But then something weird happened - the next three weeks of actual coding went smoother than any project I'd done before.

The “actually that's not what I meant” problem

This was my biggest issue before SDD. I'd describe something, the AI would build it, and then I'd realize I hadn't thought through some crucial detail. With a spec, you catch those gaps before writing any code. The spec forces you to be specific, and being specific is like 80% of the battle with AI tools.

No more “creative interpretation”

AI assistants love to add things you didn't ask for. Sometimes it's helpful. Often it's not. With a detailed spec, there's no room for the AI to decide that, actually, you probably want this additional feature you never mentioned. The spec is the contract.

Team projects become manageable

This one surprised me. When you have specs, you can actually split work between multiple developers (or multiple AI sessions) without everything turning into merge conflict hell. Everyone's working from the same source of truth. Revolutionary concept, I know.

The tools I actually use

After trying a bunch of different approaches (including just writing specs in plain markdown, which works but gets messy), I settled on two tools depending on the project size. Neither is perfect, but both have made my life significantly easier.

spec-kit - when you need the heavy artillery

GitHub's spec-kit is what I reach for on bigger projects - anything with multiple developers or where I know the client is going to change requirements three times (they always do).

It's... a lot. There's a learning curve, not gonna lie. The first time I set it up took me most of an afternoon. But once it's running, it's powerful. You get:

  • A proper multi-phase workflow - constitution, spec, plan, tasks, then implementation
  • Templates that keep things consistent (huge for teams)
  • A research phase - which sounds bureaucratic but actually saves you from picking the wrong library
  • Parallel task markers so you know what can be worked on simultaneously

My take: Overkill for small projects. Essential for enterprise stuff. If you've got 5+ developers or the project is going to last more than a couple months, just use it. The setup time pays for itself.

OpenSpec - for everything else

OpenSpec from Fission AI is what I use for smaller stuff. Side projects, MVPs, features I'm adding to existing codebases.

The appeal? It's lightweight. You can be up and running in like 10 minutes. No elaborate folder structures, no complex workflows. Just write a spec, follow a simple process, ship code.

  • Minimal setup - seriously, it's almost instant
  • Works great with existing codebases (this was a big one for me)
  • Flexible enough that you can adapt it to how you actually work
  • Perfect for “I just need to add this one feature” situations

My take: This is probably what most developers should start with. Learn the SDD mindset without drowning in process. You can always graduate to spec-kit later if you need more structure.

How I decide which one to use

Honestly, it's pretty straightforward. I ask myself a few questions:

Questionspec-kitOpenSpec
How many people are working on this?5 or moreSolo or small team
How long is this project?MonthsDays to weeks
Is there existing code?Usually new projectsOften existing codebases
Does the client need documentation?Yes, formal docsLight or informal
How much setup time do I have?A few hours is fineNeed to start now

A quick example so this isn't all abstract

Here's roughly what a spec looks like. This is simplified, but you get the idea:

# Feature: User Authentication

## What we're building
Basic auth - signup, login, password reset. Nothing fancy.

## User stories
- User signs up with email + password
- User logs in
- User can reset password via email

## The technical stuff
- JWT tokens, 24 hour expiry
- bcrypt for passwords, cost factor 12
- Rate limiting: 5 tries per minute per IP (learned this 
  one after a bot attack on a client site...)

## API endpoints
POST /api/auth/signup
  Request:  { email, password }
  Response: { user, token }
  Errors:   400 if email taken, 422 if password weak

POST /api/auth/login
  Request:  { email, password }  
  Response: { user, token }
  Errors:   401 if wrong creds, 429 if rate limited

## Database
User {
  id: uuid (pk)
  email: string (unique, indexed)
  password_hash: string
  created_at: timestamp
  updated_at: timestamp
}

## Notes
- Don't forget email verification (v2, not this sprint)
- Check if we need GDPR consent checkbox

That took me maybe 10 minutes to write. But now when I hand this to the AI (or another developer, or future me), there's no ambiguity. Everyone knows exactly what we're building.

If you take away one thing from this post

It's this: the quality of your AI output directly correlates with the quality of your input. Garbage in, garbage out. Detailed spec in, working code out.

I resisted SDD for months because it felt like overhead. Like I was slowing myself down with paperwork. But that “overhead” is actually front-loading the thinking that you'd have to do anyway - you're just doing it before the AI hallucinates a solution instead of after.

Start small. Next time you're about to ask an AI to build something, take 5-10 minutes to write out what you actually want first. Be specific. Include the edge cases. Note what you explicitly don't want.

If you're working on something bigger, grab OpenSpec and give it a real try. If you're on an enterprise team or a complex multi-developer project, spec-kit is worth the setup investment.

Either way, stop winging it with AI. Write specs. Your future self will thank you.

JB

Josip Budalić

Founder & CEO

Josip runs HOTFIX d.o.o., a dev shop based in Croatia. He's been writing code for over a decade and is slightly obsessed with finding ways to ship faster without sacrificing quality. When not arguing with AI assistants, he's probably hiking somewhere or consuming unhealthy amounts of coffee.

Working on something?

We use SDD on all our client projects. If you need help building something - or just want to chat about development workflows - drop us a line.