ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

見積もり手法の歴史とCoBRA法

2012-06-15 23:18:27 | トピックス
SDM公開講座「現代ソフトウエアエンジニアリングの俯瞰図
の第10回


ソフトウェア開発見積もりの課題と解決方法
~見積もり手法の歴史とCoBRA法~

を聞いてきたのでメモメモ




1.見積もりにおける課題
・プロジェクトマネジメントにおける見積もりの位置づけ
  みつもり→プロジェクトマネジメントの中核

・プロジェクトにおける大きな課題のひとつ
 プロジェクトを大失敗させる原因は2つある
   ひとつ波つもりミスだ
     楽観的な見積もり
     早期の見積もり
     目標と見積もりの混同
     一度決まったら修正されない
     時間の余裕がないことが多い
   もうひとつは仕様未凍結
     見積もりミスにつながる
  →無理なプロジェクト
      ロバートグラス
        「ソフトウェア開発55の真実と10のうそ」

・見積もりもスを引き起こす原因
   ケーパージョーンズ
  1.要求が完全に決定される前に正式な見積もりが求められる
  2.見積もり修正されない
  3.ツール使われない
  4.きゃリブレーションできない
  5.保守的→挑戦的に

・見積もりの国内の実践状況
  ベンダ企業
   属人的な方法が減少している一方、類推的な方法が残る
  ユーザー企業
   相見積もり→ベンダの見積もりに依存

・見積もりにおける課題(1)
  見積もり根拠が明確になっていない(規模、工数、工期)
   →KKDできまる
    見積もりに必要な情報がはっきりしない
    見積もり方法もその場限り

  生産性に影響を及ぼす要因が多種多様(工数)
   →プロジェクト状況の影響
     →影響要員がわかっていても、定量化が難しい
・実績プロジェクトデータ
  ばらついている


・見積もりにおける課題(2)
  過去データの欠落、制度の確保
  分析が難しい
  見積もり実施者の傾向
    ほとんどのコスト見積もりは低すぎる傾向がある(DeMarco-Glassの法則)

・見積もりにおける課題(3)
  部分的な情報からの見積もり(規模)
   →細部が決まっていない状況で見積もりを行う場合が多い
    (予算決めなど早い段階)
      →部分的な情報から推論するしかない
       実際とブレが出ることは避けられない

   4倍から4分の1

・見積もりにおける課題(4)
  決めたことが変わっていく(規模)
  開発当初の想定機能は、一般に肯定が進むに従って膨張する
    →見えていなかった要件が見えてくる
    →最初の要件とぶれる

2.見積もり手法の歴史と蓄積

・見積もり手法に関する大きな流れ

60年代 ソフトウェア開発の黎明期
70年代  見積もりも出る提案の時期
80年代 見積もりモデルの成熟期
90年代 ツールの成熟、機械学習の応用
2000年代 熟練者の知識活用の再確認

・ソフトウェアにおける見積もりに関する歴史と蓄積
 1958ノードン(Curve Fitting for a Model of Applied Resarch and development scheduling"

 ネルソン 1966
  6つの工程に分類

 nelson-jonesの法則
  多くの要素が開発生産性に影響

・その2
 1970年代は見積もりモデル提案の時期
   工数の期間の関係
   プットナム SLIMモデル→演繹的に導く
   ファンクションポイント

 1970年代のモデルにおける課題
   重視する要素に違い

・その3
 80年代COCOMOモデル ベームによって開発
    (TRWにいたとき)

 パラメトリック手法→バジル メタモデルの数値化

 一方、主要な結論として、ある環境で構築されたモデルは
 そのままでは他の環境での精度はよくない
  →キャリブレーションを行う必要がある

・その4
 90年代における機械学習方法の適用(データマイニング)
   データに語らせる
     機械学習アルゴリズム
     ニューラルネットワーク
     CART
   基本的にパターンに分類して見積もりを行う


 90年代後半から2000年代:熟練者の判断
    主観的な見積もり
    熟練者の治験を活用した定量化(CoBRA Braiandら1998)

3.見積もり根拠の見える化

・見積もりの見える化とモニタリングとコントロール(解決方法)

  対策1:見積もりモデルの確立
     →再現性の確保

  対策2:見積もりの妥当性の確保
     →想定したものをインプット
      前提を変えたシミュレーション

  対策3:モニタリングとコントロールと再見積もり

  対策4:目標と見積もりの峻別

 →すべての出発点は見積もりモデル

・見積もり根拠の見える化の重要性
   見積もり根拠の見える化=コスト構造の見える化が重要

・見える化の課題
  工数のぶれをどう説明するか

・具体的な解決策CoBRA
  ・5つの特徴
    1.組織固有のコスト変動要因をモデル化
    2.コスト変動要因に、熟練者の優れた「かんと経験」
    3.工数のコンとルールを実現
    4.予算超過リスクの定量評価を実現
    5.プロセス改善のポイントを把握

4.CoBRA法の概要
・CoBRA法のコンセプト「勘」と「経験」を見える化する
  「勘」と「経験」は問題→「形式知化」

・CoBRA法における工数見積もりの考えから
  規模が同じでもかかる工数に違い
   ベースの生産性αとそこからのオーバーヘッド(CO:コストオーバーヘッド)
   熟練者の考え方:オーバーヘッドに使う
     →実績データに照らし合わせてαを計算

  見積もり手法
   経験ベース型
   データ駆動
   ハイブリッド=CoBRA法

・工数見積もりの手順
  1.機微の推定
  2.変動要因の影響度を評価→レベル
  3.見積もりの実行→ツールを使用

・ツールでの見積もり手法
  想定規模の入力
  変動要因の入力
  見積もりの実行と結果の確認
    見積もり結果と感度分析

・CoBRAツール
  IPA/SECから
    簡易ツール
    統合ツール

・利用シーン
  コストマネジメント
  リスクマネジメント
  プロセス改善

・IESE(いえぜ)でできた
 IPA
 本が出た
   CoBRA法入門

5.CoBRAモデルの構築方法
・構築手順
  (1)変動要因の抽出、定義
      変動要因を聞き出す/確認
  (2)実績データの収集
  (3)モデルの構築
      →誤差が出てくる
  (4)見積もり精度の改善

・【手順1】変動要因の洗い出し
  アンケートで吸い上げて、ブレスト
    関係者の協力度合い・・・
  いっぱい要員が出てくるので、こまる
   →しぼりこみ
    要因が独立していることが重要

  4段階の定義
    まずレベル0とレベル3をきめ、間を決める
  どの組織でも似たようなものが出てくる

  定量化
    レベル0、レベル3のとき、どれだけ工数がかかりますか?
    →三角分布

・【手順2】実測データの収集
   書く変動要因の工数への影響度を4段階で評価

・【手順3】計算:ツールがやってくれる
   →さんかく分布のところ
   →αのところ

・【手順4】見積もり制度の改善
  MMRE 見積もり誤差率の平均値
  Pred25:見積もり誤差率が25%以内のプロジェクトの割合
     →分散を見ている

・初期モデルの見積もり制度:MMREが30~40%
  見積もり誤差の原因を探る


6.CoBRAモデルの応用

・工数のコントロール
   →影響度のコントロール
・COが高いものを重点的に
・いつも高い要員をチェック

7.事例紹介
・IPA/SECとIESEの共同研究 沖電気

・「CoBRA法入門」の本にかかれている事例

・IPAジャーナルで日本IBM(No26)

・三菱電機など(SECセミナー)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする