コンテンツにスキップ

仕様駆動開発(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連携の仕様駆動開発ツール

参考URL