FAQメニュー
- CoBRA法とは (概要/特徴/実績)
- CoBRAモデルの活用について (見積り/リスク評価/応用)
- CoBRAモデルの構築について (全般/応用)
- CoBRA研究会について
- IPAのCoBRAツールについて (全般/簡易版/統合版)
1. CoBRA法とは
<1.1 概要> |
FAQメニュー |
A. 1997年にドイツフラウンホーファ財団実験的ソフトウェア工学研究所(IESE)の研究員により発表されました。(左の「コンテンツ・メニュー」>「役立つ情報」参照)
Q1.1.2 CoBRAの名前の由来はなんですか? (なぜコブラなのですか?)
A. Cost Estimation, Benchmarking, and Risk Assessmentの省略です。なぜ、この名前でしょうか。機会があったら、直接開発者に聞いてみたいと思います。おそらくインパクトがあるものにという気持ちが入っているのではと思っています。
Q1.1.3 CoBRA法活用のために必要なものは何ですか?
A. 見積りに長けた熟練者と過去実績データ10個程度です。
Q1.1.4 経験や勘をモデル化する方法だと聞いたのですが、そんなことができるのですか? (経験や勘に基づいた方法は良くないと散々聞いてきたのですが、どういうことでしょうか…?)
A. できます。なお、よく見積りにおいて「勘」「経験」「度胸」(合わせて"KKD")は良くないといわれますが、「度胸」は良くないとしても、熟練者の「勘」「経験」は重要です。ただ、熟練者の中にのみある間は、ブラックボックスでその人以外使えないので、その「勘」と「経験」をモデル化するのがCoBRA法です。
Q1.1.5 CoBRA法が対象とするアプリケーション領域に、向き・不向きはあるのでしょうか。
A. 基本的にはないと考えています。
Q1.1.6 ユーザ企業でも使えますか?
A. Q1.1.3の質問の条件が整えば、大丈夫です。また、Q1.3.1の実績にも示すとおり、ユーザ企業の情報システム部門での試行実績はあります。
Q1.1.7 組込み系でも使えますか?
A. 考え方は汎用的なので、組込み系でも使えますし、実績もあります。Q1.1.3の条件が整えば、大丈夫です。
むしろ、派生開発の多い組込み系の方が向いているのではないか、という意見もあります。
Q1.1.8 CoBRA法を利用する前提として、どの程度のアプリケーション開発の実績が必要ですか。
A. 10個程度あると十分です。ただし、その10個について、どのようなプロジェクトだったかが分かる人の確保が必要です。
なお、日立製作所の幕田氏により、プロジェクト記録から初期モデルを構築する方法が紹介されています。(左の「コンテンツ・メニュー」>「役立つ情報」参照)
Q1.1.9 CoBRA法は、どれ位の経験があれば使える手法なのですか?
A. CoBRA法を経験し理解している人がいれば、アドバイスを受けながら比較的容易に導入できます。
Q1.1.10 CoBRA法を習得するには、どのくらいの期間が必要ですか? また独学でも習得できますか?
A. 手法自体はあまり複雑なものではありません。CoBRA法を知っている人から1回じっくり話しを聞けば、どのようなものか分かります。
独学については、解説資料として「CoBRA法入門」がありますし、CoBRA法を知っている人がいれば、その人に聞くのも早道です。
なお、概要は、「コンテンツ・メニュー」>「CoBRA法とは」を見てください。
また、参考資料一覧は、「コンテンツ・メニュー」>「役立つ情報」を参照してください。
<1.2 特徴> |
FAQメニュー |
A. CoBRA法は、正確には、コスト(又は工数)見積りモデルの「構築手法」です。個々の組織の状況に応じた見積りモデル(見積り方法)を構築するための手段を提供します。
この点が他の見積り手法と大きく違う点です。
一方、CoBRA法で構築する見積りモデルは、一般にパラメトリック法と呼ばれるものであり、その一つであるCOCOMOは工数と規模のベースラインの関係に変動要因を加味している点で最も近い構造となっています。 COCOMOはある特定の組織(NASA)のデータに基づいてパラメータが予め設定されています。
FP法は、見積り対象が「規模」です。CoBRAモデルでの規模指標として使えます。
積上げ法は、プロジェクトを個々の作業に分けてそれぞれ見積もったものの総和を取る方法です。ミクロ的な観点から見積もる方法です。 その点、CoBRA法で構築した見積りモデルは、全体規模から全体コストを見積もる使われ方が主なので、マクロ的なものです。 相互補完的な関係にあります。
一方、CoBRA法で構築する見積りモデルは、一般にパラメトリック法と呼ばれるものであり、その一つであるCOCOMOは工数と規模のベースラインの関係に変動要因を加味している点で最も近い構造となっています。 COCOMOはある特定の組織(NASA)のデータに基づいてパラメータが予め設定されています。
FP法は、見積り対象が「規模」です。CoBRAモデルでの規模指標として使えます。
積上げ法は、プロジェクトを個々の作業に分けてそれぞれ見積もったものの総和を取る方法です。ミクロ的な観点から見積もる方法です。 その点、CoBRA法で構築した見積りモデルは、全体規模から全体コストを見積もる使われ方が主なので、マクロ的なものです。 相互補完的な関係にあります。
Q1.2.2 見積り精度はどのくらいですか?
A. これまでの実績としては、例えば2007年度のIPA/SECが実施した試行では、平均誤差として、次のような結果が得られています。(平均誤差とは、予実差の絶対値を実績で割った割合です。)
・21.8% (金融・保険:ユーザ企業)
・33.1% (出版・サービス:ユーザ企業)
・20.1% (金融・保険:ベンダ企業)
・14.9% (製造:ベンダ企業)
・36.9% (公共(新規):ベンダ企業)
・18.1% (公共(改造・保守):ベンダ企業)
・27.6% (公共(小規模):ベンダ企業)
・22.1% (製造:ベンダ企業)
・16.8% (ベンダ企業)
・21.8% (金融・保険:ユーザ企業)
・33.1% (出版・サービス:ユーザ企業)
・20.1% (金融・保険:ベンダ企業)
・14.9% (製造:ベンダ企業)
・36.9% (公共(新規):ベンダ企業)
・18.1% (公共(改造・保守):ベンダ企業)
・27.6% (公共(小規模):ベンダ企業)
・22.1% (製造:ベンダ企業)
・16.8% (ベンダ企業)
Q1.2.3 CoBRA法の工数算定式はなぜ、
A. 例えばCO1、CO2ともに20%の場合、この2つで工数が1.2×1.2=1.44倍になるという考えに基づくのが[式1]です。
一方のCoBRA法([式2])では、変動要因を"互いに干渉しない"ように定義し、CO2についても、"元の工数に対して20%を計上する"と考えます。
ちなみに、Π(1+COi)を展開してCOの一次項までを取り出し、二次以上の項は"COが互いに干渉しないためゼロ"と見なすと、(1+任Oi)になります。
なお、CoBRA法では、変動要因間の干渉をモデル化するために、ある変動要因を「間接要因」と定義し、特定の変動要因に影響を及ぼす状況を設定することができます。
ちなみに、Π(1+COi)を展開してCOの一次項までを取り出し、二次以上の項は"COが互いに干渉しないためゼロ"と見なすと、(1+任Oi)になります。
なお、CoBRA法では、変動要因間の干渉をモデル化するために、ある変動要因を「間接要因」と定義し、特定の変動要因に影響を及ぼす状況を設定することができます。
<1.3 実績> |
FAQメニュー |
A. CoBRA研究会が把握している範囲では、2011年3月31日現在、国内では試行も含めて15組織がCoBRAモデルを作っています。
このうち、2010年4月以降の事例が6組織あり、急速な拡大が予想されています。
海外では、ドイツで2事例、オーストラリアで1事例、インドで1事例がIESEのホームページで紹介されています。(http://www.cobrix.org/cases/index.html)。
Q1.3.2 CoBRA法を使うためのツールはないのですか?
A. 2010年3月30日に(独)情報処理推進機構が「CoBRA法に基づく見積り支援ツール」を公開しました。また、IESEが開発したCOBRIXツールがあります。
2. CoBRAモデルの活用について
<2.1 見積り> |
FAQメニュー |
A. 概算見積りにおいて有効です。規模が確定していない場合でも、概算の規模を使って工数を見積もることができます。
規模が確定したら、再見積りをすることをお勧めします。
Q2.1.2 ユーザの参加度合いなど、プロジェクト開始段階では状況が良く分からない変動要因は、どうやって評価すれば良いですか?
A. 見積り段階での見込みの評価値(0-3の4段階)を設定すれば大丈夫です。その後で、見込みの状況と異なることが分かった場合は、再見積りをしてください。
Q2.1.3 途中でプロジェクトの状況が変わったら、変動要因のレベルを見直すのですか?
A. はい。レベルを見直して再見積りをし、当初想定した工数や工数分布がどのように変化したか、確認するのが望ましいです。
Q2.1.4 規模の見積りはどうすればよいのですか?
A. 規模はCoBRAモデルの入力情報です。従って、CoBRA以外の手法で規模を別途見積もる必要があります。
Q2.1.5 規模はライン数でないとダメですか?
A. そんなことはありません。普段の見積りで使っている規模指標をお使いください。ただし、単位を混ぜないで、統一してください。
Q2.1.6 お客様に見積りに納得感を持ってもらうには、どうしたら良いですか?
A. CoBRA法を使うと、見積りのコスト構造を、変動要因とその影響度という形で明らかにできます。
変動要因のうち、お客様と調整可能なものを、双方で積極的にすり合わせることで、見積りへの納得感が増します。
Q2.1.7 コスト構造が明らかになると、見積りを下げる根拠をお客様に与えることになるのでは?
A. 見積りのコスト構造が明確になりますので、コスト削減だけでなく、コストが想定以上に発生する場合の根拠説明にも有効です。
根拠を示しながらお客様とそのような調整ができることがメリットです。
<2.2 リスク評価> |
FAQメニュー |
A. リスクアセスメントでの活用として、@予算超過確率グラフを使った予算超過リスクの評価、A感度分析グラフを使ったコストマネジメントの重点把握、という例があります。
「5.」に述べるIPAのCoBRAツールにはこの機能が入っており、操作マニュアル等で解説されています。
いずれ、このホームページでも紹介したいと思います。
Q2.2.2 CoBRA法では予算超過確率が50%になる工数を見積り工数として採用するとのことですが、もっと安全な見積りをすることはできますか?
A. 「予算超過確率が50%」と聞くとリスクが高いように感じますが、裏返せば「予算内に収まる確率も50%」ですので、
「予算超過か予算内かという点において中立である」ことが分かります。
また、50%以外の超過確率になるような工数を見積り工数とすることも可能です。
具体的には、許容できるリスクの程度に応じて超過確率を自由に設定し、そうなるような見積り工数を計算することができます。
<2.3 応用> |
FAQメニュー |
A. 使えます。超概算で良いので、仮の規模を入力し、工数を見積もってください。
その後、全体の開発量がある程度見えてきた段階で、規模を推定し直し、工数を再見積りしてください。
Q2.3.2 工数が先に決まっていることが多いのですが、規模を逆算するのに使えますか? (規模見積りに使えますか?)
A. 使えます。工数算定式の任Oを計算し、工数から規模を逆算することができます。
Q2.3.3 工数見積り以外にもこの考え方を使えますか?
A. 汎用的な考え方ですので、工数見積り以外への応用も可能です。
例えば、CoBRA法を開発したIESEでは、同様の考えを品質見積りに適用する「HyDEEP」という手法に取り組んでいます。
3. CoBRAモデルの構築について
<3.1 構築全般> |
FAQメニュー |
A. 見積りに長けた熟練者に協力してもらい、ブレーンストーミングにより変動要因を洗い出します。
その際、CoBRA法を経験し理解している人がコーディネータ役になるのが望ましいです。
Q3.1.2 三角分布の数字は、本当に感覚で答えて良いのですか?
A. 感覚で大丈夫です。モデル構築後に、目標とする見積り精度が出ない場合、三角分布の数字の見直しも検討すると良いと思います。
Q3.1.3 三角分布を答えられる人がいないと、モデル構築はできませんか?
A. 基本的には難しいです。
ただし、日立製作所の幕田氏により、プロジェクト記録から初期モデルを構築する方法が紹介されています。(左の「コンテンツ・メニュー」>「役立つ情報」参照)
Q3.1.4 どうすれば、日々忙しい現場からの協力を得ることができますか?
A. CoBRAモデルの構築においては、現場の熟練者の方の協力が必要です。
ですが、一旦モデルを構築してしまえば、見積りの手順自体はとてもシンプルですので、手間をかけずに見積りができます。
またモデル構築においても、日立製作所の幕田氏により、プロジェクト記録から初期モデルを構築する方法が紹介されています。(左の「コンテンツ・メニュー」>「役立つ情報」参照)
Q3.1.5 モデル構築は難しそう。変動要因などの雛形となるデータはありませんか?
A. 「5.」で紹介するIPA CoBRAツールは、2007年度のCoBRA法の実証実験でのデータを集約したものを参考値として搭載しています。
それを使えば、簡単にCoBRA法のモデル構築や見積り、リスク評価を体験できます。
Q3.1.6 言語別にモデルを分けた方が良いですか?
A. 言語別にモデルを分けることは可能です。その一方で、言語が違っても変動要因は変わらないという場合は、同じモデルを複数の言語に適用することもできます。
Q3.1.7 開発プロセス(ウォータフォール、アジャイル等)で、モデルを分けた方が良いですか?
A. 開発プロセスによってモデルを分けることは可能です。その一方で、開発プロセスが違っても変動要因は変わらないという場合は、同じモデルを複数の開発プロセスで使うこともできます。
<3.2 応用> |
FAQメニュー |
A. CoBRA法で求めるαと、自社の生産性(実績規模と実績工数から計算)とを別々に管理し、その間の変換式を定めておくと良いと思います。
4. CoBRA研究会について
Q4.1 研究会に参加したいのですが、どうすればよいですか?
A. CoBRA法による見積りモデル構築を行った経験のあるメンバから構成しています。
ご経験のある場合は、すぐにご参加いただけます。
未経験の方については、2010年度から技術セミナーの開催等のフォローを開始しました。2011年4月の「CoBRA法入門」出版もその一環です。
Q4.2 CoBRA法に関する技術セミナーの開催予定はありますか?
A. 本研究会はCoBRA法の普及も考えており、2010年度から、技術セミナーの開催や各種イベントでの講演を行っています。
5. IPAのCoBRAツールについて(※)
※(独)情報処理推進機構(IPA)が2010年3月に公開した「CoBRA法に基づく見積り支援ツール」(IPA CoBRAツール)についてのFAQを掲載します。 このFAQは、IPAと連携して作成しています。
<5.1 ツール全般> |
FAQメニュー |
A. 問題ありません。実績工数には、過去プロジェクトで実際に発生した工数や金額を入力します。
また、実績規模には、ライン数、FP数、画面数といった実際の開発量を入力します。
ご質問の例のように、実績工数=開発金額、実績規模=FP、とした場合は、過去プロジェクトの開発金額をFPと変動要因から説明するモデルを構築することになります。
<5.2 簡易版 (簡易見積りモデルツール)> |
FAQメニュー |
A. 2007年度に国内で、CoBRA法の実証実験(「先進的見積り手法実証と普及展開の調査」)をしました。
簡易版で使用している業種別の三角分布定義は、この実証実験の参加企業から集めた定義を集約したものです。
Q5.2.2 入力したデータはどこかに蓄積されているのですか?
A. 簡易版では、ユーザが利用したデータは蓄積されません。
入力したデータを後で再利用したい場合は、「モデルパラメータのエクスポート」機能を使って、パラメータファイルをお使いのPCに保存し、次回利用開始時にそれをインポートしてください。
<5.3 統合版 (統合見積りモデルツール)> |
FAQメニュー |
A. 問題ありません。まずは、簡易版の業種別の数値を流用して見積りモデルを構築してください。
モデル構築後、もし期待する見積り精度が出ない場合は、数値の見直しを検討すると良いと思います。
Q5.3.2 三角分布の『(間接)』列の数値はどのような考えで設定すれば良いでしょうか?
Q5.3.3 三角分布の『(間接)』列の値を、『(直接)』列の値よりも小さく設定できないのは、何故ですか?
A. 例えば、CO1を直接要因、CO2をCO1の間接要因とします。この時、
・CO1の『(直接)』列=CO1がレベル3でCO2がレベル0の場合の、工数へのCO1の影響度
・CO1の『(間接)』列=CO1がレベル3でCO2がレベル3の場合の、工数へのCO1の影響度
となります。従って、『(間接)』列の値は、『(直接)』列の値よりもそれぞれ大きな値である必要があります。
・CO1の『(直接)』列=CO1がレベル3でCO2がレベル0の場合の、工数へのCO1の影響度
・CO1の『(間接)』列=CO1がレベル3でCO2がレベル3の場合の、工数へのCO1の影響度
となります。従って、『(間接)』列の値は、『(直接)』列の値よりもそれぞれ大きな値である必要があります。
Q5.3.4 CO2を間接要因とします。この時、CO2自体の『(直接)』列、『(間接)』列の設定値は計算には使われないのですか?
Q5.3.5 AとBを直接要因、Cを各々に対する間接要因とします。 この時、CがAに及ぼす影響とBに及ぼす影響を別々に設定できますか? また、どのように設定すれば良いですか?
A. 統合ツールでは、CがAに及ぼす影響と、Bに及ぼす影響を個別に設定できます。
ただし、Cが"レベル3"の時の、工数へのA(或いはB)の影響度として設定します。
具体的には、CがAに及ぼす影響は、Aの三角分布の『(間接)』列に、CがBに及ぼす影響は、Bの三角分布の『(間接)』列に反映します。
Q5.3.6 ツールでは、1つの直接要因に2つ以上の間接要因を設定できません。 変動要因Aに対し、BとCが間接要因という考え方はあり得ないのでしょうか?
A. 理論上は可能ですが、ツールでは設定できません。
代替案として、BとCの性質を併せ持った変動要因「B&C」を定義し、「B&C」をAの間接要因とする方法があります。
間接要因は、理論上はモデルの精緻化につながるのですが、熟練者の感覚を精緻に定量化することは困難なので、現実解として、充分に説明できる直接要因を探ることを推奨しています。
間接要因は、理論上はモデルの精緻化につながるのですが、熟練者の感覚を精緻に定量化することは困難なので、現実解として、充分に説明できる直接要因を探ることを推奨しています。
Q5.3.7 A←B←Cのような関係を設定することはできますか? Aは直接要因、BはAの間接要因、CはBの間接要因という関係です。
A. 理論上は可能ですが、ツールでは設定できません。
代替案として、B←Cの性質を反映した変動要因「B←C」を定義し、「B←C」をAの間接要因とする方法があります。
間接要因は、理論上はモデルの精緻化につながるのですが、熟練者の感覚を精緻に定量化することは困難なので、現実解として、充分に説明できる直接要因を探ることを推奨しています。
間接要因は、理論上はモデルの精緻化につながるのですが、熟練者の感覚を精緻に定量化することは困難なので、現実解として、充分に説明できる直接要因を探ることを推奨しています。