不完全な前提での Requirement Analysis
Context
多くの現場で Requirement Analysis は、 「要件を洗い出す工程」として理解されている。
しかし運用中のソフトウェアや保守案件では、 要件が完全に揃うことはほとんどない。 仕様は断片的であり、判断の前提は共有されておらず、 関係者の期待も時間とともに変化する。
このような状況で行われる Requirement Analysis は、 要求を集める行為ではなく、 判断を成立させるための前提整理 として扱われる必要がある。
Objective
本トピックの目的は、 正確な要件定義や完全な仕様合意ではない。
不完全な前提のもとでも、 変更・実装に関する判断を 引き受けられる状態を作ることにある。
Requirement Analysis は、 判断を先送りしないための装置として扱われる。
Minimal Inputs
Requirement Analysis における最小入力は、 「何を作るか」ではなく、 何を判断の前提として固定するか で構成される。
-
SoT(正の所在)
要件判断の最終根拠となる情報源 -
Constraints(制約)
契約・期限・組織・技術的制約 -
Non-Changeables(不可変更)
今回の判断では変更しないと合意した前提 -
Uncertainties(不確実性)
現時点で確定できず、仮説として扱う事項
これらが固定されない限り、 要件は常に再解釈可能な状態に置かれる。
Working Model
Requirement Analysis は、 要件を確定させる工程ではない。
不完全な前提のもとで、 仮説としての要件を扱う作業モデルを持つ。
- 仮説として扱う要件
- その仮説を支持する根拠
- 仮説が崩れる条件
- 仮説として許容する期限
期限を持たない仮説は、 暗黙の確定事項として扱われやすい。
Tactics
Requirement Analysis における介入は、 要求を増やすことではない。
- 判断に必要な前提を先に固定する
- 未確定要件を仮説として明示する
- 決めないことを意図的に残す
これらは手順ではなく、 判断可能性を維持するための設計である。
Risks
Requirement Analysis は、 容易に次の失敗へと転ぶ。
- 要件が無限に追加され、判断が停止する
- 仮説が検証されず、前提が固定化する
- 「まだ要件が足りない」が責任回避に使われる
これらは、 決定回避 や コンテクスト不足 を背景として、 Failure Pattern を誘発する温床となる。
関連する Failure Patterns
Requirement Analysis は、 以下の Failure Pattern と強く関係する。
-
Decision-less Agility
決めないことが合理化される状態への対抗策 -
Context-Blind Change
判断前提が固定されないまま変更が進む状態への対抗策 -
Specification-by-Absence
暗黙仕様が生成される前に、前提を明示するための枠組み
AI Collaboration
AI を Requirement Analysis に利用する場合、 要件そのものよりも、 判断前提を渡すことが重要となる。
- 何を SoT とするか
- どの制約を越えてはいけないか
- 何を変更不可として扱うか
- どの不確実性を仮説として許容するか
これらが固定されていない場合、 AI はもっともらしい要件を生成するが、 判断を引き受けることはできない。