KAOS (54) 要求の優先度付け (3.4-1)

要求の優先度が役立つ場面には次がある.

  • 利害関係者が望む全ての特性を開発するには,用意した予算・人員・納期では,制約があるとき
  • (例えば,スパイラル型の開発において)次のサイクルやリリースを計画する,或いは不測の事態(開発の遅れ・予算の制限・人員不足・納期短縮の圧力)のために再計画を行うとき.
  • 優先度の低い要求を後回しにする,或いはあきらめることによって,衝突回避が可能になるとき

優先度があることは意義深いことだとして,どうしたら効果的に優先度を付加することができるか.以下が条件としている.

  1. レベル分けされていた方が良い.レベル内では,各要求は同一の優先度を持つ.容易に優先度付けできるように,レベルを示す数値は,小さい方が良い
  2. レベルは,量的というよりは質的な区分の方が良い.また,絶対的レベルというよりは,相対的なレベル分けが良い(例:「高い」ではなく,「〜より高い」)
  3. 要求は,比較可能であること.そのためには,粒度や抽象度が同じくらいであること.
  4. 比較される要求は,他から独立であること.少なくとも,相互に依存していないこと.相互依存があると,ある要求をあきらめたときに,残るべき要求も成立しなくなる
  5. 優先度レベルによる要求のクラス分けは,同意のために利害関係者同士で調整済みである必要がある

前回の寄与度と同様に,優先度を如何に体系立てて付加するかが,ここでの議論である.対象が単純であれば,えいやっと優先度をつけて,合意をとるのも容易かもしれない.しかし,レベル分けが必要なほど複雑になってくると,合意をとるのはなかなか難しくなる.

一般的な合意形成の手法として有名なAHPを,次回扱う.上記のうち,a-dは,ヴァリエーションが多くあるAHP(Analytic Hierarchy Process)のうち,最も基本的なAHPの条件でもある.

ソフトウエアを作る側は,常に合理性を求められるが,要求者はどうか.共に,体系立てて合理的に考えることは,(特に二者間取引においては)重要である.

(nil)