殿堂入り記事

ChatGPTに要件定義をお願いしたらハンパなかった

2023.03.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

架空の営業管理システムを作ってもらう前提で、ChatGPTに要件定義をお願いしてみました。

実験として軽く試すレベルで始めてみたのですが、予想を超えるクオリティでしたので、一部始終を皆様にもご紹介します。

ChatGPTとのやりとり

まず、ざっくりと必要な機能の洗い出しをお願いしてみました。

あっという間に必要な機能を網羅的にリストアップしてくれまた。私自身、SFA/CRMをいくつか触った経験がありますが、適切な内容だと思います。

中には、「データのインポート・エクスポート機能」のように、検討初期段階ではつい忘れそうな機能も含まれています。さらに頼んでもいないのにオススメの検討プロセスまで教えてくれました。気が利いてます。

機能ベースだと要件の妥当性が判断しにくく思ったので、画面ベースで要件定義してもらことにしました。

「図で教えて」とできないことをお願いしたところ、やんわり断りつつ、意図に沿った代替案をちゃんと示してくれました。「できませんで話を終わらせるな、代替案を示せ」と若い頃に上司から教わったのですが、そんなビジネスパーソンの基本姿勢がChatGPTにも標準装備されているようです。

ここからは徐々に、各画面の仕様を詳細化していきます。

まず、ログイン画面。

「エラーメッセージ表示エリア」や「他の認証方法へのリンク」など、つい忘れてしまいそうな機能もちゃんとリストアップしてくれました。

ログイン画面は要素が少ない画面なのでこのくらいにし、次のホーム画面(ダッシュボード)の仕様を聞いてみました。

営業管理システムとして過不足のない適切なダッシュボードだと思いました。あと、ナビゲーションメニューの構造まで定義してくれています。GPT4になってから、言ってないことまで気を回して回答してくれることが増えた気がします。

デザインに関するアドバイスをちょこちょこくれるので、デザイン面でのポイントも聞いてみました。

UIデザイナーがダッシュボードをデザインするとき、これだけ明確に方針を回答できるでしょうか。まだ表現はテキストですが、使い物になる画面イメージをそのまま主力してくれる日が近いと思いました。

デザインの話は一旦置いておき、要件定義としてはまだ解像度が粗いように思ったので、ダッシュボードの中の「重要な案件・商談一覧」をピックアップし、仕様をより詳細化してみます。

さらに仕様の解像度があがりました。内容も法人営業の専門家ならではの発想が含まれています。ある特定の業界・業種・職種ならではのドメイン知識はエンジニアやデザイナーではすぐには獲得しにくいものですが、あくまで一般論的なものとはいえ、ChatGPTがちゃんと補完してくれています。

「ホーム画面(ダッシュボード)」はこのくらいにして、次の「顧客管理画面」の要件定義に移ります。

ここは表でお願いしたのですが、答えてくれました。このままDB設計もChatGPTに依頼できそうです。

ChatGPTは返信の情報量が多いと止まってしまいます。そんな時は「続けてください」みたいなことを書くと、続きを表示してくれます。

「顧客管理画面」で表示させる情報の定義がある程度できたので、それらを表示・操作するためのUI要素の洗い出しをお願いてみました。

「アクティビティ追加ボタン」など、ここでも、しっかり考えないとつい抜けてしまいそうなUI要素がリストアップされています。他ツールを調査したり、グループで議論したりを経ず、一般的に必要とされる要素を網羅的に示してくれます。圧倒的に便利です。

ここまで聞いた時点で、「顧客管理画面で必要なのは一覧と詳細って決めつけて聞いてしまったけど、他にもあるな」と、自分の指示の仕方のまずさに気が付きました。そこで改めて、顧客管理画面として作る必要がある画面(サブ画面)を聞いてみました。

プラスして2つの画面を提案してくれました。細かなところで、「アクティビティの新規追加はアクティビティ内に設置するという認識なのかな?」と思ったのですが、この辺の細かい所は追わず、顧客管理画面系の話はここまでに。

全体的にユーサビリティに関する言及が多いので、再びデザインの話に戻って具体的に聞いてみました。

抽象度は高いですが、業務システムのUIデザインポリシーとしてそのまま使えそうな内容ですよね。ここまで明確に提示できるデザイナーはあまりいないと思います。本当に素晴らしい。

現実世界の要件定義はもっと深く詳細まで続きますが、今回は実験なのでこのレベルでいったん終了。

さいごに、要件定義書としてまとめやすくするために一連の流れをマークダウンで主力してもらいました。

上手に使うコツ

この調子でChatGPTに質問を繰り返していくと、それなりの精度の要件定義書が短時間で作れそうです。

システムの要件定義は、まず大まかな部分を定義し、そこから細かな部分を定義していく、というのが基本的な流れです。これは人でやろうが、ChatGPTでやろうが、変わりません。今回のケースでも、画面構成→画面→要素という情報構造に合わせて、要件を定義していっています。今回は実験なので粗い定義(浅い階層)で止めていますが、さらに要素や機能を細分化していくことで、ChatGPTだけでもかなり細かい所まで定義していけそうです。

これは裏返すと、この情報構造を無視してChatGPTに要件定義を依頼しても、整理された回答は得られない、ということです。人間側が情報構造を整理することが、ChatGPTを使った要件定義では不可欠でしょう。また、今回は自然言語で行いましたが、情報構造が明確なので、プロンプトをうまく組み合わせれば、よりシステマティックで効率よく回答を得られそうです。

注意点としてはもう一つ、質問者側のバイアスがあります。途中私が、「顧客管理画面で必要なのは一覧と詳細」と仕様を決めつけて聞いてしまったために、検討画面に抜け漏れがある状態で、ChatGPTが答え続けてしまいました。ChatGPTが気を利かせて回答してくれることもありますが、いつもそうではありません。

バイアスのかかった質問を人間側が投げると、バイアスがかかったままの回答をChatGPT側もしてしまいます。要件定義は、思い込みを排除してできるだけフラットに発想していくことが重要です。そうしないと、後から「あれも必要だった」「これも必要だった」となりがちです。回答の精度を高めようと、つい条件を絞り込んでしまいがちですが、ChatGPTに投げかけるときは、なるべくフラットに聞いていくように心がけましょう。

さいごに

このレベルのことがChatGPTでできるのだとすると、要件定義を人の手で行う意義って何だろう?と思ったので、その疑問自体をChatGPTにぶつけてみました。

正論 of 正論が返ってきました。

確かに、ChatGPTは汎用的・一般的な仕様の要件定義しかしてくれないので、実際には人が介在する必要はあります。またこの実験で行った浅いレベルのやり取りではまだ使いものにならなくて、何度も質問を繰り返していく必要があります。しかしそれでもChatGPTを使うことで、かなりの業務効率化が図れそうな気がします。

例えば

  1. ChatGPTベースで要件定義を細部まで作りこむ
  2. ChatGPT版の要件定義を元にメンバーで議論し、より詳細な作りこみと個別最適化を行う
  3. メンバーで議論した内容を要件定義書に反映して最終版とする

という感じで、ChatGPTベースで作った要件定義を叩き台に人間が議論して細部をブラッシュアップすれば、現実的な要件定義書になりそうです。大規模なシステム開発では要件定義に6か月~1年くらいかけるケースも珍しくないですが、1~2か月単位の期間短縮も夢ではありません。

※まあ、要件定義にかかる時間というのは、作業時間よりも意思決定の時間の方が圧倒的に多いので、そんなにうまくはいかないでしょうが… ※ChatGPTも言及していますが。短縮した時間を、ユーザーリサーチやプロトタイピングなどの、ユーザー理解やユーザー最適化の時間に割り当てるとさらに良さそう

さいごに、ChatGPTの回答を見て私は、ChatGPTをはじめとするAIと仕事をすることの、一番のメリットが見えてきました。それは網羅性・妥当性のある情報を素早く出してくれることよりも、「常に謙虚で感情的にならずに淡々と仕事をしてくれること」です。

不完全で感情的になるのはある意味人間の魅力ですが、仕事においては、AIのこの姿勢を見習う必要ながあるな、と思いました。そんな気付きを与えてくれたChatGPTさんにお礼を言って、実験は終わりにしました。