ソフトウェア開発において、労力見積りとは、不完全で不確実でノイズの多い入力に基づいて、ソフトウェアの開発や保守に必要な最も現実的な労力(人時または金額で表す)を予測するプロセスです。労力見積りは、プロジェクト計画、反復計画、予算、投資分析、価格設定プロセス、入札ラウンドへの入力として使用できます。[1] [2]
実践状況
見積りの実践に関する公開された調査によると、ソフトウェア開発の労力を見積もる際には専門家による見積りが主流の戦略であることが示唆されている。[3]
通常、労力見積もりは過度に楽観的であり、その正確さに過信が強い。平均的な労力超過は約 30% で、時間の経過とともに減少していないようだ。労力見積もりの誤差調査のレビューについては、[4]を参照。ただし、見積もり誤差の測定には問題がある。見積もりの精度の評価を参照。労力見積もりの正確さに対する過信が強いことは、平均して、ソフトウェア専門家が実際の労力を最小-最大間隔に含めることに 90% の自信または「ほぼ確実」がある場合、実際の労力を含める頻度はわずか 60-70% であるという結果によって示されている。[5]
現在、「労力見積」という用語は、労力の最も可能性の高い使用(最頻値)、50% を超えない確率に対応する労力(中央値)、計画された労力、予算化された労力、またはクライアントに入札または価格を提案するために使用される労力など、さまざまな概念を表すために使用されています。これは、コミュニケーションの問題が発生する可能性があり、概念が異なる目的に役立つため、残念なことだと考えられています。[6] [7]
歴史
ソフトウェア研究者や実務家は、少なくとも1960年代からソフトウェア開発プロジェクトの労力見積りの問題に取り組んできました。例えば、Farr [8] [9]や Nelson [10]の研究を参照してください。
研究のほとんどは、正式なソフトウェア工数見積モデルの構築に焦点を当ててきました。初期のモデルは、通常、回帰分析に基づいていたり、他の分野の理論から数学的に導き出されたりしていました。それ以来、事例ベース推論、分類および回帰ツリー、シミュレーション、ニューラル ネットワーク、ベイズ統計、要件仕様の語彙分析、遺伝的プログラミング、線形計画法、経済生産モデル、ソフト コンピューティング、ファジー ロジックモデリング、統計的ブートストラップ、およびこれらのモデルを 2 つ以上組み合わせたアプローチなど、多数のモデル構築アプローチが評価されてきました。今日おそらく最も一般的な見積方法は、パラメトリック見積モデルCOCOMO、SEER-SEM 、および SLIMです。これらは、1970年代と1980年代に実施された推定研究に基づいており、それ以来、新しい較正データで更新され、最後のメジャーリリースは2000年のCOCOMO IIです。機能ベースのサイズ測定(例:ファンクションポイント)に基づく推定アプローチも、1970年代と1980年代に実施された研究に基づいていますが、修正されたサイズ測定と、ユースケースポイント[11]やオブジェクトポイント 、 1990年代のCOSMICファンクションポイントなどの異なるカウントアプローチで再較正されています。
推定アプローチ
推定アプローチを分類する方法は数多くありますが、例えば[12] [13]を参照してください。最上位のカテゴリは次のとおりです。
- 専門家による推定:定量化のステップ、すなわち、判断プロセスに基づいて推定値が生成されるステップ。[14]
- 正式な推定モデル: 定量化の手順は、履歴データから導き出された式の使用など、機械的なプロセスに基づいています。
- 組み合わせベースの推定: 定量化のステップは、さまざまなソースからの推定値を判断的かつ機械的に組み合わせることに基づいています。
以下に、各カテゴリ内の推定アプローチの例を示します。
推定アプローチの選択
異なる推定アプローチやモデルの推定精度の違いに関する証拠は、「最良のアプローチ」というものは存在せず、あるアプローチやモデルと他のアプローチやモデルとを比較した場合の相対的な精度は、状況に大きく依存することを示唆している。[18]これは、異なる組織が異なる推定アプローチから利益を得ることを意味している。アプローチの予測精度に基づいて推定アプローチを選択することを支持する調査結果[19]には、次のものがある。
- 専門家による推定は、平均すると、モデルベースの労力推定と同等以上の精度があります。特に、関係が不安定な状況や、モデルに含まれていない重要度の高い情報がある場合には、専門家による推定の使用が推奨されます。もちろん、関連する経験を持つ専門家が利用できることが前提となります。
- 特定の組織独自の状況に合わせて調整されていない正式な見積モデルは、非常に不正確になる可能性があります。見積モデルのコア関係 (数式パラメータなど) が同様のプロジェクト状況に基づいていることを確信できない場合は、独自の履歴データを使用することが非常に重要です。
- 正式な推定モデルは、モデルが組織の状況に合わせて調整され(独自の履歴データの使用、またはモデルが類似のプロジェクトや状況から派生する)、専門家の推定がかなりの程度の希望的観測に左右される可能性がある状況で特に役立ちます。
多くの予測分野において最も確実な発見は、独立した情報源からの推定値を組み合わせると、できれば異なるアプローチを適用すると、平均して推定精度が向上するというものである。[19] [20] [21]
ソフトウェア開発の生産性を測定する従来のアプローチにはそれぞれ限界があることを認識することが重要です。[22]
さらに、アプローチの結果を理解して伝えることの容易さ、アプローチの使いやすさ、アプローチの導入コストなどの他の要素も選択プロセスで考慮する必要があります。
見積りの正確さの評価
平均推定精度の最も一般的な尺度は MMRE (平均相対誤差の大きさ) であり、各推定値の MRE は次のように定義されます。
- MRE = | (実際の労力) - (推定労力) |/(実際の労力)
この指標は批判されており[23] [24] [25]、より対称的な指標[26] 、 相対誤差の四分位数の加重平均(WMQ) [27] 、推定値からの平均変動(MVFE) [28]など、いくつかの代替指標が存在する。
個々の項目が歪んでいる場合、MRE は信頼できません。推定精度の尺度としては PRED(25) が適しています。PRED(25) は、実際の値の 25% 以内にある予測値の割合を測定します。
見積り誤差が大きいからといって、必ずしも見積り能力が低いというわけではありません。代替の、競合する、あるいは補完的な理由としては、プロジェクトのコスト管理の低さ、開発作業の複雑さの高さ、当初の見積もりよりも多くの機能が提供されることなどが挙げられます。見積り誤差測定のよりよい使用と解釈のためのフレームワークが含まれています。[29]
心理的問題
過度に楽観的な労力見積りへの強い傾向を説明できる心理的要因は数多くある。正式な見積りモデルを使用する場合でも、これらの要因を考慮することは不可欠である。なぜなら、これらのモデルへの入力の多くは判断に基づいているからである。重要であることが実証されている要因は、希望的観測、アンカリング、計画錯誤、認知的不協和である。[30]
- 既知の事柄を推定するのは簡単です。
- 何が未知であると知られているかを推定するのは難しい。(既知の未知)
- 知られていないものを未知であると推定するのは非常に困難です。(未知の未知)
ユーモア
開発努力の慢性的な過小評価により、タスクを「プログラミングの小さな問題」と皮肉を込めて言及したり(多くの労力が必要になる可能性が高い場合)、過小評価に関する法則を引用したりするなど、多くのユーモラスな格言が生み出され、人気を博しています。
コードの最初の90パーセントが開発時間の最初の90パーセントを占めます。残りの10パーセントのコードが開発時間の残りの90パーセントを占めます。[31]
— ベル研究所のトム・カーギル氏
ホフスタッターの法則: ホフスタッターの法則を考慮しても、予想よりも常に時間がかかります。
— ダグラス・ホフスタッター『ゲーデル、エッシャー、バッハ:永遠の黄金の編み紐』 [32]
1 人のプログラマーが 1 か月でできることは、2 人のプログラマーが 2 か月でできます。
— フレッド・ブルックス、[要出典]
開発見積ソフトウェアの比較
参照
参考文献
- ^ 「ソフトウェア開発の労力見積もりに関してわかっていることとわかっていないこと」。
- ^ 「コスト見積および評価ガイド GAO-09-3SP 資本プログラムコストの開発と管理のベストプラクティス」(PDF)。米国会計検査院。2009 年。
- ^ Jørgensen, M. (2004). 「ソフトウェア 開発労力の専門家による見積もりに関する研究のレビュー」。システムおよびソフトウェアジャーナル。70 (1–2): 37–60。doi :10.1016/S0164-1212(02)00156-5。
- ^ Molokken, K. Jorgensen, M. (2003). 「ソフトウェアの労力見積もりに関するソフトウェア調査のレビュー」2003 International Symposium on Empirical Software Engineering、2003 年。 ISESE 2003。 Proceedings。 pp. 223–230。doi :10.1109/ISESE.2003.1237981。ISBN 978-0-7695-2002-5. S2CID 15471986。
{{cite book}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Jørgensen, M. Teigen, KH Ribu, K. (2004). 「安全より確実?判断に基づくソフトウェア開発工数の予測間隔に対する過信」Journal of Systems and Software . 70 (1–2): 79–93. doi :10.1016/S0164-1212(02)00160-7.
{{cite journal}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Edwards, JS Moores (1994). 「情報システムの管理における見積りツールと計画ツールの使用に関する矛盾」. European Journal of Information Systems . 3 (2): 139–147. doi :10.1057/ejis.1994.14. S2CID 62582672.
- ^ Goodwin, P. (1998). 判断力による売上予測の強化: 実験室研究の役割。判断力による予測。G. Wright と P. Goodwin。ニューヨーク、John Wiley & Sons: 91-112。
- ^ Farr, L. Nanus, B. 「コンピュータプログラミングのコストに影響を与える要因、第1巻」(PDF)。2017年2月21日時点のオリジナル(PDF)からアーカイブ。
{{cite web}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Farr, L. Nanus, B. 「コンピュータプログラミングのコストに影響を与える要因、第2巻」(PDF) 。 2018年7月28日時点のオリジナル(PDF)からアーカイブ。
{{cite web}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Nelson, EA (1966). コンピュータプログラミングコスト見積りのための管理ハンドブック。AD-A648750、Systems Development Corp.
- ^ Anda, B. Angelvik, E. Ribu, K. (2002). 「ユースケースモデルの適用による見積り方法の改善」。製品重視のソフトウェアプロセス改善。コンピュータサイエンスの講義ノート。第 2559 巻。pp. 383–397。CiteSeerX 10.1.1.546.112。doi : 10.1007 / 3-540-36209-6_32。ISBN 978-3-540-00234-5。
{{cite book}}: CS1 maint: 複数の名前: 著者リスト (リンク) 9783540002345、9783540362098 。 - ^ Briand, LC および Wieczorek, I. (2002)。「ソフトウェア エンジニアリングにおけるリソース推定」。ソフトウェア エンジニアリング百科事典。JJ Marcinak。ニューヨーク、John Wiley & Sons: 1160–1196。
- ^ Jørgensen, M. Shepperd, M. 「ソフトウェア開発コスト見積研究の体系的レビュー」
{{cite web}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ 「カスタム ソフトウェア開発サービス – カスタム アプリ開発 – Oxagile」。
- ^ Hill Peter (ISBSG) – Estimation Workbook 2 – 国際ソフトウェアベンチマーク標準グループ発行 ISBSG - Estimation and Benchmarking Resource Centre 2008-08-29 にWayback Machineでアーカイブ
- ^ Morris Pam — ファンクションポイント分析総指標の概要 - ファンクションポイントリソースセンター
- ^ Srinivasa Gopal および Meenakshi D'Souza。2012。事例ベース推論と複合推定アプローチの使用による推定精度の向上。第 5 回インドソフトウェアエンジニアリング会議(ISEC '12) の議事録。ACM、ニューヨーク、米国、75-78。doi :10.1145/ 2134254.2134267
- ^ Shepperd, M. Kadoda, G. (2001). 「シミュレーションを使用したソフトウェア予測技術の比較」. IEEE Transactions on Software Engineering . 27 (11): 1014–1022. doi :10.1109/32.965341.
{{cite journal}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ ab Jørgensen, M.「ソフトウェア開発作業の労力の見積もり:専門家の判断と形式モデルに関する証拠」
- ^ Winkler, RL (1989). 「予測を組み合わせる: 哲学的根拠と現在のいくつかの問題」. International Journal of Forecasting . 5 (4): 605–609. doi :10.1016/0169-2070(89)90018-6.
- ^ Blattberg, RC Hoch, SJ (1990). 「データベース モデルと経営の直感: 50% モデル + 50% マネージャー」. Management Science . 36 (8): 887–899. doi :10.1287/mnsc.36.8.887. JSTOR 2632364.
{{cite journal}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ BlueOptima (2019-10-29). 「信頼性が高く客観的なソフトウェア開発メトリクスの特定」
- ^ Shepperd, M. Cartwright, M. Kadoda, G. (2000). 「ソフトウェアエンジニアのための予測システムの構築について」Empirical Software Engineering . 5 (3): 175–182. doi :10.1023/A:1026582314146. S2CID 1293988.
{{cite journal}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Kitchenham, B.、 Pickard, LM、 MacDonell, SG Shepperd。 「統計が実際に測定する精度とは」。
{{cite web}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Foss、T.、Stensrud、E.、Kitchham、B.、Myrtveit、I. (2003)。 「モデル評価基準MMREのシミュレーション研究」。ソフトウェアエンジニアリングに関するIEEEトランザクション。29 (11): 985–995。CiteSeerX 10.1.1.101.5792。土井:10.1109/TSE.2003.1245300。
{{cite journal}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ 宮崎, Y. 寺門, M. 尾崎, K. 野崎, H. (1994). 「ソフトウェア推定モデル開発のためのロバスト回帰」システムとソフトウェアジャーナル. 27 : 3–16. doi :10.1016/0164-1212(94)90110-4.
{{cite journal}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Lo、B. Gao、X.「ソフトウェアコスト見積モデルの評価:精度、一貫性、回帰の基準」。
{{cite web}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Hughes, RT Cunliffe, A. Young-Martos, F. (1998). 「リアルタイム通信環境への適用におけるソフトウェア開発努力モデル構築技術の評価」IEE Proceedings - ソフトウェア145 : 29. doi :10.1049/ip-sen:19983370 (2024年12月7日非アクティブ)。 2017年9月20日時点のオリジナルよりアーカイブ。
{{cite journal}}: CS1 maint: DOI は 2024 年 12 月現在非アクティブです (リンク) CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Grimstad, S. Jørgensen, M. (2006). 「ソフトウェアコスト見積りの精度を分析するためのフレームワーク」
{{cite web}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Jørgensen, M. Grimstad, S. (2008). 「ソフトウェア開発の労力を見積もる際に無関係で誤解を招く情報の影響を回避する方法」IEEE ソフトウェア: 78–83。
{{cite journal}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Bentley, Jon (1985). 「プログラミングの秘訣」(有料) . Communications of the ACM . 28 (9): 896–901. doi : 10.1145/4284.315122 . ISSN 0001-0782. S2CID 5832776.
- ^ ゲーデル、エッシャー、バッハ:永遠の黄金の編み紐。20周年記念版、1999年、152ページ。ISBN 0-465-02656-7。
- ^ AFCAA Revic 9.2 マニュアル Revic 記念サイト
- ^ 「SLIM Suite の概要」。Qsm.com。2019年 8 月 27 日閲覧。
- ^ 「SLIM-WebServices」。Qsm.com 。 2019年8月27日閲覧。
- ^ TruePlanning 統合コストモデル PRICE システムサイト 2015-11-05 にWayback Machineでアーカイブ
