仕様駆動開発(Specification-Driven Development / SDD)¶
概要¶
ソフトウェア開発の初期段階で仕様(Spec)を明確かつ構造的に記述し、その仕様を軸に設計・実装・テスト・ドキュメント化までを一貫して行う開発手法。
仕様を「信頼できる単一の情報源(source of truth)」として位置づけ、コードを生成・検証していくアプローチ。
注目される背景¶
「仕様書を先に書いて開発する」考え方自体は以前からあったが、2025年頃から急速に注目が集まった。
- 2025年7月: AWSが開発環境「Kiro」を発表し、SDD の考え方を広めた
- 2025年9月: GitHubがオープンソースの「Spec Kit」を公開
Vibe Coding(雰囲気コーディング)の自由度を活かしつつ、コード生成の精度と透明性を補強する手法として位置づけられている。
核心的な考え方¶
従来の開発では実装された コード が絶対的な基準だったが、SDDでは人間の 意図(intent)を明文化した仕様 を唯一の基準とする。
開発フェーズ¶
| フェーズ | 内容 |
|---|---|
| Specify(仕様策定) | 要件を洗い出し、What / Why / How を整理 |
| Plan(計画立案) | システム設計と実装計画 |
| Tasks(タスク分解) | タスク一覧の作成と優先度設定 |
| Review(レビュー) | 仕様と実装の照合、フィードバック反映 |
仕様の構成¶
- 仕様定義書: 何を作るか / なぜ作るか / どんな制約か
- 技術設計書: アーキテクチャ・技術選定
- 実装計画書: タスク分解・優先度・依存関係
関連手法との比較¶
| 手法 | 先に書くもの | AIとの連携 | 対象フェーズ |
|---|---|---|---|
| SDD | 仕様書 | 全フェーズで前提 | 要件定義〜検証 |
| TDD | テストコード | 限定的 | 実装フェーズ |
| BDD | 振る舞い仕様 | 限定的 | 実装フェーズ |
| MDD | UMLモデル | 限定的 | 設計〜実装 |
メリット¶
- 仕様が全工程の「単一の信頼できる情報源」→ 設計・実装・テストの食い違い減少
- 初期段階で関係者の認識合わせが容易 → 後工程の大幅修正を防止
- 仕様からコード・テスト・APIドキュメントを自動生成 → 生産性・保守性向上
課題・注意点¶
- 小規模開発では仕様作成がオーバーヘッドになりうる
- 仕様の粒度調整が重要(細かすぎ→保守困難、粗すぎ→判断に迷う)
- 仕様は「書いて終わり」ではなく継続的な更新が必要
代表的なツール¶
- Spec Kit(GitHub製): Markdown形式で仕様管理
- Kiro(AWS): AI IDEとしてSDDワークフローを統合サポート
- cc-sdd: Claude Code / Cursor連携の仕様駆動開発ツール