AI駆動の要件定義と「Why」の重要性

はじめに

スマートコンテンツ事業部、開発担当の玉置です。

ソフトウェア開発において「Why(なぜそれが必要か)」を理解することの重要性が広く語られてきました。AI駆動の要件定義においても、AIはエスパーではないため、この原則は重要だと考えています。

今回、AI駆動の要件定義において、同一の要求に対してWhyの情報を意図的に省いて設計と計画を進め、その結果を比較することで、あらためてWhyの定義と、AIにコンテキストを伝えることの重要性を確認してみました。

実験概要

同一要求で「Whyなし」「Whyあり」の2パターンの要求文書を作成し、それぞれをもとにAIで以下の成果物を生成しました。

  1. 要求文書から、要件定義書を生成
  2. 要件定義書から、設計文書を生成
  3. 設計文書から、タスク計画を生成

コーディングフェーズは省略し、上流工程での品質差に焦点を当てています。

要求内容

総務部から、社内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 分の記事です。