
非機能要件の抜け漏れをAIに洗わせる|観点リストと確認の型
「機能はできました」と報告した数日後に、「で、アクセスが増えても大丈夫?」「サーバーが落ちたらどうなるの?」と聞かれてヒヤッとする。 急いで作っているときほど、目の前の「動く/動かない」に気を取られて、性能や障害時の備えは頭の隅に追いやられがちですよね。悪いのは意識の低さではなく、ひとりで機能もその周りも全部見るのは、そもそも手が回らないからです。
こういう「機能以外の備え」——非機能要件は、AIに観点を洗わせるのが向いています。 非機能要件とは、「何をするか(機能)」ではなく、「どれくらいの速さ・安定・安全で動くべきか」を決める要件のこと。性能、可用性(落ちにくさ)、運用のしやすさ、セキュリティなどが含まれます。忘れた頃に牙をむく代わりに、設計の早い段階で「抜けの候補」を並べておけば、後の手戻りとヒヤッとをぐっと減らせます。
結論:非機能要件の抜けをAIに洗わせるコツは、①観点のリストを先に渡す(性能・可用性・拡張性・運用保守・セキュリティ・移行など)→ ②各観点で「この機能だと何が問題になりそうか」を問いの形で挙げさせる → ③出た観点を今回の規模で要る/要らないに仕分けする → ④具体的な数値目標(何秒以内・何件まで)は自分で決める、の順です。AIは「考え漏れの候補」を並べる相手であって、目標値を決める相手ではありません。数字と最終判断は自分に残します。
非機能要件が抜けるのは、責められるようなミスではありません。 機能が動くことと、本番で安定して動き続けることは、見る角度が違います。角度を変えて一度ざっと洗う——その作業に、AIを気軽に足せます。
なぜ非機能要件は後回しになりやすいのか
機能要件は「何を作るか」なので、作っている最中ずっと目に入ります。一方、非機能要件は次のような性質があって、どうしても後回しになりがちです。
- 正常に動いている間は見えない。負荷が上がる・障害が起きる・データが増える、といった「そのとき」まで問題が表に出ない
- 依頼に書かれていないことが多い。「ログイン機能を作って」に「同時に何人まで」は普通ついてこない
- 一人で全部の角度を想像しにくい。目の前の実装に集中しているほど、運用や障害時まで頭が回らない
そして厄介なのは、非機能要件の抜けは後から直すほど高くつくことです。動いてから「やっぱり倍のアクセスに耐えたい」となると、設計から見直しになることもあります。だからこそ、実装に入る前か、遅くとも設計を固める段階で、「機能以外に、この機能はどんな条件で動くべきか」を一度洗っておくのが効きます。
ここでAIに頼むのは、「答えを出してもらう」ためではありません。自分では思いつかなかった観点を、机の上に並べてもらうためです。並べば、要る/要らないの判断ができます。頭の中にないものは、判断の対象にすらならない——そこを埋める相手として使います。
洗わせるための観点リスト

まず、AIに見てほしい観点のリストを渡します。丸ごと「非機能要件を洗って」と頼むより、切り口を先に示す方が、この機能に紐づいた具体的な指摘が返ります。実務でよく効く観点を挙げておきます。
| 観点 | AIに洗わせること | ひとことで言うと |
|---|---|---|
| 性能 | 応答時間・同時アクセス・データ量が増えたときの重さ | 「遅くならない?」 |
| 可用性 | 障害・メンテ時の振る舞い、どこまで止まってよいか | 「落ちたらどうする?」 |
| 拡張性 | 利用が増えたとき/機能を足すときの伸ばしやすさ | 「増えても平気?」 |
| 運用・保守 | ログ・監視・アラート・復旧、誰が面倒を見るか | 「本番で困るのは誰?」 |
| セキュリティ | 認証・認可、扱うデータの機密度、入力の検証 | 「守るべきものは?」 |
| 移行・互換 | 既存データの移行、旧仕様との両立、切り替え手順 | 「今あるものは?」 |
全部を毎回使う必要はありません。今回の機能で不安な観点を2〜3個選べば十分です。渡すプロンプトの例:
これから作る機能の概要を渡します。あなたはレビュアーとして、
次の観点ごとに「この機能で考え漏れになりそうな点」を挙げてください。
- 性能(応答時間・同時アクセス・データ量)
- 可用性(障害時・メンテ時の振る舞い)
- 運用・保守(本番で誰がどう面倒を見るか)
各観点について、
・気になる点(この機能だと具体的に何が問題になりそうか)
・確認すべき問い(自分やチームに投げるべき質問の形で)
を挙げてください。
まだ数値目標や結論は出さなくて大丈夫です。
この機能では関係が薄い観点は「今回は影響が小さい」で構いません。
【機能の概要】
(作るもの・想定する使われ方・扱うデータ・現時点で分かっている制約を3〜10行で)
ポイントは3つあります。 ひとつ目は、観点を先に指定すること。これで指摘が「この機能のここ」に紐づきます。 ふたつ目は、「確認すべき問い」の形でも出させること。断定ではなく問いなら、あなたが確かめて答える余地が残ります。 みっつ目は、「関係が薄い観点は影響が小さいでよい」と添えること。これを入れないと、AIは全観点で無理に問題をひねり出し、今回は要らない心配まで並べがちになります。
出た観点を「今回の規模」で仕分けする
観点別に洗うと、「あれも」「これも」と考え漏れの候補が10も20も出てきます。全部に備えていたら、小さな機能が大げさな設計になってしまいます。そこで次に、今回の規模でどこまで要るかを仕分けします。
さきほど挙げてくれた点を、今回の規模を前提に3つに仕分けしてください。
今回の規模:(例:社内利用・同時数十人・1日数千件・止まっても数分は許容)
- 今回必要:この規模でも備えておくべき
- 今回は過剰:将来必要になるかもしれないが、今は見送ってよい
- 要判断:規模や方針次第で、人が決めるべき
それぞれ、なぜその仕分けかの理由も一言添えてください。
規模の前提を渡すのが肝です。同じ「同時アクセス対策」でも、社内数十人と一般公開では必要度がまるで違います。前提なしに聞くと、AIは大きめ・安全側に振った一般論を返しがちで、小さな機能に過剰な備えを勧めてくることがあります。「今回は過剰」を明示的に許すと、身の丈に合った線引きに近づきます。
こうして仕分けると、「今回必要」だけに絞って設計を詰められます。忙しい日は、「今回必要」の観点だけ手を打って、残りはメモに残すだけでも十分前進です。大事なのは、頭の中になかった観点が一覧になって、判断の対象に変わったことです。
なお、このやりとりはチャットに概要を貼るだけでも回りますが、Claude Code・Cursor・GitHub Copilot のような CLI/エージェント型の道具なら、設計メモや既存コードを読ませたうえで観点別に洗わせられます。実際の作りに沿う分、指摘が具体的になります。それでも、次の「数値と判断は自分で持つ」線引きは変わりません。
鵜呑みにしない——数値目標と判断は自分で持つ
ここが、いちばん大事な所です。 AIが挙げるのは、あくまで「考え漏れの候補」であって「確定した要件」ではありません。もっともらしく書かれていても、次のような外れが混ざります。
- あなたの状況ではすでに手当て済みの点を、知らずに挙げてくる
- 前提を渡しきれていないために、今回は要らない心配をしている
- 一般論としては正しいが、今回の規模には過剰な備えを勧めてくる
- 「応答は1秒以内が望ましい」のような、もっともらしいが根拠の曖昧な数値を添えてくる
とくに注意したいのが、具体的な数値目標です。「同時1000アクセス」「99.9%の稼働率」「3秒以内の応答」——こうした数字は、業務の要求・利用者数・予算・許容できる停止時間から人が決めるものです。AIが挙げた数字は「たたき台」にはなりますが、そのまま要件にはできません。ここはAIに任せず、関係者と握る部分です。
だから、洗い出した観点は次のように受け止めます。
- 数値目標は、実際の利用見込みと許容ラインから自分(と関係者)で決める——AIの数字は参考の一つに留める
- 「本当に今回必要か」を、具体的な使われ方でたどって確かめる(この規模でその負荷は現実に起きるか、頭の中で一度なぞる)
- 前提の抜けが原因なら、前提を足して聞き直す(「利用は社内数十人です。それでも対策は要りますか?」)
- 事実に関わる指摘(仕様・制約・数値)は一次情報で確認する——ここはAIに任せない部分です
AIに「この観点、今回の規模で本当に要る?」と聞き返すのも有効です。ただしAIは要る・要らないのどちらにも簡単に傾くので、最後の線引きは自分で。要件に入れるのも外すのも、理由を自分の言葉で言える状態にしておきます。もっともらしい誤りの見抜き方はAIのハルシネーション(もっともらしい誤り)の見抜き方に、そもそもAIに任せてよい範囲はAIに任せてはいけない判断・領域の線引きにまとめています。
明日、まず試すこと
いきなり全観点でやろうとしなくて大丈夫です。今、手元にある機能か、これから作る一件で、次の小さな一歩だけ踏んでみてください。
- 不安な観点を2つだけ選ぶ(迷ったら「性能」と「可用性」が効きやすい)
- 上のプロンプトに機能概要を3〜10行で貼って、観点別に洗わせる
- 今回の規模(利用者数・件数・許せる停止時間)を伝えて、要る/過剰に仕分けさせる
- 「今回必要」の観点だけ、具体的な目標値を自分で決めてメモに書く
- 決めた内容(この観点はこの数字で/今回は見送り)を一行残して、必要なら関係者に確認する
これだけで、「機能はできたけど本番は不安」が「どこまで備えるか決めた上で進める」に変わります。
非機能要件 洗い出しチェックリスト
洗わせる前と、指摘を受け取った後で、さっと確認します。全部に○が要るわけではなく、関係する所だけで十分です。時間がない日は、太字の2つ——「観点を指定した」「数値目標は自分で決めた」——だけ押さえれば及第です。
洗わせる前
- 見てほしい観点を指定したか(丸ごと「非機能要件を洗って」で済ませていないか)
- 機能の概要と、扱うデータ・分かっている制約を渡したか
- 「関係が薄い観点は影響が小さいでよい」と、無理な指摘を防ぐ一文を入れたか
指摘を受け取った後
- 今回の規模を前提に、要る/過剰/要判断で仕分けしたか
- 「今回必要」を、具体的な使われ方でたどって確かめたか
- 性能・可用性の目標値を、利用見込みから自分(と関係者)で決めたか
- AIが添えた数値を、そのまま要件にしていないか(たたき台に留めたか)
- 要件に入れる/外す観点の理由を、自分の言葉で言えるか
最後に
機能を動かすだけでも、精一杯の日があります。そのうえ性能も障害対応も運用も、と全部ひとりで抱えるのは、正直しんどいものです。抜けがあっても、それはあなたの怠慢ではなく、見るべき角度が多すぎるからです。
でも、答えをもらうためでなく、もう一つの角度から考え漏れを並べるためにAIを使えば、頭の中だけにあった「なんとなくの不安」が、仕分けできる一覧に変わります。備えるところは備え、今回は見送るところは見送る。そう決めた上で進められれば、後から「なぜ考えてなかったの」と問われても、落ち着いて答えられます。

全観点でなくても、今日ひとつ「アクセスが増えたら?」とAIに洗わせて、要る数字を自分で決められたなら、それはもう、忘れた頃の牙を先回りで抜く一歩です。
よければ、こちらも
- 洗い出す前に設計の方向そのものを固めたいときはAIを設計の壁打ち相手にする問いの立て方
- 機能面も含めた見落としを洗いたいときは設計レビューの見落としをAIに洗わせるプロンプトの型
- 可用性の具体策として、出力が不安定なときの備えはAIの出力が不安定なときのフォールバックとリトライ設計
- 性能に関わるAPIの料金・レート制限の見積もりはAI APIの料金・レート制限を見積もって本番に備える