全章連続表示(印刷用)

第9章広げる ── レンズと歯止め

シナリオを歩かせながら、何を見るか。この章は、そのレンズの明細です。レンズごとに、何を問い、何を問わないかを示します。レンズは、要件定義では4つ、外部設計では3つです。

要件定義の4つのレンズ

要件定義では、シナリオを歩かせながら、次の4つのレンズで見ます。

レンズ問い
業務との整合歩かせた業務のゴールと業務ルールに、要件とユースケースが合っているか
境界・責任範囲仕事の受け渡しで、次の担当が始められる状態が用意されているか
検証可能性終わったと言えるか。後で確かめられる形で書かれているか
正常系偏重うまくいかない場合が、つなぎ目で検討されているか

レンズごとに、何を問い、何を問わないか(歯止め)を示します。歯止めを決めておかないと、指摘がきりなく増える可能性があります。

業務のゴールと、それを実現するはずのユースケースの目的が、意味として噛み合っているかを見ます。ゴールに要るのに、存在しない・繋がっていないユースケースはないか。業務ルールに繋がらない要件(要件の孤立)と、要件に反映されていない業務ルール(業務ルールの孤立)を、両方向から見ます。業務ルールが、「〜する」「〜を対象外とする」と事実だけを述べ、理由を欠いたまま書かれていないかも見ます。

実例

歯止め
  • すべての要件には問わない。業務ルールに触れるものに限る。
  • 成果物やその要素がIDでつながっているかは問わない。問うのは、つながっているものどうしが、中身として噛み合っているかである。

境界・責任範囲

仕事の受け渡しを見ます。業務の流れでは、タスクからタスクへ仕事が渡っていきます。渡すときに、次の担当者が仕事を始められる状態が用意されているかを見ます。

たとえば、販売企画担当が送料無料の閾値を切り替えるタスクには、「キャンペーン計画に閾値が記録されている」という開始条件があります。では、この計画はどのタスクが作るのでしょうか。業務の流れのどこにも作るタスクがなければ、切り替えのタスクは始められません。

見るときは、各タスクの開始条件から手前へさかのぼります。タスクは分岐・合流するので、手前から順に追うより、「このタスクの開始条件を、どこが満たすのか」から見るほうが、抜けを拾えます。状態が用意されても、次の担当者がそれを知る手段がなければ、仕事は始まりません。知る手段が検討されているかも見ます。

もう1つ、どの担当者がどのデータにどこまで触れてよいか(権限)の線引きに、業務上の理由があるかも、このレンズで見ます。

実例

このレンズの背後には、「仕様の全域をAIと一致させることは不可能だが、責任の境界を一致させることは可能」という考え方があります。SIとは、責任の境界を合意・設計・検証する仕事だからです。

歯止め
  • 誰が担うかの特定と、処理の中身は問わない。問うのは、事後条件が次の開始条件と噛み合うかである。
  • 知る手段や権限の中身は提案しない。
  • 受け渡しがうまくいかないと業務が止まるもの、後から取り返せないものから、先に問う(例:出荷の指示、支払いの確定)。同じ担当者が続けて行い、その場でやり直せるもの(例:入力して、そのまま確認する)は、基本問わない。

検証可能性

何をもって終わったと言えるかを見ます。業務の流れのタスクごとに、終わったとき何ができていればよいかが、読んで分かるかです。

たとえば「閾値の変更を確認する」というタスク。「確認した」とだけ書いてあると、後から、本当に終わったのかを確かめられません。「新しい閾値が、指定した日から有効になっている」と、終わったときに成り立っている状態(事後条件)で書かれていれば、確かめられます。「適切に」「必要に応じて」のように、判断を読む人に任せる言葉があるときも、確かめられません。

状態(「申請中」「承認済み」など)を並べた成果物があるなら、事後条件がその状態の名前で書けているかも見ます。状態の細かさがばらばら(「承認待ち」と「部長承認待ち」が並んでいる)だと、どこまで進んだのかが確かめられません。

終わった状態を書き直そうとすると、隠れていた業務ルールが出てくることがよくあります。「出荷を手配する」を書き直そうとすると、「在庫がある品は、受注日から3営業日以内に出荷する」という約束が出てくる、といった具合です。

実例:「希望納期を守れるか判定する」。何をもって守れると判断するのか。後で、果たされたかを確かめられる具体さになっているか。

歯止め
  • 判断や確認をするタスクに限る。その中でも、判断を誤ったと後で分かったときに取り返せないものから問う(例:後のタスクがその判断を前提に進む承認や確定、お金や在庫を動かす判定)。取り返せるもの(例:下書きの保存、一覧の並べ替え)は、基本問わない。
  • 取り返せない判断に限り、誰がいつ判断したかが、後から分かるかまで問う(例:与信の上限を超えた受注を、誰がいつ特別に承認したか)。どう残すか(形式・保存期間・手段)は問わない。
  • 状態の名前が業務の言葉か、IDが振られているかは問わない(書き手が書いた直後に整える)。

正常系偏重

うまくいかなかった場合を見ます。あるタスクの終了が、次のタスクの開始条件を必ずしも満たさないつなぎ目で、うまくいかない場合が検討され、例外の一覧に整理されているか。例外の一覧にある例外が、業務の流れやユースケースに反映されているかも、逆向きに見ます。処理が完了・中止・失敗した後の受け取り手、後始末、並行する別のプロセスへの影響も見ます。

実例

歯止め
  • あらゆる失敗は問わない。つなぎ目に集中する。定型の分岐(在庫あり/なし)と、単純なシステムエラー・入力エラーは問わない。
  • 業務の流れへの関与が深い外部連携の失敗から厚く問い、流れから独立したものは基本問わない。
  • 例外の中身は書かない。検討の跡があるかを問う。例外の一覧とのリンクの有無は問わない(書き手が参照として保つ)。

外部設計の3つのレンズ

定義

外部設計の【広げる】では、レンズが 機能成立性/トランザクション境界/機能例外 に置き換わる。この3語は言い換えない。

3つは、時間の上に並びます。

レンズ見ている時間
トランザクション境界トランザクションの内側——同時に成立しなければならない範囲
機能成立性トランザクションとトランザクションのあいだ——その間に前提が変わる
機能例外トランザクションが壊れた後——戻せるか

要件定義のレンズとは、正常系偏重と機能例外、境界・責任範囲とトランザクション境界が対応します。

トランザクション境界

複数の更新が、業務として同時に成立しなければならない範囲が、明確になっているかを見ます。たとえば、入金の登録と売掛金の消し込みは、片方だけが成立すると帳簿が合わなくなります。こうした範囲がどこまでか、途中で失敗したら何が巻き戻るのかが、はっきり書かれているか、です。

ここが書かれていないと、実装する側(AIでも人でも)は、更新をひとまとめにする範囲を自分で決めてしまいます。どちらも一見正しく動くので、片方だけが成立する不具合は、本番で帳簿が合わなくなるまで気づかれません。

実例:「承認と在庫引当は同時に成立する必要がある」。コミット後に非同期で走る連携は、失敗しても元の確定を巻き戻さない——その線引きが書かれているか。

歯止め
  • 1つの伝票の中(見出しと明細など)の更新は問わない。問うのは、別々の業務の情報(例:入金と売掛金、受注と在庫)をまとめて更新する場合である。
  • 排他制御の実装手段(楽観排他・悲観排他)は問わない。後工程の領域である。

機能成立性

この設計で、要件の機能が時間の中でも成立するかを見ます。自機能が参照するデータは、自機能の外で変わります。一覧に出した時点、操作する時点、確定する時点で、前提が同じとは限りません。シナリオの種の「並行して走る」「対象集合の鮮度」が、外部設計に降りてきた姿です。

実例

歯止め
  • 自機能の外で変わりうるデータに限る。確定・取り消せない操作の前提になるものから厚く問い、表示にだけ使うものは後にする。
  • 整合性を保つ実装手段と、要件そのものの妥当性は問わない。

機能例外

うまくいかなかったことが、設計として明言されているか。中心にあるのは、戻せるのか、戻せないのかです。取り消し・訂正ができる設計なら、その手順と権限が書かれているか。できない設計なら、できないことが設計判断として書かれ、合意されているか。それでも戻したい場面に、運用としてどうするか(打ち消しの伝票、管理者による是正、再申請の導線)が設計に含まれているか。

戻せないこと自体は悪くありません。黙って戻せないことが問題です。書かれなかった箇所が、運用開始後に発覚します(1章)。

実例

歯止め
  • 跡が残る操作に限る(確定、外部への送信、他者に見える状態変化、金銭・在庫の増減)。自機能の中で閉じ、誰にも影響を残さない操作は問わない。
  • 業務判断としての例外、入力チェック、障害時の処理方式は問わない。リカバリ手順の中身は提案しない。

どのレンズでも、AIに守らせること

規範

AIは答え(理由/責務/基準/例外の中身)を生成しない。「考えた跡があるか」を問い、跡が見当たらない箇所を人に手渡すだけ。

規範

「ない」と断定しない。言ってよいのは「確認した範囲では見当たらない」までとし、どの成果物を、どんな言葉で探したか(言い換え・略語・業務用語とシステム用語の対応を含む)を添える。

AIが「ない」と言い切ると、人はそれを事実として受け取りやすくなります(「なぜ今このメソッドか」の章で見た、自信のある口調や自動で出てきたものを疑わなくなるバイアスです)。けれども実際には、別の成果物に、別の言葉で書かれていることがあります。どこを、どんな言葉で探したかが添えてあれば、人が確かめ直せます。

規範

1根本論点1指摘。同一根本原因と判定してよいのは、次の3条件をすべて満たすときに限る——(1) 対象箇所または業務上のつなぎ目が同じ (2) 不足・矛盾・曖昧さの根本原因が同じ (3) 一方を解消すると他方も同時に解消される。

同じ根本原因が複数箇所に現れているなら、対象箇所を列挙する形で1つの指摘にまとめます。逆に1つの指摘文に独立した論点が混在しているなら分割します。

規範

指摘の行き先(未決型ISSUEにして議論する/成果物をそのまま直す/採らない)は人が振り分ける。AIは指定しない。

レンズは、育てて使う

この章のレンズと歯止めは、ベースラインです。回した結果を見て、プロジェクトや組織で育ててください(育て方は14章)。プロジェクトの業界や業務に固有の見るものを足すこともできます。

規範

【広げる】が見る範囲にプロジェクト固有・ドメイン固有のものを足すときも、「問い+歯止め」を1組にする。

次章への橋渡し気づいて、議論して、決めました。では決めたことは、その後もずっと守られているのか。
AI-Trusted Spec method 初版
© INTRAMART CORPORATION