COLUMN
コラム
2026年06月24日
スペック駆動開発(SDD)入門 — Vibe Codingの次へ進むチーム開発の新常識2026
はじめに:AI開発チームが直面する「壁」
「AIを使えばコードが早く書ける。でも、プロジェクトが大きくなると品質が安定しない」——そんな壁にぶつかったとき、注目されているのがスペック駆動開発(Spec-Driven Development / SDD)です。
こんな悩みを持つエンジニアやテックリードが急増しています。ChatGPT、Claude Code、Cursorを使いこなし、個人レベルでは生産性が上がった。けれど、チームに展開するとバラバラな結果になる。AIへの指示の仕方が人によって違い、出てくるコードの品質も一定しない——
この問題の根本にあるのが、「Vibe Coding(バイブコーディング)」の限界です。
2025年に「Vibe Coding」という言葉を生み出したAndrej Karpathy自身が、2026年初頭にこう認めました。「Vibe Codingの時代は終わりつつある。私たちはエージェニック・エンジニアリングの時代に入った」
その次のステージが、スペック駆動開発(Spec-Driven Development / SDD)です。
この記事では、SDDが「なぜ必要か」を数値で示し、チームで実際に導入するための実践ステップを解説します。
なぜVibe Codingはチーム開発で限界を迎えるのか
「Vibe Coding」とは、AIに対して自然言語で「なんとなく」指示を出し、生成されたコードをパッチワークのように組み合わせていく開発スタイルです。
短期的なスピードは出ます。ある研究では、Vibe CodingによってAIなしと比べて55%速くタスクを完了できるというデータもあります。プロトタイプやMVPの立ち上げには確かに有効です。
しかし、プロジェクトが数ヶ月規模になると、深刻な問題が表面化します。
GitClearによる2億1,100万行のコードを分析した研究では、AIコーディングツールの普及に伴い、2021年から2024年にかけてリファクタリング活動が60%減少し、コピーペーストの事例が48%増加したことが明らかになりました。
CMUの研究では、AIツール採用後にコードの複雑さが約41%増加し、静的解析の警告が30%増加したと報告されています。
Vibe Codingプロジェクトが辿る典型的な劣化曲線はこうです:
- 1〜3ヶ月目:高速な機能開発。チームは手応えを感じる
- 4〜9ヶ月目:統合時の問題が浮上。AIが生成したコードの整合性が崩れ始める
- 10〜15ヶ月目:デバッグが主要業務になる。誰も全体像を把握できていない
- 16〜18ヶ月目:開発が実質的に停滞。システム全体の再構築を迫られる
特にチーム開発で問題なのは、「AIへの指示の仕方」が人によって違いすぎることです。Aさんは詳細な要件を伝え、Bさんはふわっとした指示でコードを生成する。同じプロジェクト内で、まったく異なるアーキテクチャ判断が混在してしまいます。
スペック駆動開発(SDD)とは何か
SDDの核心は非常にシンプルです。
「コードではなく仕様(Spec)がSource of Truthである」
人間が仕様書(Spec)を書き、AIエージェントがその仕様に基づいて実装する。Specが変わらない限り、実装は何度でも生成し直せる。AIが「どう実装するか」を決める前に、人間が「何を作るか」を明確にする——これがSDDの本質です。
Vibe CodingとSDDの比較
- 速度(短期):Vibe Coding ◎ 55%速い / SDD △ 仕様書作成のオーバーヘッドあり
- スケーラビリティ:Vibe Coding ✗ 16〜18ヶ月で停滞 / SDD ◎ 長期プロジェクトに強い
- チーム連携:Vibe Coding ✗ AIへの指示がバラバラ / SDD ◎ Specが共通言語になる
- AI指示の精度:Vibe Coding ✗ 曖昧なプロンプト依存 / SDD ◎ EARS記法で明確化
- 向いている規模:Vibe Coding 個人・3ヶ月以内の短期 / SDD チーム・3ヶ月以上の中長期
EARS記法とは「Easy Approach to Requirements Syntax」の略で、要件を「〈条件〉のとき、システムは〈動作〉すべき」という明確なEvent→Action形式で記述する方法です。
悪い例:「ログイン機能を作って」
EARS記法の例:「ユーザーが正しいメールアドレスとパスワードを入力したとき、システムはJWTトークンを発行し、ダッシュボードにリダイレクトすべき」
AIへの指示がこれだけ明確になれば、生成されるコードの品質と一貫性は劇的に改善します。
チームでSDDを導入する6ステップ
SDDの標準ワークフローは6つのフェーズで構成されます。ここでは、日本語対応・無料のOSSツール「cc-sdd」とClaude Codeを使った実践手順を解説します。
cc-sddはClaude Code、Cursor、Gemini CLIなど8つのAIコーディングエージェントに対応しており、以下のコマンド一発で導入できます:
npx cc-sdd@latest --claude --lang ja
ステップ1:Steering(プロジェクトコンテキストの確立)
最初に、AIにプロジェクト全体の文脈を理解させます。既存コードベースを分析し、「このプロジェクトはどんなものか」「どんな制約があるか」を整理した steering.md を生成します。これにより、以後のすべての仕様書がプロジェクトの前提に沿って作られます。
チームへの適用ポイント:Steeringドキュメントはチーム全員で確認・承認する。AIへの「共通の前提」として機能させる。
ステップ2:Requirements(要件定義)
EARS記法を使って、実装する機能の要件を明確に記述します。例えばユーザー認証機能であれば、「ユーザーが有効なメールとパスワードを送信したとき、JWTを発行すること」「ログイン失敗が5回連続したとき、アカウントを30分ロックすること」といった形式で要件を定義します。
チームへの適用ポイント:要件は必ずPRレビューの前に確認する。「実装前レビュー」を習慣化する。
ステップ3:Design(技術設計)
要件を満たすための技術アプローチを文書化します。使用するライブラリ、データ構造、APIの設計などをDesignドキュメントに記述します。このフェーズでAIがリサーチログを生成することもあります。「なぜこの設計を選んだか」という意図も記録されるため、後から参照できる知識資産になります。
チームへの適用ポイント:Designドキュメントへのアーキテクチャ上の判断を明記する。「なぜそうしたか」が将来の自分やチームへの手紙になる。
ステップ4:Tasks(タスク分解)
実装作業をP0(最優先)・P1(優先)の粒度でチェックリスト化します。「1 spec = 1 PR」の粒度を守ることが重要です。
- [P0] JWTトークン生成ロジックの実装
- [P0] ログイン失敗カウンターのRedis実装
- [P1] アカウントロック解除のスケジューラー
- [P1] ロック通知メールのテンプレート作成
チームへの適用ポイント:タスクリストをGitHub Issueと連動させると、進捗管理がシームレスになる。
ステップ5:Implementation(実装)
Tasksチェックリストに従い、AIエージェントがインクリメンタルに実装を進めます。ここで重要なのは、「計画が承認されるまでコードを変更しない」というルールです。ステップ1〜4で人間が仕様・設計・タスクリストを確認・承認してから、初めてAIが実装を開始します。
チームへの適用ポイント:コードレビューの前に「Specレビュー」を実施する。実装が仕様から逸脱していないかを確認するレビュー観点を持つ。
ステップ6:Maintenance(仕様書の維持)
Specを「完成したら終わり」のドキュメントではなく、コードと並走する「生きたドキュメント」として維持します。新機能追加や仕様変更があったときは、コードの前にSpecを更新する習慣をチームに根付かせます。
チームにSDDを導入するときの落とし穴と対策
SDDは強力な手法ですが、導入時によくある失敗パターンがあります。
落とし穴①:「小さな修正にも仕様書を書く」オーバーヘッド
誤った適用例:バグ修正やスタイル変更にまで仕様書を作ろうとする。
対策:SDDが効果を発揮するのは「1機能単位」の開発です。小さなバグ修正は通常の対応で問題ありません。「1 spec = 1 PR」のルールを守り、適用範囲を明確にしましょう。
落とし穴②:仕様書とコードの乖離(Documentation Drift)
実装が進むにつれてSpecが更新されなくなり、コードと仕様書が別々に進化してしまう問題です。
対策:PRレビュー時に「対応するSpecが更新されているか」をチェックリストに加える。Specの更新がないPRはマージしない、というルールを設けることが効果的です。
落とし穴③:過剰な仕様化による「分析麻痺」
Specを完璧にしようとするあまり、実装が始まらない状態になる問題です。
対策:ハイブリッドアプローチを採用しましょう。探索フェーズ(新しい技術・アーキテクチャの検証)はVibe Codingで素早く試し、本格実装フェーズでSDDに移行します。Vibe CodingとSDDは対立する概念ではなく、「速く探索し、確実に実装する」ための補完関係です。
落とし穴④:チームの習慣変容の難しさ
Vibe Codingに慣れたチームメンバーが「仕様を先に書く」という習慣を身につけるには時間がかかります。
対策:まず1人の「SDDチャンピオン」が1機能で先行導入し、効果を数値で示す。AWS Kiroの実績では、40時間相当の機能開発が8時間未満で完了した事例があります。小さな成功事例がチームの習慣を変えます。
2026年のSDDツール選び
- cc-sdd(難易度★ 簡単):日本語対応・無料OSSツール。Claude Code/Cursorなど8エージェント対応。今すぐ試したいチームに最適
- AWS Kiro(難易度★★ 中程度):AWSとの統合。顧客事例で40時間相当の機能を8時間未満で実現。AWSエコシステムを使うチームに
- GitHub Spec Kit(難易度★★★ 重め):GitHub公式。中・大規模プロジェクトに対応。「再生成」サイクルが桁違いに少ない。GitHubを中心に使うチームに
- Claude Codeカスタムコマンド(難易度★ 簡単):標準機能で実装可能。新ツール不要。移行コストを最小化したいClaude Code利用チームに
まずcc-sddで始めるのがおすすめです。npx cc-sdd@latest --claude --lang ja の一コマンドで日本語環境のSDDワークフローが整います。Claude CodeまたはCursorで即日試せます。慣れてきたらGitHub Spec KitやAWS Kiroへの移行も検討してみてください。
まとめ
スペック駆動開発(SDD)は、Vibe Codingの「速いが長続きしない」という限界を克服するための次世代開発手法です。
- Vibe Codingは短期・個人開発には有効だが、チーム・中長期では品質が劣化する(GitClear、CMU研究より)
- SDDは「コードより先に仕様を書く」ことで、AIへの指示を明確化し品質を安定させる
- 6ステップのワークフロー(ステアリング → 要件定義 → 技術設計 → タスク分解 → 実装 → 維持管理)でチームでの運用が標準化できる
- cc-sdd を使えば今日から日本語環境でSDDを始められる
- Vibe CodingとSDDは対立ではなく補完関係。「速く探索し、確実に実装する」ために両方を使い分ける
AI駆動開発を個人の生産性ツールから、チームの競争優位に変えたいなら、SDDへの移行が最初の一歩です。
AI駆動開発セミナーの詳細・お申し込みはこちら。