From Vague to Spec
顧客の「なんとなく」を構造にする、チケット駆動の要件定義
「もっと速く」「いい感じに」。
ふわっとした要望は、そのままでは作れない。
それを誰でも追える手順で、仕様に翻訳する話。
この記事でわかること
Chapter 01
受託開発の現場で最初に渡されるのは、たいてい完成した仕様書ではない。「もっと使いやすくしてほしい」「とにかく速く」——一言の要望だ。気持ちは伝わる。でも、これだけでは何も作れない。
要望は「気持ち」であって、要件ではない。要件とは、何がどうなっていれば「満たされた」と言えるのかの条件のことだ。「もっと速く」は要望、「月末の締め処理を、現場の担当者が3秒以内に終えられる」は要件。両者のあいだには、まだ大きな溝がある。
要望(want)
「もっと使いやすく」「速く」「いい感じに」。気持ちや方向。そのままでは作れない。
要件(requirement)
「誰が・いつ・何を・どうなっていれば満たされるか」。検証できる条件。作れる形。
この溝を埋めないまま実装に入ると、できあがってから「思っていたものと違う」が必ず起きる。手戻りは、要件定義をサボった分の利息として、あとで必ず払うことになる。
自分はインフラから受託のWeb開発へ移ったとき、最初に苦労したのがここだった。コードは書ける。けれど「何を書くべきか」が曖昧なままでは、手が止まる。要件定義は、実装の前にある、いちばん地味で、いちばん効く工程だ。
Chapter 02
曖昧な要望を受け取ったら、自分はすぐ手を動かさない。まず、3つを問う。
誰が使うのか。 その機能を触るのは現場の誰か。一日に何度触るのか。詳しい人か、初めての人か。
いつ使うのか。 毎日か、月末だけか、トラブルのときだけか。頻度とタイミングで、求められる作りは変わる。
何が壊れたら困るのか。 止まると一番痛い処理はどこか。逆に、多少不便でも我慢できるのはどこか。
「もっと速く」も、この3問を通すと像を結ぶ。たとえば「月末の締め処理で、現場の担当者が、待たされて困っている」。ここまで分かれば、直すべきは画面全体の速度ではなく、特定の一処理だと見えてくる。要望の解像度を上げると、やるべきことが小さく、確かになる。
すぐコードに飛びつかず、まず「壊れたら困る場所」を見極める。
問いを立てるのは、時間の浪費ではなく、いちばんの近道だ。
Chapter 03
問いを立てても、要望は一度の打合せで全部は出てこない。出てくるのは「持ち帰って確認します」という宿題の山だ。この宿題をどう扱うかで、要件定義の質が決まる。
自分のやり方は単純で、宿題を全部チケットにすること。曖昧な要望のかたまりを、追える単位まで割る。一枚のチケットが「誰の・どの場面の・何を決めるか」になっていると、打合せのたびにチケットが減っていく。要件が「見える在庫」になるのだ。
ふわっとした要望
打合せの宿題(確認すること)
チケット(誰の/どの場面/何を決める)
決定 → 仕様(作れる形)
ある業務システムの改修では、4ヶ月のあいだに80枚ほどのチケットを起こした。一枚ずつが小さな決定の単位で、宿題が決定に変わるたびに、システムの輪郭がはっきりしていった。チケットの束は、そのまま要件の地図になる。
振り返ってみると、これまで自分が起こしたチケットを種別で見たとき、最も多かったのは「要望」だった。全体のおよそ4割を占める。実装そのものより、要望を要件へ翻訳する作業のほうが、仕事の中心だったということだ。これは数えてみて初めて自覚した。
チケットに割る3つの効能
曖昧さは、数えられる形にした瞬間に扱いやすくなる。
Chapter 04
やっかいなのは、顧客が「本当に欲しいもの」を言葉にできるとは限らないことだ。「Aという機能が欲しい」の裏に、「本当はBで困っている」が隠れていることが多い。Aを言われるままに作っても、Bは解決しない。
引き出すコツは、解決策ではなく、困りごとを聞くこと。「どんな機能が欲しいですか」ではなく、「今、何にいちばん時間を取られていますか」。前者は相手に設計を求めてしまうが、後者は事実を語ってもらえる。設計はこちらの仕事だ。
解決策を聞く
「どんな機能が欲しいですか?」→ 相手に設計をさせてしまう。出てきた答えが本当の困りごととずれる。
困りごとを聞く
「今、何に一番時間を取られていますか?」→ 事実が出る。解決策はこちらで設計できる。
ヒアリングは、とにかく数をこなしてきた。これまで累計で50回を超える。回数を重ねて分かったのは、良い質問とは、相手に考えさせる質問だということだ。
「それは毎日ですか、月に一度ですか」と頻度を尋ねるだけで、相手の頭の中で優先順位が言語化される。聞き手の質問の設計が、話し手の解像度を決める。要件定義は、半分くらいは質問のデザインだ。
Chapter 05
引き出して整理した要件は、仕様書という形で残す。これまで20件以上は書いてきた。ただ、仕様書の本質はドキュメントを納品することではない。「ここまでは作る、ここからは作らない」という線を、両者が同じ絵で見るための合意の証跡だ。
UMLのクラス図やER図、画面遷移図も同じ役割を果たす。文章で説明すると擦れ違うものが、図にすると一瞬で揃う。「この四角がこのデータで、ここからここへ線が引かれている」——絵は、解釈の幅を狭めてくれる。設計の合意は、言葉より図のほうが速い。
完璧な仕様書を目指す必要はない。意思決定に必要な解像度で十分だ。
書きすぎた仕様書は、かえって誰にも保守されなくなる。
「ちょうどいい」を見極める——これは設計そのものと同じ感覚だ。過剰な作り込みが、後でどう負債になるか。それは別の記事(失敗から学んだ設計判断)で正直に書いた。仕様も設計も、足りなくても、多すぎても、後で痛い目を見る。
Chapter 06
AIが実装を肩代わりするようになって、要件定義の価値は下がる——そう思われがちだが、自分の実感は逆だ。むしろ上がった。
LLMにコードを書かせるとき、曖昧な指示は曖昧なコードを返す。「いい感じにして」では、いい感じには絶対にならない。これは人間に発注したときと、まったく同じ構造だ。AIは忠実に指示を反映するぶん、指示の曖昧さがそのまま出力に出る。
自分が朝刊エージェントを作ったときも、先にADR(設計判断の記録)で仕様を固めてからClaude Codeに渡した。仕様が明確なほど、AIの出力はぶれない。つまり、人間に要件を伝える技術と、AIに要件を伝える技術は地続きなのだ。曖昧を構造に変える力は、相手が人でもAIでも効く。
AIが「How」を担うほど
人間に残るのは「What / Why」
何を・なぜ作るかを決める仕事だ。
要件定義は、まさにそのWhatとWhyを決める工程だ。誰が動かすにせよ、最初に問いを立て、曖昧を仕様に変える人がいなければ、何も始まらない。この見立ては価値観マップでも書いた。
Chapter 07 — むすびに
要件定義を一言で言うなら、翻訳だ。相手の「なんとなく」を、作れる形に翻訳する。技術と業務のあいだに立って、両方の言葉を行き来する。
妻テストで言うと
引っ越しのとき、業者に「いい感じに運んでください」とは頼まない。「この棚は今日中に、傷つけずに、2階の奥へ」と、条件で伝える。要件定義はそれと同じだ。難しい専門技術ではなく、日常で誰もが少しはやっている「条件にして伝える」ことの、解像度を上げた版にすぎない。
だから、才能の話ではない。誰が・いつ・何が壊れたら困るかを問い、宿題をチケットに割り、図で合意する。手順だから、誰でも身につけられる。自分も、最初からできたわけではない。数をこなして、少しずつ手順にしていった。
AIが実装を担うほど、この仕事の価値は上がっていく。
何を書くべきかを決められる人が、これからの要になる。