掲載済み (2025-11-15号)
#158 752文字 • 4分

## 仕様駆動開発(SDD)を採用したAI駆動開発の実態と課題

日本語

掲載情報

概要

https://zenn.dev/assign/articles/ab66b2843d9380

詳細内容

## 仕様駆動開発(SDD)を採用したAI駆動開発の実態と課題 https://zenn.dev/assign/articles/ab66b2843d9380 Assign社は、仕様駆動開発(SDD)に基づくAI駆動開発の具体的なワークフローを公開し、各フェーズでのAI活用、直面する課題、そしてその対策を詳細に解説します。 **Content Type**: Tutorial & Guide **Language**: ja **Scores**: Signal:4/5 | Depth:4/5 | Unique:4/5 | Practical:5/5 | Anti-Hype:4/5 **Main Journal**: 88/100 | **Annex Potential**: 85/100 | **Overall**: 84/100 **Topics**: [[AI駆動開発, 仕様駆動開発, 開発ワークフロー, コンテキスト管理, コードレビュー]] 記事は、Assign社が実践する仕様駆動開発(SDD)を取り入れたAI駆動開発の具体的なワークフローと、そこで得られた知見、課題、そして今後の改善策について深く掘り下げています。従来のVibe Codingのような手法ではAIのアウトプット精度にばらつきが生じやすく、手戻りが発生する問題があったため、同社は不確実性を減らし精度を高める目的でSDDを導入しました。開発フロー全体はmiroで視覚化され、文書の多さから生じる全体像把握の困難さや依存関係の複雑さを解消しています。 各開発フェーズにおけるAIの活用方法は以下の通りです。 * **要件定義フェーズ**: PRD(Product Requirements Document)やDesignDoc、モックがアウトプットされます。特にV0やLovableなどのツールを用いて10パターン以上の動くモックを生成することで、早期の価値検証と意思決定が可能になり、検証サイクルを大幅に短縮します。 * **設計フェーズ(バックエンド)**: PRD/DesignDocをインプットに、API設計書、DB設計書などが作成されます。API設計書は全工程で頻繁に参照されるため、その品質が後続工程に大きく影響することを強調しています。また、AIに実装の全体像を把握させるために「全体設計書」を導入し、コード品質の低下を防ぎます。 * **設計フェーズ(フロントエンド)**: FigmaのデザインとAPI設計書を基に、画面仕様書、全体設計書、分割方針書などが作成されます。AIに視覚的情報を正確に伝えるため、画面仕様書には具体的なUI要素の記述を徹底しています。実装量の肥大化を防ぐため、1スコープ1PRの粒度でスコープ別仕様設計書を作成します。 * **実装フェーズ(バックエンド・フロントエンド)**: 仕様駆動開発によって事前に作成された設計書をAIが参照し、自律的なコード生成とテスト実装を進めます。テスト駆動開発(TDD)を取り入れることで、AIによる高速なコード変更に伴う品質低下を防ぐための施策としています。フロントエンドではコンテキストウィンドウの圧迫が課題となるため、分割方針書に基づき1機能ごとの開発を複数ステップに分割しています。 * **PRフェーズ**: Jiraチケットからコンテキストを取得し、PRのdescriptionに自動追記することでレビュアーの理解を助けます。また、Claude Code GitHub Actionsを用いた一次レビューで、基本的なコーディング規則違反やセキュリティ上の問題を検出します。 同社が直面した主な課題とその対策は以下の二点です。 1. **作業スコープの肥大化**: 特にフロントエンドで、1スコープ1PRの単位で分割しても想定を超える実装量となり、コンテキスト圧迫やレビュー負荷の増大を招きます。原因は分割方針の曖昧さ。対策として「UIコンポーネントとロジックは別PR」「スタイリングの大規模変更は独立したPR」といった暗黙知の言語化を推進しています。 2. **実装者のセルフレビュー負荷**: AI生成コードの確認量と修正箇所が膨大になり、修正漏れが発生しやすいです。対策として、より具体的なコーディング規則の明記(何をすべきでないか)と、気づきがあればドキュメントにフィードバックを反映し継続的に改善する取り組みを行っています。 今後の改善策としては、暗黙知の言語化・コンテキスト追加、ドキュメントテンプレートの改善、コンテキストウィンドウ管理(Claude Codeのサブエージェント活用など)を挙げており、絶えず改善を重ねる姿勢を示しています。この記事は、AI駆動開発を導入・改善しようとするWebアプリケーションエンジニアにとって、実践的な指針となるでしょう。