はじめに
スマートコンテンツ事業部、開発担当の玉置です。
ソフトウェア開発において「Why(なぜそれが必要か)」を理解することの重要性が広く語られてきました。AI駆動の要件定義においても、AIはエスパーではないため、この原則は重要だと考えています。
今回、AI駆動の要件定義において、同一の要求に対してWhyの情報を意図的に省いて設計と計画を進め、その結果を比較することで、あらためてWhyの定義と、AIにコンテキストを伝えることの重要性を確認してみました。
実験概要
同一要求で「Whyなし」「Whyあり」の2パターンの要求文書を作成し、それぞれをもとにAIで以下の成果物を生成しました。
- 要求文書から、要件定義書を生成
- 要件定義書から、設計文書を生成
- 設計文書から、タスク計画を生成
コーディングフェーズは省略し、上流工程での品質差に焦点を当てています。
要求内容
総務部から、社内FAQ検索システム開発の要求を想定しました。
Whyなしの要求文書、Whatが中心の要望になっています。
機能要求事項: - FAQを登録する機能がほしい(質問・回答・カテゴリ・タグ設定) - FAQを検索する機能がほしい(キーワード・カテゴリ・タグ絞り込み) - FAQを表示する機能がほしい(検索結果・閲覧数・評価表示) - 管理機能がほしい(編集・バージョン管理・承認ワークフロー・権限設定)
Whyありの要求文書、こちらは隠れた課題内容を追加しました。
隠れた課題: 「新入社員が同じ質問を何度も先輩に聞いてくる。 『経費精算どうやるの?』『有給申請のやり方は?』など。 先輩社員の時間が奪われている」 本当の目的: 1. 新入社員が自力で答えを見つけられるようにしたい 2. 同じ質問を何度も答える手間を減らしたい
実験結果
生成されたユーザーストーリーの比較
生成されたユーザーストーリーを比較すると、早速、具体的なペルソナ(新入社員)と具体的な課題(先輩の時間を取らない)が明示されているかどうかで差異が生まれました。
この時点で、後続の設計に影響を与えそうな兆候が見て取れます。
Whyなしの場合:
社員として 私は 業務上の疑問や問題を素早く解決するために キーワードやカテゴリでFAQを検索したい そうすることで 問い合わせ時間を削減し、業務効率を向上させることができる
Whyありの場合:
新入社員として 私は 社内手続きに関する疑問を迅速に解決したい そうすることで 先輩社員の時間を取らずに業務を進められる
生成された機能要件の比較
次に機能要件の比較です。
| 項目 | Whyなし | Whyあり |
|---|---|---|
| 通常要件 | 7項目 | 5項目 |
| 条件付き要件 | 7項目 | 5項目 |
| 制約要件 | 4項目 | 4項目 |
要件数で内容の良し悪しは測れませんが、Whyなしの方はユースケースが絞られていない分、多くの機能要件を定義している印象です。
これは、実際に使われることのない無駄な機能開発をしてしまうパターンにつながりそうですね。
また、Whyなしの方にのみ、「関連するFAQの候補を提示しなければならない」という要件がありました。
これは新入社員が「何を検索すればよいかわからない」という状況を考慮した結果なんでしょうか。
生成された設計文書の比較
基本的なアーキテクチャパターンに大きな差異はありませんでした。
今回の例においては、Whyの有無がアーキテクチャが大きく変わるほどの影響はなかったようです。
設計されたAPIやデータモデルの数などは、機能要件数の差に応じて、差が生まれています。
これは後続のタスク計画にもダイレクトに影響し、Whyなしの見積もり工数が大きくなっています。
ユーザー部門は、ここまで大きなシステムの開発を想定していたでしょうか。
生成されたタスク計画の比較
個別のタスクをみていくと、受け入れ条件の具体性に明確な差がありました。
Whyありのほうでは、ユーザーストーリーにそった明確な受け入れ条件が定義されています。
これは最終的な成果物の品質に大きく影響してきそうですね。
おわりに
今回、Whyありの要件定義においても、まだ定義が十分ではないところもあり、どちらが正解か判断するには材料不足な面もありました。
しかし、Whyを追求することが、AI駆動の要件定義においても重要な要素であることは、あらためて確認できたと思います。
要件定義や設計を実行する AI Agent には、あらかじめ「5Whys」などWhyを追求する指示を与えておくのも、有効な方法かもしれません。
この記事は「エムティーアイ Blog Summer 2025」の 8/19 分の記事です。