ガイド

仕様駆動開発・Spec駆動開発・AI駆動開発

ソフトウェア開発の方法論は「テスト駆動(TDD)」「ドメイン駆動(DDD)」を経て、現在は「仕様駆動」「AI駆動」という新しいパラダイムに移行しつつあります。

仕様駆動開発(Specification-Driven Development)

仕様駆動開発(SDD)とは、実装より先に「仕様(Specification)」を定義し、その仕様を唯一の真実(Single Source of Truth)として開発を進める手法です。

仕様が先、実装が後: 機能の振る舞いを仕様書として先に定義する。実装はその仕様を満たすことが目的となる。仕様が変わらない限り、実装の詳細は問わない。
仕様 = 生きたドキュメント: 仕様書はコードと同期して管理される。OpenAPI(REST API仕様)やProtocol Buffers(gRPC)は、仕様と実装を密接に結びつけた仕様駆動の代表例。
仕様からテストを生成: 仕様書からテストケースを自動生成できる。仕様に基づくテストが通れば、仕様通りの動作が保証される。Consumer-Driven Contract Testing(Pact等)も関連する概念。

Spec駆動開発 — スキーマファーストアプローチ

Spec駆動開発はSDDの具体的な実践形態で、特に「スキーマ(型定義・インターフェース仕様)を最初に定義する」アプローチを指します。フロントエンド・バックエンド・モバイルが並行開発できる体制を作るために有効です。

OpenAPI(REST API)

APIの仕様をYAML/JSONで定義し、クライアントコード・サーバースタブ・テストを自動生成。SwaggerやRedocで可視化できる。

代表ツール: Swagger / Redoc / openapi-generator
GraphQL スキーマファースト

GraphQLスキーマを先に定義し、フロントとバックが同時に開発を進める。スキーマが変わるまでモックで開発できる。

代表ツール: Apollo / Pothos / graphql-codegen
Protocol Buffers(gRPC)

.protoファイルでサービスとメッセージを定義。複数言語のコードを自動生成する。マイクロサービス間通信で広く使われる。

代表ツール: protoc / gRPC / buf
JSON Schema / Zod

データ構造をスキーマで定義し、バリデーション・型生成・ドキュメント生成を一元化する。フロントとバックでスキーマを共有するモノレポ構成と相性が良い。

代表ツール: Zod / TypeBox / ajv

AI駆動開発(AI-Driven Development / AIDD)

AI駆動開発とは、生成AIを開発プロセスに組み込み、要件定義・設計・コーディング・テスト・レビューの各工程をAIが支援または自動化する開発スタイルです。2024年以降、急速に普及しています。

要件定義フェーズ
Before(従来)
インタビュー・議事録整理に数日
After(AI駆動)
ヒアリング内容を入力→AIが要件書・ユースケース・非機能要件を構造化生成
代表ツール: ArchitectAI / ChatGPT / Claude
アーキテクチャ設計フェーズ
Before(従来)
設計書・構成図作成に1〜2週間
After(AI駆動)
要件を入力→AIが3案比較・ADR・構成図・コスト試算を自動生成
代表ツール: ArchitectAI
コーディングフェーズ
Before(従来)
機能実装に多くの時間
After(AI駆動)
AIがコード生成・補完・レビュー・リファクタリング提案
代表ツール: GitHub Copilot / Cursor / Cline
テストフェーズ
Before(従来)
テストケース設計・実装に時間がかかる
After(AI駆動)
AIがテストケース生成・カバレッジ分析・バグ箇所特定を支援
代表ツール: GitHub Copilot / Devin / Claude

3つの開発スタイルの位置づけ

これらは対立するものではなく、組み合わせることでより効果を発揮します。

AI駆動開発
AIが設計書・コード・テストを生成する「手段」
↑ AIが生成する仕様・コードの品質を担保するために
Spec駆動開発
AIの出力を「スキーマ・仕様」で検証・制約する「品質保証の仕組み」
↑ 仕様の正しさを担保するために
仕様駆動開発
「何を作るか」を明確にする「思想・プロセス」の基盤

AI駆動開発の注意点

  • AIの出力は必ず人間がレビューする: AIは「もっともらしい誤り」を生成することがある。特にセキュリティ・非機能要件・境界条件はAIが見落としやすいため、専門家によるレビューが不可欠。
  • インプットの質がアウトプットの質を決める: 「ゴミを入れればゴミが出る(Garbage In, Garbage Out)」はAI時代も同じ。要件の整理・文脈の提供・制約の明示がAI活用の鍵。
  • 著作権・機密情報の取り扱い: 社内の機密要件をクラウドAIに入力することの法的リスクを事前に確認する。オンプレミス型AIや社内LLMの活用も検討する。
  • AIへの過度な依存を避ける: AIが生成したコード・設計の意図を理解せずに採用すると、障害時の原因特定や改善が困難になる。学習・理解しながら活用することが重要。

ArchitectAI はAI駆動開発の「アーキテクチャ設計フェーズ」を自動化するツールです

要件を入力するだけで、3案比較・ADR・設計書・構成図・コスト見積もりを自動生成します。

無料で始める(10クレジット)