🌳

とある要件定義の思い出 本来の目的とシステム化要求の違い

に公開

数年前に実際に立ち会った要件定義の際のミーティング内容について記事にします。
受託開発でよくあるOCRシステムを開発していた時の事です。私はWebアプリ側の担当で機械学習は別チームが担当していました。一応私はWebアプリ側のPMとしてミーティングに参加していました。
※実際の顧客との会話なので内容は多少伏せています。

システム概要

顧客が所有している書類をPDF化し、それをOCRにかけて結果をシステムに保存します。
実際のPDFと機械学習で読み取った結果を同時に表示して、OCRの結果が誤っていれば手入力で修正可能。また、OCR結果が複数あればプルダウンで選べます。
保存した情報を別システムに連携するために~するといった機能もありました。

こういったOCR案件は色んなところでやっていそうですね。

顧客の要求

おおよそ上記のシステムを作っていく事は決まった中で次のような顧客の要求がありました。

顧客「PDFから読み取った個人情報をPDFから削除したものを作りたいです。それで新しいPDFを作って、それを印刷したりして~」

私はこれを聞いた時に、「技術的に可能です」とは言わずとも頭の中で技術検証してイケると思っていました。
実際にやることとして
①OCR情報から個人情報のあるところの座標を取得
②OCRの精度は100%じゃないので、フロント側でマスキングする座標をいじれるようにする
③座標情報を元にPDF編集で消す(ここPDFライブラリに何使うか選定やキューからのlambda実行でいけるかなども要考慮)
です。
②のやり方によっては面倒だなーと頭の中で考えつつつも顧客の要求をYesの方向で捉えていた時に、隣にいた同社の営業さん(アカウントマネージャーと言った方がいいかも)がこう聞き返しました。

営業「それは何を目的とされていますか?」

ここの顧客の返答は伏せておきますが

営業「個人情報を省きたいだけでPDFである必要はないんですよね?」

これに対して、顧客が「その通りです」と答えたため、PDFの編集云々の話はなくなり、比較的楽な開発になり、顧客も無駄に金をかける必要がなくなりました。私は実践の中でシステム化の要求本来の目的の違いに気をつけるべきを学びましたね。

AI事情

今時点(2025年)のAIなら余裕で①~③を組んでしまいそうですね。やることはシンプルで典型的ですから。AIが凄すぎて思考停止でYesと答えて実際サクッと作ってしまい、開発側も顧客側も「本当に必要だったもの」に気づかず終わってしまいそうです。
「本当に必要だったもの」を作るために要件定義・設計こそAIにはできない人間に残された仕事だ!と思われるかもしれません。しかし、今時点のAIなら要件定義時から参画させ、
「これから投げられる要求について、システム化の要求本来達成したい課題、目的を切り分けて要件定義してください。この点が曖昧と感じた場合は質問して確認してください。」
と命令しておけば問題ないと思います。

人間がやる仕事はアウトプットチェック・微調整と説明責任だけになっていくのでしょうか。。。

Discussion