3. 先行研究の検討
3.3. 工数見積りに関する先行研究
3.3.1. 工数見積り手法
工数見積りの方法としては、以下の方法がある。
(1) 類推法
過去の類似プロジェクトの実績を基にして見積る方法 (2) 積み上げ法
プロジェクトの成果物の構成要素を洗い出し、それぞれに必要な工数などを見積って 積み上げる方法
(3) パラメトリック法
工数などを目的変数として、説明変数に規模や要因などを設定し数学的な関数として 表す方法である。代表的な手法として、COCOMO II (Boehm et al. 2000) やCoBRA法 (Trendowicz 2013) がある。
表 3-5に、各見積り手法の比較を示す(真野・誉田 1993 )。
33
具体的な工数見積りの手法については、様々な研究が行われている。伝統的な手法の多 くの方法は、エキスパートやプロジェクトマネジャーの専門能力を工数見積りに活用する 方法や見積りのためのガイドを利用する方法が多い。Kocaguneli et al. (2012) は、エキスパ ートの能力とガイドやチェックリストを組み合わせて利用する方法を提示している。また、
エキスパートグループの意見を集めて合意形成を行うデルファイ法を適用した方法が提案 されている。解決すべき課題の記述を元に個々のエキスパートが匿名で見積りを行い、そ の結果が合意されるまで繰り返される。Boehm and Farqubar (1981) によって、エキスパート 間の情報交換を強化した拡張デルファイ法が提案されている。
表 3-5 見積り手法の比較
(真野・誉田「見積りの方法」より引用し、IPA (2005)の情報を一部追記)
種類 長所 短所 前提条件
1 類推法 ・初期見積りに 適している
・参考とする過去のプロジ ェクトの特徴や制約などが 明らかでないと適用が困難
・客観性に欠ける
・過去のプロジェクトの 規模や工数等の実績デ ータベースと、プロジェ クトのプロフィールな どの情報の蓄積が必要
2 積み上げ
法
・特性が類似し ているシステム を繰り返し開発 している組織に おいては精度が 高い
・プロジェクトのWBSや成 果物等の構成要素を洗い出 す際の網羅度と厳密度が見 積り精度に影響する
・不確実な事項が多い初期 段階では見積りの精度が低 くなる
・客観性に欠ける
・過去の実績に基づいて 構成要素を分類、整理し ておく必要がある
・それぞれに対して規模 や工数などの実績デー タが必要
3 パラメト
リック法
・再現性があり 客観的
・前提が明確
・シミュレーシ ョンが可能
・関係式の中に不確定な変 数があると見積りの誤差が 大きくなる
・過去の実績データベー スに基づいて関係式を 定式化し、精度向上のた めの検証を行うことが 必要
定式化されたソフトウェア開発の工数見積りモデルでは、見積りプロセスにおいて様々 なツールや手法が活用される (Jorgensen et al. 2009)。初期の見積りモデルの典型的なものは、
回帰分析手法に基づいたものが多い (Yucalar et al. 2016, Huang.et al. 2008) 。Putnam (1978)
34
のSoftware Lifecycle Management (SLIM) や、Boehm et al. (2000) のConstructive Cost Model
(COCOMO II) は著名なソフトウェア工数見積りモデルである。そのほかに、決定木による
見積り手法 (Kocaguneli et al. 2012, Liu 2008)、ケースベースで分析や類推を行う見積り手法 (Liu 2018, Idri 2015)、ニューラルネットワークを適用した見積り手法 (Kumar et al. 2008, Huang and Chiu 2009)、サポートベクターマシンを適用した見積り手法 (Oliveira 2016, Corazza et al. 2011)、ファジーロジックの観点を取り入れた見積り手法 (Mittal 2010, Muzaffar and Ahmed 2010)、進化的アルゴリズムを応用した見積り手法 (Oliveira 2015,
Minku and Yao 2013) 等の研究がある。
エキスパートによる分析は、多くのソフトウェア企業において良く使われてきた。他方 で、定式化されていない見積りモデルの利用は減少している (Jrgensen 2004)。Jorgensen and
Boehm (2009) は、最適な工数見積りを行うためには、エキスパートによる分析と定式化
されたモデルベースの見積り手法を組み合わせて利用することを提案している。これは複 数の見積り手法による見積りを行ない、その組み合わせの過程で見積りの精度を改善する 方法である。
Mendes (2014) は、様々な分野の有識者の知識を元に、Baysian Networkを基礎とした見積
りモデルを構築することによって、それぞれの分野に適した精度の高い見積りが可能とな ることを示している。Trendowicz and Jeffery (2014) は、表 3-5に分類される様々な具体的な 工数見積り手法について、適用する工程やプロジェクトの特性や環境に応じて最適な工数 見積り手法を選定するための観点を網羅的に提示している。
Berlin et al (2009) は、ITプロジェクトにおける各種の工数見積り手法を比較しており、そ
の結論として、早い工程で精度の高い見積りを行うためには、工数見積りに影響するプロ ジェクトの属性をなるべく正確に収集することが重要であると述べている。しかし、プロ ジェクトの属性は、後工程になると変化する場合が多い。特に開発プロジェクトにおいて は、工程の進展に伴って曖昧な要件が明確になり制約が明らかになることで、仕様の追加 や複雑性の増加が発生し、ソフトウェア規模を含む各種のプロジェクト属性は変動する。
したがって、プロジェクトの早い段階の工数見積りでは、それらの属性自体が推定値であ り、過去のプロジェクトのデータ等を活用した機械学習などによって、見積りの精度を高 める必要があると述べている。
Kirmani (2017) は、近年のWebシステムの開発の工数を早い段階で精度良く見積もるため
に適切な手法を選択するための研究を行った。Kirmani (2017) は、工数見積りにおいて重要 なことを3点挙げている。一点目は、できるだけ概算見積りと実績の差異が少なくなるよう な見積りモデルを選定すること、二点目は、見積りモデルが概算見積りと実績の差異の監 視や開発プロセスのコントールに役立つものであること、三点目は、概算見積りと実績と の差異が発生した時の分析のため、個人レベルでの詳細な工数見積りの根拠を透明にして おくことと述べている。本研究における変動の可視化とコントロールの手法は、Kirmaniの 提案と同様の考え方を採用している。すなわち、変動の早期把握や変動の原因分析等を効
35
率良く行うための各種のデータを個人や詳細な作業の単位で蓄積し、各管理要素間の関係 性を明確にしておくという考え方であり、さらに、各原因に応じた対応策を過去の経験か らパターン化して形式知化することで経験の少ないプロジェクトマネジャーが過去の知識 を活用可能とするものである。