AI開発

要件定義から設計に渡す前に決める3つの境界

株式会社Atsumell|7分で読めます
要件定義から設計に渡す前に決める3つの境界

# 要件定義から設計に渡す前に決める3つの境界

要件定義が終わって、いよいよ設計に入る。そう見えた瞬間に、AIはたいてい勝手に前へ進もうとする。

画面の遷移も、APIの形も、エラー時の挙動も、それっぽく埋めてくれる。便利だ。だが、ここで境界がないと、後で直す場所が広がる。

要件箱から設計箱へ渡す前に必要なのは、情報を増やすことではない。むしろ、AIが補完してよい範囲と、補完してはいけない範囲を分けることだ。

1. 入力の境界を先に閉じる

設計がぶれるプロジェクトは、たいてい入力が曖昧だ。

「申請を登録できるようにしたい」とだけ書かれていても、何を入力とみなすかが決まっていない。AIは空欄を埋める。だが、その空欄を埋める責任は本来、人間側にある。

要件箱では、少なくとも次を閉じたい。

  • 誰が使うのか
  • 何を入力とするのか
  • 何を自動計算するのか
  • 何は入力させないのか

ここが曖昧だと、設計箱で「画面に項目を足すだけ」の雑な解決になりやすい。

たとえば「申請日時は入力不要、システムで自動付与」と決めておけば、設計の時点で迷わない。逆に、入力として残してしまうと、後で整合性が崩れる。

AIに要件を渡すときは、情報を盛るより、まず入力の穴を塞ぐ。それだけで設計の精度が変わる。

2. 判断の境界を先に決める

次に必要なのは、何をAIに任せて、何を人間に残すかだ。

設計は「こう動くべきだ」を決める作業だが、その一部は自動で決めるべきではない。特に次の3つは、人間の判断が要る。

  • 優先順位が変わる条件
  • 例外を許す条件
  • 仕様変更を止める条件

たとえば、同じ「承認フロー」でも、

  • 金額が閾値を超えたら再承認
  • 申請者が退職済みなら取消
  • 締切を過ぎたら自動却下

このあたりは、AIに候補を出させるのはいい。だが、最終的に採用する判断は人間が持つべきだ。

ここを曖昧にすると、設計書は整って見えるが、責任の線が消える。設計が強そうに見えて、実は決まっていない。

OpenAIの agent evals の発想でいうなら、判断基準がないまま出力を増やしても意味がない。判断の境界を先に決めておく方が、レビューは速い。

3. 停止条件の境界を明文化する

最後に大事なのが、どこで止めるかだ。

AIは止めるのが苦手だ。だから、止める場所を設計に入れておかないと、どこまでも前に進もうとする。

設計箱には、次のような停止条件を明示したい。

  • 権限外の操作はここで止める
  • 外部送信の直前は人間承認に戻す
  • 例外が2つ以上重なったら自動処理しない
  • 未確定の要件が残るなら実装に渡さない

これを入れると、設計書はただの説明書ではなくなる。AIにとってのブレーキになる。

MCPの ResourcesTools の分離も、考え方は同じだ。読むための文脈と、動かすための手段は別物だ。設計も同じで、決めることと止めることは分けた方がいい。

設計箱があると、手戻りは局所化する

入力・判断・停止条件が分かれていると、AIの失敗は大きく崩れにくい。

たとえば、要件の解釈が少しずれても、入力境界が閉じていれば修正は小さい。判断条件の抜けがあっても、停止条件が入っていれば事故になりにくい。設計の失敗を一気に全体へ波及させないための仕組みになる。

逆に境界がないと、AIは「それっぽく」埋める。人間は「まあ、これでよさそう」と受けてしまう。後で修正すると、画面もAPIもテストも全部ずれる。

ここで効くのは、AIの能力を上げることではない。AIが勝手に進めないように、設計側で線を引くことだ。

明日からやるなら、この3行だけでいい

大げさなテンプレートは要らない。

まずは要件書の先頭に、次の3行を足す。

  • 入力として確定しているもの
  • 人間が判断するもの
  • 自動処理を止める条件

この3行があるだけで、設計に入ったときの迷いがかなり減る。AIも余計な補完をしにくくなる。

要件定義から設計へ渡すとは、情報を増やすことではない。判断を先に閉じ、止める線を先に引くことだ。

ひとつだけ具体例を出す

たとえば「申請フローを作る」という要件があったとする。ここでAIが最初にやりがちなのは、画面項目を増やすことだ。承認者コメント欄、下書き保存、差戻し、再申請、履歴一覧。どれも正しそうに見える。

だが、実務では全部必要とは限らない。むしろ先に決めるべきなのは、次のような線だ。

  • 申請者が編集できるのは「申請中」だけ
  • 「承認待ち」以降は編集不可
  • 差戻し時は再申請扱い
  • 外部連携は承認後だけ

この線を引いてから設計すれば、UIの項目数は自然に決まる。AIに項目を増やさせる前に、ルールを閉じる。順番が逆だと、設計はすぐ膨らむ。

レビューで見るべきは「穴」だけ

設計書のレビューでは、きれいな文章かどうかは本質ではない。見るべきは、穴が残っていないかだ。

よくある穴は次の3つ。

  • 例外時に誰が止めるかが書かれていない
  • 入力の前提が抜けている
  • 実装に渡す条件が曖昧なままになっている

この3つを見つけるために、設計レビューは「賛成/反対」を議論する場ではなく、「まだ決まっていないものを露出させる場」にした方がいい。

AIにレビューさせる場合も同じだ。良いレビューは赤入れの量ではなく、未決事項の露出量で決まる。

もし設計が重くなりすぎたら

設計箱の境界を引こうとすると、今度は「書くことが多すぎる」という問題が出る。そこでもう一段、削れる。

  • 画面遷移は1本の図で足りるか
  • エラーは3パターンだけで足りるか
  • 人間承認は1箇所だけで足りるか

設計は足し算ではない。要件から漏らすものを減らしつつ、実装に渡す線を揃える作業だ。書く量を増やすより、判断を減らす方が効く。

まとめると

要件定義の次に必要なのは、設計の見た目を整えることではない。

入力の境界を閉じる。判断の境界を決める。停止条件の境界を明文化する。この3つがそろうと、AIは勝手に飛ばなくなる。

設計は、AIを自由にするためではなく、AIが暴れないようにするためにある。

関連記事

#要件定義#設計#境界設計#AI駆動開発#仕様駆動開発

AI仕様書エディタKakusillに興味がありますか?

無料トライアルで、AIと開発する体験をすぐにお試しいただけます。

お問い合わせ