要件の優先順位付け
要件の優先順位付け (英: requirement prioritization)、要件トリアージ (英: requirements triage )は、ソフトウェア製品のどの候補要件を特定のリリースに含めるかを決定するために、ソフトウェア製品管理で使用される。開発中のリスクを最小限に抑えるために要件にも優先順位が付けられ、最も重要または高リスクの要件が最初に実装されます。ソフトウェア要件の優先順位付けを評価するためのいくつかの方法が存在する[1] [2]。
概要
[編集]ソフトウェア製品管理には、いくつかのサブプロセスがある。第一に、市場やパートナー企業からの情報に基づいて製品開発戦略を定義するポートフォリオ管理がある。製品ロードマップ(またはテクノロジーロードマップ)では、ポートフォリオ内の製品のテーマと中核資産を特定し、ロードマップを構築する。要求管理では、製品の候補ソフトウェア要件が収集され、整理される。最後に、リリース計画活動では、これらの要件に優先順位が付けられ、リリース用に選択される。その後、ソフトウェア製品のリリースを準備する。リリース計画の重要な段階の1つは、要件の優先順位付けとなる。
コスト/価値アプローチ
[編集]ソフトウェア製品の要件に優先順位を付けるための、優れた比較的使いやすい方法は、コスト/価値アプローチです。このアプローチは、Joachim KarlssonとKevin Ryanによって開発された。その後、このアプローチはFocal Point社(2005年にTelelogicに買収されました)でさらに発展し、商品化された。基本的な考え方は、個々の候補要件ごとに、要件を実装するためのコストと、要件の価値を判断することである。
要件の価値とコストの評価は、階層分析法(AHP)を使用して実行される。この手法は、 Thomas Saatyが開発した。基本的な考え方は、(候補)要件のすべてのペアについて、ペアの1つの要件を他の要件と比較して価値とコストを評価する。たとえば、(Req1、Req2)の値が3の場合、要件1は要件2の3倍の価値になる。自明なことに、これは(Req2、Req1)の値が1/3であることを示す。 KarlssonとRyanのアプローチでは、候補者の要件を確認し、優先順位を決定するための5つの段階が示唆されている[3]。
- 要件エンジニアは、候補要件の完全性を注意深く確認し、それらが明確な方法で記述されていることを確認する。
- 顧客とユーザー(または適切な代替品)は、AHPのペア比較法を適用して、候補要件の相対的な価値を評価する。
- 経験豊富なソフトウェアエンジニアは、AHPのペア比較を行い、各候補要件を実装するための相対コストを見積もる。
- ソフトウェアエンジニアは、AHPを使用して、各候補要件の相対価値と実装コストを計算し、これらをコスト/価値図にプロットする。この図のy軸には価値が、x軸には推定コストが示される。
- 利害関係者は、候補要件を分析および議論するための概念マップとしてコスト価値図を使用する。これで、ソフトウェアマネージャーは要件に優先順位を付け、実装する要件を決定する。
これで、コスト/価値アプローチと一般的な要件の優先順位付けは、ソフトウェア製品管理の文脈に置くことができる。前述のように、リリース計画はこのプロセスの一部である。ソフトウェア要件の優先順位付けは、リリース計画プロセスの一部である。
リリース計画プロセスは、サブプロセスで構成されている。
- 要件に優先順位を付ける
- 要件を取捨選択する
- リリース要件を定義する
- リリース要件を検証する
- 提供開始の準備
その他の優先順位付け手法
[編集]- 品質機能展開(QFD)
- 二分探索木(BST)
- プランニングゲーム(PG)
- PROMETHEE
- 累積投票とも呼ばれる100ポイント方式(100P)
- AHPと組み合わせた計画ゲーム(PGcAHP)
- MoSCoWメソッド
- ソフトウェアエンジニアリングのリスク:理解と管理(SERUM)
- EVOLVE
- 価値志向の優先順位付け方法(VOP)
- 最小スパニングツリー(MST)
- バブルソート(BS)
- 数字の割り当て
脚注
[編集]- ^ Lehtola, Laura, Marjo Kauppinen, and Sari Kujala. "Requirements prioritization challenges in practice." Product focused software process improvement. Springer Berlin Heidelberg, 2004. 497-508.
- ^ Berander, Patrik, and Anneliese Andrews. "Requirements prioritization." Engineering and managing software requirements. Springer Berlin Heidelberg, 2005. 69-94.
- ^ Karlsson, J. & Ryan, K. (1997). A Cost-Value Approach for Prioritizing Requirements, IEEE Software September/October 1997, 67-74.
参考文献
[編集]- I. van de Weerd, Sjaak Brinkkemper, R. Nieuwenhuis, J. Versendaal and L. Bijlsma (2006). A Reference Framework for Software Product Management. Scientific Report. Department of Information and Computing Sciences, Utrecht University, The Netherlands, 2006. Submitted for publication.