AI Coding Accelerates Tasks 21% But Inflates Reviews 91% and Bugs 9%
Vibe coding—prompting AI, accepting output without review—boosts individual task completion 21% per Faros AI telemetry from 10,000 developers. But it explodes pull request reviews 91%, raises bugs per developer 9%, and leaves experienced devs 19% slower overall (METR randomized trial). Developers perceive 20% speedup while producing unmaintainable code, as AI hallucinates without clear intent. SDD fixes this by making structured markdown specs the single source of truth: AI generates code to match, you verify diffs against it, collapsing iteration from months (waterfall) to minutes.
SDD Workflow: Clarify Ambiguity Upfront, Regenerate on Edits
Start with high-level spec covering features, constraints, edge cases (e.g., timeouts, errors). AI asks clarifications (data storage, user errors), you refine until zero ambiguity. AI outputs technical plan broken into tasks; approve, then implement/review per task with auto-generated tests from acceptance criteria. Tools enforce varying control: GitHub Spec Kit (92K stars, open-source, works with any agent like Claude/Copilot/Cursor) generates from init command; Amazon Kiro (full cloud IDE, GA Nov 2025) bakes specs into interface; Tessl ($125M funded, Sept 2025 launch) forbids code edits—update spec, regenerate all. Specs target literal-minded AI, not humans: precise enough for autonomous execution.
Spec Drift and Non-Determinism Limit SDD; 10x Slower on Straightforward Code
Colin Eberhardt's test: Spec Kit took 33 agent-minutes + 2500 spec lines for 689 code lines (3.5h human review); iterative prompting: 8 agent-minutes + 1000 code lines (24min review, zero bugs)—10x faster. Spec drift erodes value: code evolves, specs become fiction (unsolved; Tessl blocks edits, others discard specs). Non-determinism persists—same spec yields varying code from probabilistic models, like an "unreliable compiler." Not waterfall (agile iteration via cheap regenerations), but overhead kills it for small fixes, prototypes, solo projects, legacy code.
Use SDD for Complex/Compliant Work, Vibe Code for Exploration
SDD shines on greenfield projects, cross-surface migrations (capture intent pre-regen), compliance (auditable trail), ambiguity-heavy features (avoids debug days), long sessions (prevents agent forgetfulness). Avoid on bug fixes (sledgehammer for nut), uncharted prototypes (can't spec unknown code), weekend hacks (overhead > work). Experiment: GitHub Spec Kit + your agent. Core skill: precisely describe what code should do so machines build it—underestimated by most devs.