Comments
Description
Transcript
第 3 章 CoBRA 見積りモデルでできること
CoBRA! is developed by Fraunhofer IESE and is a registered trademark of the Fraunhofer− Gesellschaft. Munich, May 16, 1998; Number of Registration 398 27 68. All rights reserved. 本書に掲載されている会社名・製品名は一般に各社の登録商標または商標です。 ● オーム社雑誌部「 (書名を明記)」係宛,E-mail([email protected]) , または書状,FAX(03-3293-6889)にてお願いします. CoBRA 法を象徴する 6 つの図 (備考)IPA/SEC『CoBRA 法に基づく見積り支援ツール』 (無料)の見積り画面(例) 図 1 ― 2 CoBRA 見積りモデルでの見積りイメージ Ϣʔβͷؔ༩߹͍ ʢ$0ʣ ։ൃؒظͷ੍ ʢ$0ʣ ʴ ʴ ཁٻͷෆ҆ఆ͞ ʢ$0ʣ ʴ ʴ νʔϜͷ ۀࣝɾݧܦ ʢ$0ʣ ʴ ʴ ʴ ৴པੑཁٻͷϨϕϧ ʢ$0ʣ ϓϩδΣΫτϚωʔδϟͷεΩϧɾݧܦ ʢ$0ʣ ੑೳཁٻͷϨϕϧ ʢ$0ʣ + は終点の項目について増加要因となるもの 図 1 ― 3 熟練者による変動要因例 実際には組織に合った要因を設定してください 1 ༧ ࢉ ա ֬ ੵݟΓʢதԝʣʹ " # ɹ ※ 図 3 ― 1 のデータと図 3 ― 2 のデータは関連していません。 図 3 ― 2 見積り値と予算超過確率 初期モデル MMRE Pred.25 標準偏差 総誤差率 評価指標 改善モデル 100% 見積り誤差 誤差率︵絶対値︶ 90% プロジェクト 名称 8 5 4 1 7 10 9 3 2 6 見積り 誤差率 [%] -25.3 14.9 9.1 28.0 -9.6 45.9 51.0 44.4 93.1 14.8 生産性の 逆数 順位 i %] ΣCO[ 順位 0.587 0.457 0.380 0.337 0.312 0.276 0.269 0.244 0.217 0.202 1 2 3 4 5 6 7 8 9 10 197.4 180.7 122.0 121.9 51.0 116.1 117.4 89.1 122.6 24.1 1 2 4 5 9 7 6 8 3 10 誤差率が大きいプロジェクト 実績データの精査 要因の定義見直し 要因の抜け プロジェクトの層別 70% 50% 30% 10% 0% プロジェクト番号 図 5 ― 15 CoBRA 見積りモデルの改善サイクル 2 工数/規模と1+ COに 矛盾があるプロジェクト 3 ˋ ˋ ɹ վળޙͷ ʢ$0͕Ϩϕϧʣ ݩͷ$0͕Ϩϕϧͷ ߹ͷ ɹ " ͷίϯτϩʔϧ # ੵݟΓʢதԝʣʹ ϓϩηεվળ ߴӨͳڹཁҼͷѲ ߴӨڹཁҼͷରࡦͱղফ 図 3 ― 6 CoBRA 見積りモデルでできること มಈ෯ͷ֬ೝ ˋ ༧ ࢉ ˋ ա ֬ ˋ ˋ ༧ ࢉ ա ֬ ༧ࢉաϦεΫͷධՁ ίετੵݟΓ ੵݟΓ ϦεΫϚωδϝϯτ ίετϚωδϝϯτ ϓϩδΣΫτϚωʔδϟ 1.0ɺ࣭ཧ෦ 4 ʢʣߏங४උ n ཁҼϨϕϧ $0 ʢʣ ʴ ʴ ɾϞσϧվળ ɾੵݟΓਫ਼ͷ࠶ධՁ ɾใࠂʢଧͪ߹Θͤʣ ɾϞσϧվળ ɾੵݟΓਫ਼ͷ࠶ධՁ ɾใࠂ ʢଧͪ߹Θͤʣ # ɾใࠂॻͷ࡞ ɾใࠂձ ʢʣใࠂͼٴɹɹɹɹ ϞσϧͷϦϦʔε ੵݟΓʢதԝʣʹ ɹ " νʔϜͷ ۀࣝɾݧܦ ʢ$0ʣ ϓϩδΣΫτϚωʔδϟͷεΩϧɾݧܦ ʢ$0ʣ ʴ ʴ Ϣʔβͷؔ༩߹͍ ʢ$0ʣ ੑೳཁٻͷϨϕϧ ʢ$0ʣ ʢʣ Ϟσϧվળ ʢճʣ ༧ ࢉ ա ֬ ʴ ʢʣ Ϟσϧվળ ʢճʣ ɾมಈཁҼͷೖྗ ɾ࣮σʔλͷೖྗ ɾੵݟΓਫ਼ͷධՁ ɾใࠂ ʢଧͪ߹Θͤʣ ʢʣॳظϞσϧ ͷߏங ʴ ৴པੑཁٻͷϨϕϧ ʢ$0ʣ ཁٻͷෆ҆ఆ͞ ʢ$0ʣ ʴ 図 4 ― 3 CoBRA 法による見積りモデル構築のステップ i=1 ʹɹʷنʷ ʢ̍ʴ᷉COiʣ ɾมಈཁҼͷϨϕϧઃఆ ʢʣ ϞσϧϓϩδΣΫτ ͷৄࡉ֬ೝ ɾมಈཁҼͷચ͍ग़͠ ɾมಈཁҼͷఆٛ ɾมಈཁҼͷӨڹௐࠪ ʢʣมಈཁҼϞσϧ ͷ࡞ ࣮σʔλ ʢنɺʣ ɾϞσϧߏஙϝϯόͷબఆ ɾ$P#3"๏ͷ֓ཁઆ໌ ɾنϝτϦΫεͷબఆ ɾมಈཁҼͷࣄલΞϯέʔτ ɾϞσϧϓϩδΣΫτͷબఆ ɾείʔϓͷܾఆ ɾ࣮σʔλͷऩूɾ֬ೝ ʢʣܭը ։ൃؒظͷ੍ ʢ$0ʣ 推薦のことば 「2007 年問題」をご記憶ですか? この時期、団塊の世代が一斉に定年を 迎え、豊富な経験と優秀な技能を持つ人材が、大量に職場を去ることによる 影響を心配した問題でした。マニュアル化しづらい現場固有の技術や職人技 など、ベテランに依存したノウハウの継承が困難になり企業活動が停滞する のではないか、という懸念です。 本書は、ソフトウェア開発の現場において熟練者の経験に大きく依存して いる工数見積りという課題に対する「2007 年問題」への解決策を示したユ ニークで実践的な良書です。 近年のソフトウェア開発では、 工程のかなりの部分がコンピュータ化され、 また開発ツールのサポートによって、個人技に頼るところは少なくなってき ています。しかし、開発に着手するにあたって最も大事な必要工数や工期の 見積りとなると、まだまだ熟練者の経験に頼らざるをえないのが現状です。 本書で紹介されている CoBRA 法は、このようなソフトウェア開発の工数見 積りについて、 ベテランの頭の中にある暗黙のノウハウを、形式知として「見 える化」し、誰もが使える形にできる画期的な手法です。ベテランの暗黙知 を CoBRA 法の見積り支援ツールに取り込むと、それほど経験のない人でも ベテランと同様の見積りができるというわけです。ベテランの「経験(K) 」 と「勘(K) 」 、そして最後はエイヤッと「度胸(D)」で見積もっていた、い わゆる KKD に対して、CoBRA 法はベテランの「経験(K)」と「勘(K)」 をうまく計数化し、度胸ではなく過去の「データ(D) 」を組み合わせて見 積もる新しい科学的な KKD と言っても良いでしょう。 本書の目次をご覧になるとお分かりのように、まず最初に「やってみよ う工数見積り」によって 30 分程度で概略のイメージを掴んだ上で詳しい説 明に入るなど、随所に読みやすさと理解のしやすさのための工夫が凝らさ れています。ソフトウェア開発に携わる多くの方々が本書を手に取られ、 CoBRA 法の妙味を実感され、現場で活用されることを期待します。 ところで、本書を出版された CoBRA 研究会は、この手法の現場への導 入・普及に熱い想いを持つ有志の方が集まって結成されました。ソフトウェ ア開発の第一線で活躍するメンバによる自主的な活動こそが、技術が現場に 浸透し定着する大きな力であると思います。ドイツで生まれた CoBRA 法は iii IPA/SEC(独立行政法人情報処理推進機構 ソフトウェア・エンジニアリ ング・センター)を経由して、日本の産業界へ自主的に展開普及が始まって います。このことは、国内外の産学官連携を目標とする IPA/SEC がその役 割を果たすことができた好例であり大変喜ばしく思います。CoBRA 研究会 の活動が大きく広がり、技術普及のモデルとして次々とソフトウェア・エン ジニアリング技術が現場に普及していくこと、そしてそれによって日本のソ フトウェア産業の競争力が力強いものとなることが私の願いです。 このような技術普及のモデルに先鞭を付けていただいた研究会のメンバに 敬意を払うと共に、CoBRA 研究会の活動とその成果である本書の出版に大 きな期待を込めてエールを送るものです。 iv 2011 年 3 月 独立行政法人情報処理推進機構 ソフトウェア・エンジニアリング・センター 所長 松田 晃一 海外からの推薦のことば ソフトウェアエンジニアリングは、工学的な原理に基づき、ベストプラク ティス、技術及びツールの適用により、大規模で複雑なソフトウェアを中 心とするシステムの開発を経済的かつタイムリーに解決しようとするもので す。システムに対する要求のさらなる高度化とソフトウェア業界における競 争の激化の結果、ソフトウェアプロジェクトのマネジメントを含む系統的 なソフトウェアエンジニアリング的アプローチの活用が促進されています。 IPA ソフトウェア・エンジニアリング・センター(IPA/SEC)及び実験的 ソフトウェア工学研究所(IESE)などの応用技術研究機関はソフトウェア 業界に向けて革新的な工学的解決方法の技術移転を進めています。これらは、 業界のニーズに基づき実施されているもので、その効果は広く認められてい るところです。 さて、本書はまさしく IESE のプロセスマネジメント部門と IPA/SEC が 共同で行ったソフトウェアエンジニアリング技術移転の成功のたまもので す。CoBRA 法は革新的ソフトウェアマネジメント技術であり、日本の多く のソフトウェア組織でそれぞれの特徴に合わせて利用されています。本書 は、技術移転サイクルの重要なステップを象徴するものと言えるでしょう。 IESE はソフトウェアプロジェクトのリソースマネジメントに対する産業 のニーズに応えるものとして CoBRA 法を開発しました。CoBRA 法は単に 開発工数の予測だけではなく、広くプロジェクトマネジメントの課題を解決 します。プロジェクトの意思決定者に対して、プロジェクトスコープの交渉 や、プロジェクトリスクマネジメント、生産性ベンチマークの策定、改善活 動ポイントの明確化をサポートするものです。そして CoBRA 法は、他の見 積り手法では失敗に終わっているソフトウェアエンジニアリングの課題を解 決しています。例えば、研究的に提案されているデータ駆動型の見積り手法 では、 必要なプロジェクトの特徴と定量的な測定データが提供されないので、 産業の現場では通常適用ができません。一方、ソフトウェア産業で一般に使 われている人間の判断による見積り方法では、見積りのたびに多くの作業を 必要とし、また、人ごとの主観によるバイアスがかかってしまいます。そこ で多くのソフトウェアエンジニアリング研究者や実務家が人間の判断と定 v 量的データを融合するシステム的なアプローチが必要だと考えていますが、 CoBRA 法はまさにそれを実現しているのです。 本書について特筆すべき点として、 産業での実践に触発されたものであり、 産業での実践を目的としていることがあります。ソフトウェア業界の実務家 は、CoBRA 法に関して必要なすべてのことをすぐに理解することができる でしょう。また、日々のプロジェクトでの意思決定にいかに助けになるかを 理解されることでしょう。基本的な手法の概念は多くの実践的な例により解 説されています。手法の活用の説明も日本の現場での事例に基づいたもので す。最後になりましたが重要なこととして、本書では CoBRA 法を支援する ツールについても解説されています。 本書は、ソフトウェア開発プロジェクトの成功をつかみたいソフトウェア 組織にとって役に立つハンドブックとなるでしょう。IPA/SEC と IESE は、 CoBRA 法を適用してイノベーションをビジネスの成功につなげるためにい つでも支援します。 vi 2011 年 3 月 ドイツ・フラウンホーファ協会 実験的ソフトウェア工学研究所 所長/教授 ハンス・ディーター・ロンバッハ Foreword from abroad Software Engineering is concerned with the development of large and complex software-intensive systems and services in an economic and timely manner by following engineering principles and applying best practice methods, techniques, and tools. Higher demands on softwareintensive systems and increasing competitiveness within the software business have triggered a push towards systematic software engineering approaches including the management of software projects. Applied research institutions such as the IPA’s Software Engineering Center (IPA/ SEC) or the Fraunhofer Institute for Experimental Software Engineering (IESE) support software organizations in transferring innovative software engineering solutions that are driven by their specific needs and have been empirically proven. This very book is the fruit of a successful collaboration between the process management division of Fraunhofer IESE and IPA/SEC in the area of software engineering technology transfer in Japan. The book represents an important step of the technology transfer cycle, in which an innovative software management technology called CoBRA has been adjusted to and deployed in a number of Japanese software organizations. Fraunhofer IESE developed the CoBRA method (Cost Estimation, Benchmarking and Risk Analysis) driven by industrial needs with respect to managing software project resources. In addressing project management objectives, CoBRA goes far beyond simply predicting development effort. It supports project decision makers in negotiating the project scope, managing project risks, benchmarking productivity, and directing improvement activities. At the same time, it meets typical constraints encountered in software engineering contexts, where other estimation methods typically fail. For example, data-driven methods proposed by research are usually not applicable in industrial practice because the required type and amount of quantitative measurement data is not provided. Yet, alternative estimation methods based on human judgment, which are commonly vii used in the software industry, require much human overhead each time estimates are needed and are burdened by many biases related to subjectivity in human experts. While many leading software engineering researchers and practitioners agree on the need for a systematic approach combining quantitative data with human judgment, CoBRA is actually doing it. What makes this book special is that it is driven by industrial practice and directed at industrial practice. Software practitioners will find all that is needed to quickly grasp the CoBRA method and understand how it helps for everyday decision making in a project. The basic methodological concepts are illustrated by a number of practical examples and the use of the method is exemplified by several cases from the Japanese software industry. Last but not least, the book presents tool support for the CoBRA method. For any software organization that does not want to leave the success of its software development projects to chance, this book should serve as a useful handbook. For professional use, IPA/SEC and Fraunhofer IESE are prepared to support organizations in deploying CoBRA and turning innovations into business success. March, 2011 Fraunhofer Gesellschaft Institut für Experimentelles Software Engineering Executive Director Professor Dr. Hans Dieter Rombach viii はじめに システム開発での妥当な工数見積りは、ソフトウェア開発が始まって以来 の永年にわたる課題です。 そして永年の経験から、組織での見積りモデルの構築は、過去のプロジェ クトデータの分析に基づいてモデルを構築するのが最も良いとされていま す。一方、ソフトウェア開発の組織において過去のプロジェクトデータを集 約していないという例も多く、見積りモデルを構築するためにはデータの集 約から始めなくてはならないことがほとんどです。データがなかったり、デー タが蓄積されていても分析されていない場合は、個別のプロジェクトごとに プロジェクトマネージャが過去の経験や勘を駆使した感覚で見積もることに なります。経験や勘といった暗黙知(感覚)を持つ人は妥当な見積りができ、 そのような感覚を持たない人は間違った見積りをしがちです。結果的に同一 組織内であっても見積りにバラツキが生じてしまいます。 組織的に統一された見積りモデルを確立したい一方、統計的な分析に耐え るほどのプロジェクトデータを用意できないというこのようなジレンマの中 で、根拠のある何らかの見積り方法を確立できないかという声をよく耳にし ます。 *1 CoBRA 法(Cost estimation、Benchmarking、and Risk Assessment) はこの問題に対して、解決策を与えるものです。この方法の特長は、少数の 過去のプロジェクトデータと経験豊富なプロジェクトマネージャの感覚を組 み合わせて見積りモデルを構築するところです。この考え方の背景には、特 定の組織内で経験豊富な人間の感覚が正確であるとの経験則があり、その感 覚や考え方をモデル化して共有しようとするものです。現場の正しい感覚 ( 「勘」)を見える化し、組織の見積り手法として確立する手法なのです。 本書では、CoBRA 法に基づいた見積りモデルの構築から保守の方法、さ らに見積りモデルの活用について解説します。また、CoBRA 法による見積 りモデルが単なる見積りモデルではなく、プロジェクトマネジメントでの強 力なツールとして利用できることを紹介します。ユーザ及びベンダの双方の *1 CoBRA 法:1997 年にドイツ・フラウンホーファ財団実験的ソフトウェア工学研 究 所(IESE、URL: http://www.iese.fraunhofer.de/index.jsp) の 研 究 員 に よ り発表された見積りモデル構築手法(付録 E 参考文献参照)。 ix 立場の方において、現場での課題が解決され、企業の競争力のみならず、現 場の活力につながっていくことを切に願っています。 x 2011 年 3 月 CoBRA 研究会一同 CoBRA 法入門 目 次 推薦のことば… ……………………………………………………………… ⅲ 海外からの推薦のことば… ……………………………………………… ⅴ Foreword from abroad…………………………………………………… ⅶ はじめに………………………………………………………………………… ⅸ 第 1 章 本書の読み方… ……………………………………… 1 1.1 本書の構成… …………………………………………………… 1 1.2 ソフトウェア開発の見積りの経験に応じた 読み方……………………………………………………………… 3 1.3 CoBRA 法ワンポイント…………………………………… 5 第 2 章 やってみよう工数見積り - 30 分で工数見積り-…………………………… 11 2.1 事前に準備するもの… …………………………………… 11 2.2 簡易ツールを使った見積りモデルの構築… ……… 13 2.3 構築したモデルで見積りの実行… …………………… 22 第 3 章 CoBRA 見積りモデルでできること… 27 3.1 精度の高い見積りの実現………………………………… 27 3.2 見積り結果の評価とコントロール…………………… 31 3.3 リスクマネジメントとしての活用…………………… 36 3.4 プロセス改善としての活用……………………………… 38 xi 第 4 章 CoBRA 法とは………………………………… 43 4.1 ソフトウェア開発の見積りの現状…………………… 43 4.2 CoBRA 法の特長と背景………………………………… 47 4.3 CoBRA 法による見積りモデル構築の概要……… 49 第 5 章 CoBRA 見積りモデルの 構築手順詳細… …………………………………… 59 5.1 計画……………………………………………………………… 59 5.2 モデル構築準備……………………………………………… 68 5.3 変動要因モデルの作成… ………………………………… 76 5.4 モデルプロジェクトの詳細確認… …………………… 87 5.5 初期モデルの構築… ……………………………………… 89 5.6 モデルの改善………………………………………………… 96 5.7 報告及びモデルのリリース…………………………… 105 5.8 CoBRA 法の有効性と適用範囲… ………………… 112 5.9 適用限界の障壁を下げる方策… …………………… 118 第 6 章 CoBRA 見積りモデルの保守… …… 121 6.1 CoBRA 見積りモデルの保守プロセス… ……… 121 6.2 見積り精度の評価… …………………………………… 123 6.3 モデル改善の要否判定… ……………………………… 127 6.4 モデル改善… ……………………………………………… 129 xii 第 7 章 構築・活用ベストプラクティス… … 7.1 日立製作所 情報・通信システム社事例… …… 134 7.2 NTT データセキスイシステムズ事例… ………… 148 7.3 三菱電機事例……………………………………………… 153 7.4 日新火災海上保険事例… ……………………………… 159 7.5 アイネス事例……………………………………………… 163 付録… ………………………………………………………………… 133 169 付録 A 変動要因定義サンプル… ………………………… 169 付録 B 「CoBRA 法に基づく見積り支援ツール」の 概要紹介… ……………………………………………… 186 付録 C CoBRA 研究会について… ……………………… 189 付録 D 用語解説………………………………………………… 191 付録 E 参考文献… ……………………………………………… 200 付録 F 執筆者一覧……………………………………………… 203 おわりに……………………………………………………………………… 204 索 引………………………………………………………………………… 206 :過去に経験のない場合の見積り……………………………………… 35 :工数変動要因の種類………………………………………………… 42 :アンケート結果評価例……………………………………………… 73 :実績データの必要最小限の数……………………………………… 74 :間接要因……………………………………………………………… 78 xiii :変動要因とαの関係………………………………………………… 84 :ランダムに三角分布から数値を選ぶ方法………………………… 90 :クロスバリデーション……………………………………………… 92 :規模見積り………………………………………………………… 116 :新規プロジェクトの見積り精度の評価基準…………………… 126 xiv 第1章 本書の読み方 1.1 本書の構成 本書は、ソフトウェア開発見積りの初心者から熟練者まで、CoBRA 法を 学ぶいろいろな立場の方の参考になるように構成を工夫してまとめました。 本書の構成を以下に示します。 なお、本書では、CoBRA 法に基づいて構築した見積りモデルを短縮して 「CoBRA 見積りモデル」と呼ぶこととします。 ■入門編 第 1 章の 1.3、第 2 章、第 3 章、第 4 章 ■実践編 第 5 章 ■応用編 第 6 章 ■事例編 第 7 章 ■参考情報 付録(変動要因の例、見積り支援ツールの概要、参考文献他)、索引 なお、CoBRA 研究会のホームページ(http://cobra.mri.co.jp/)には、 参考資料の電子ファイルや FAQ が掲載されています。 1 第1章 本書の読み方 本書では、次のような立場の方を読者として想定しています。 ★日々見積りと格闘しているプロジェクトマネージャの方 社内外問わず、いつも見積りに対して根拠の説明を求められるが、ど うにかこの「見積りの感覚」を共有できないものか! ★ユーザ企業の情報システム部門で、ソフトウェア開発の見積り評価に 悩んでいる方 見積りを依頼するけれども、どの見積りが妥当なのか、自分で判断で きない・・・どうにか、判定するための自分なりの見積り方法を手に入 れられないか?! ★突然、社内の見積り方法の構築を任された方(社内標準構築を任され た方) 急に見積り方法を標準化しろと言われたけれど、ソフトウェア開発の 見積りに詳しいわけでもないし、現場は自分で作ったものしか受け入れ てくれない ・・・ これは困った!! ★ PMO(プロジェクトマネジメントオフィス)として見積りの妥当性 を判断する手段を探している方 プロジェクトリーダが出してくる見積りの妥当性を判断するのに、プ ロジェクトリーダと同じように類推見積りや積み上げ見積りで見積もっ て も チ ェ ッ ク と し て 弱 い し、 か と い っ て、COCOMO(Constructive Cost Model)などの他の組織で作ったものと比較してもどちらが良い とも言えない ・・・ 何か自分の組織の実態に合ったパラメトリックな方法 はないものか?! ★開発コストの精度に不満を持っているシニアマネージャの方 去年の似たプロジェクトの予算に対して 5 割増しの稟議がきた。規模 が同じなのに、なぜ予算がそんなに違うのかを尋ねても要領をえない 回答ばかり。実際、何かが違うようなのだが、本当にそれが妥当なの か、その場しのぎの説明なのか、はっきりしない。もちろん事情に応じ て予算が違うのは理解できる。何とか整合性のある説明にできないもの か?! 2 1.2 ソフトウェア開発の見積りの経験に応じた読み方 1.2 ソフトウェア開発の見積りの経験に応じた読み方 読者の方の経験に応じて、次のような順での読み方をお勧めします。 ★ソフトウェア開発の見積り初心者の方 自分又は組織が関与したプロジェクト実績データ(あるいは、本書に あるプロジェクトデータ)を用いて第 2 章でモデル構築を試し、第 3 章 で CoBRA 見積りモデルで実現できることを確認してください。そして、 第 4 章の CoBRA 法の解説に進んでください。 ★見積りをいろいろ試したことがあるが、CoBRA 法は初めての方 まずは第 2 章で、少なくとも 6 個程度の過去のデータを用意してモ デルを構築してみてください。そして第 3 章の解説に進んで、CoBRA 見積りモデルで実現できることを把握してください。続いて第 4 章で、 CoBRA 法の背景を確認されることをお勧めします。 第 5 章にモデル構築の詳細な解説があります。参考にして、本格的に CoBRA 法にトライしてください。5.8 節では実際に CoBRA 法でモデル を構築するときの期間や手間などの実績を示しています。 ★ CoBRA 法に期待しているがどう使えばいいのか悩んでいる方 まずは第 2 章で、少なくとも 6 個程度の過去のデータを用意して、モ デルを構築してみてください。そして第 3 章で、CoBRA 見積りモデル で実現できることを再確認してください。第 4 章に考え方の背景を、第 5 章にモデル構築の手順を示しています。 第 3 章に解説するように、CoBRA 法は見積りだけでなく、ソフトウェ ア開発のプロジェクトマネジメントやプロセス改善にも応用可能です。 第 7 章の実際の活用事例は、悩んでいる読者の期待に応えるものである と CoBRA 研究会一同は考えています。 3 第1章 本書の読み方 ★ CoBRA 法に慣れている方 第 5 章に、CoBRA 法活用にあたっての「ツボ」を豊富にかつ詳細に 示しています。CoBRA 見積りモデル構築の手順(プロセス)に沿って 示しているので、疑問があったり、確認したいプロセスの箇所をピック アップして読んでください。 また、第 7 章に実際に活用している企業の事例を示しています。 ★ CoBRA 見積りモデルの保守・維持を悩んでいる方 第 6 章に CoBRA 見積りモデルの保守の考え方を解説しています。参 考にしてください。 また、情報源としては、CoBRA 研究会のホームページの FAQ(よくあ る質問)も参照してください。 http://cobra.mri.co.jp/contents_faq.html 4 1.3 CoBRA 法ワンポイント 1.3 CoBRA 法ワンポイント ここでは、CoBRA 法について簡単な紹介を行います。詳細は第 3 章以降 で解説します。まずは CoBRA 法がどのような手法か、読んでみてください。 CoBRA 法とは、ソフトウェア開発の現場の個々の特徴を加味して、ソフ トウェア開発に必要な工数を見積もる「モデル」を構築するための手法です (図 1 ― 1、図 1 ― 2 参照) 。構築したモデルで、見積り対象のソフトウェアの 規模と当該プロジェクトの特性を表す変動要因を入力して、工数見積りを行 います。 CoBRA 法における工数見積りの基本的な考え方は、以下の①と②のとお りです。 ① 開発工数と規模の理想的な関係 「開発工数は、理想的な状態においては開発規模だけで決定される」 これは、理想の生産性があり、開発が「理想の状態」では(開発規模÷理 想の生産性) で工数が求まるという考え方です。式で表すと次のとおりです。 工数= 規模 1 = × 規模=α× 規模 理想の生産性 理想の生産性 αとは、 本書で式の表記を簡単にするために「 (式 1 ― 1) 1 」 (つまり「理 理想の生産性 想の生産性」の逆数)を表す記号です。 「理想の生産性の逆数」というものは、 実は「単位規模あたりの必要理想工数」を表しています。 ② 変動要因により、理想から増加する現実の開発工数 「現実には理想的な状態はほとんどなく、理想の生産性を下げる数多くの 変動要因が存在し、変動要因が悪化させる影響度の総和分、開発工数が増加 する」 これは、現実のソフトウェア開発で必要な工数は、理想の生産性から求め られる開発工数に対して変動要因の総和分の工数が増加するという考え方で 5 第1章 本書の読み方 プロジェクトAの工数 工 数 コストオーバ ヘッド (CO) プロジェクト Bの工数 プロジェクトA プロジェクトごとに変動要因による増加工 数は異なるので、プロジェクトごとにコス トオーバヘッドは異なる値になる。そのた めプロジェクトA、Bのように規模が同じ でも、見積り工数が異なる。 プロジェクトB プロジェクトA、 Bの規模 α×規模 規 模 図 1―1 CoBRA 見積りモデルの考え方 n α×規模×ΣCOi … α×規模×変動要因1 α×規模×変動要因2 α×規模×変動要因3 i=1 α×規模×変動要因 n 変動要因 (備考)IPA/SEC『CoBRA 法に基づく見積り支援ツール』 (無料)の見積り画面(例) 図 1 ― 2 CoBRA 見積りモデルでの見積りイメージ 6 1.3 CoBRA 法ワンポイント す。式で表すと次のとおりです。式 1-1 の理想状態の工数に対して、「変動 要因の総和」が付け加わったものになっています。 工数=α×規模×(1+変動要因の総和) (式 1 ― 2) これを、本書で使用する記号に置き換えると、次のようになります。 n 工数=α×規模×(1+ΣCOi) i=1 式 1―3 n なお、本書中、Σ COi はとくに明記する必要のない限りはΣCO と表記し i=1 ます。 CoBRA 法は、端的には「規模が同じプロジェクトでもかかる工数に違い がある。これを把握し、説明できる。 」ようにする手法です。絵で示すと、 図 1-1 のイメージです。複数のプロジェクトがあると生産性に違いが生じる のが一般的で、 とくに同じ大きさでも工数が違うことはよくあります。なお、 変動要因は CoBRA 法でのカギとなるもので、 この総和を「コストオーバヘッ ド」と呼びます。 規模の尺度は、SLOC(Source Lines Of Code:ソースコード行数)やソフト ウェアの機能量を表す尺度である FP(Function Point:ファンクションポイ ント) など、 その組織で一貫して使っているものであれば何でも構いません。 図 1 ― 2 に CoBRA 見積りモデルで、実際に工数見積りを行っている様子 を示します。これは、CoBRA 見積りモデルの構築と工数見積りを支援する ツールのスナップショットです。 画面の左側で、想定規模と変動要因の内容(レベル)を入力すると、見積 り工数が計算されます。さらに、見積り工数の分布と共に、どの変動要因が 工数増加の原因となっているのかが、一目で分かるようになっています。 組織に合った CoBRA 見積りモデルを構築するのに、たくさんの実績デー タは要りません。6 個~ 10 個のデータとソフトウェア開発の現場の事情を よく知る熟練者がいれば、モデルを構築できます。 では、以下に、CoBRA 見積りモデルの構築の流れを紹介します。 見積りの経験が豊富なプロジェクトマネージャなどの熟練者は、経験から 感覚的に式 1 ― 2 の変動要因に関して、何をどの程度考慮する必要があるか 把握しています。そこで、 式 1 ― 2 の変動要因については、熟練者によるブレー 7 第1章 本書の読み方 ンストーミング形式で開発工数に影響を及ぼす多種多様な要因(変動要因) を抽出します。同時に、影響度合いについても熟練者が見積り時に考慮して いる感覚で設定します。 ・熟練者との合議により組織の事情に合った現実の変動要因を抽出 ・変動要因とその影響度合いは熟練者の経験に基づく感覚から設定 変動要因には、組織や開発対象となるシステムの特徴など、様々な種類が あります。例えば、熟練者の感覚を視覚的に確認するために要因関係図を作 成すると、図 1 ― 3 のようになります。 さらに、熟練者の感覚が妥当かどうか、少なくとも 6 件程度(10 件程度 が望ましい)の過去の実績データを使ってどの程度実態と感覚が合っている かを検証します。実態と感覚がずれている場合は相互に見直すと、十分な精 度が得られます。図 1 ― 4 のイメージのとおり、CoBRA 法では、熟練者の 感覚と過去データで相互に補完して精度の高い見積りモデルを構築します。 このように CoBRA 法は、ソフトウェア開発の熟練者が見積り時に普段 行っていることをモデル化するだけなので、現場の受けがとても良いです。 8 1.3 CoBRA 法ワンポイント Ϣʔβͷؔ༩߹͍ ʢ$0ʣ ։ൃؒظͷ੍ ʢ$0ʣ ʴ ʴ ཁٻͷෆ҆ఆ͞ ʢ$0ʣ νʔϜͷ ۀࣝɾݧܦ ʢ$0ʣ ʴ ʴ ʴ ʴ ʴ ϓϩδΣΫτϚωʔδϟͷεΩϧɾݧܦ ʢ$0ʣ ৴པੑཁٻͷϨϕϧ ʢ$0ʣ ੑೳཁٻͷϨϕϧ ʢ$0ʣ + は終点の項目について増加要因となるもの 図 1 ― 3 熟練者による変動要因例 実際には組織に合った要因を設定してください ϓϩδΣΫτ࣮ 1+࣮ 1+࣮ 1+࣮ 1+࣮ 1+࣮ 1+࣮ ิ ֬ ̗ࢯ ̖ࢯ ̘ࢯ Өڹʦˋʧ نʦ,4-0$ʧʦਓ݄ʧЄCOͷதԝʦˋʧ نʷʢʴЄCOʣ ࣮σʔλ ʢنɺɺ มಈཁҼϨϕϧʣ ޡ ࠩ ớ ઈ ର Ờ ճؼੳ n ʹЋʷنʷʢʴЄCO iʣ i=1 ϓϩδΣΫτ൪߸ 図 1 ― 4 熟練者の経験・感覚を少数の過去データで検証・補完 9 第2章 やってみよう工数見積り ―30 分で工数見積り― ここでは、CoBRA 法による見積りモデル構築がどれほど簡単である かの実感を伝えるために、実際の工数見積りを体験してみます。IPA/ SEC の『CoBRA 法に基づく見積り支援ツール』 (無料)を使います。 『CoBRA 法に基づく見積り支援ツール』には、CoBRA 法の体験を 目的とした簡易版(以下、簡易ツール)と、実際の見積り業務におい て活用することを目的とした統合版があります。ここでは簡易ツールを 使って、短時間(約 30 分)で見積りモデルを構築します。CoBRA 法 のモデル作りがいかにシンプルであるか、また、あなたの感覚を表現す るものか、を体験してみてください。見積り精度の向上は、本格的なモ デル構築のときに実現できますので、ここでは、見積りモデルの精度は あまり気にしないでください。 2.1 事前に準備するもの 事前に以下の2つを準備してください。 ①プロジェクト実績データの用意 規模、工数の実績データを少なくとも 6 件程度、用意してください。規模、 工数の単位は、プロジェクト間で統一されていれば何を使用しても問題あり ません。 例えば、表 2 ― 1 に示すような表で用意します。もし、実績データを集め るのが手間であれば、このデータを使って試してください。 11 第2章 やってみよう工数見積り ―30 分で工数見積り― 表 2 ― 1 用意するデータ(例) 番号 プロジェクト 規 模 工 数 CO1 CO2 CO3 CO4 CO5 CO6 名称 [KSLOC] [人月] 1 プロジェクト 1 2 3 210 196 0 1 1 1 1 1 プロジェクト 2 61 100 1 2 2 3 3 1 プロジェクト 3 220 200 0 1 1 0 1 1 4 プロジェクト 4 335 550 0 2 1 1 2 2 5 プロジェクト 5 105 225 2 3 2 3 3 1 6 プロジェクト 6 180 202 1 1 1 1 2 2 CO1:PM(プロジェクトマネージャ)のコミュニケーション能力 CO2:チームの経験・知識 CO3:システムの複雑さ CO4:見積り時の要求内容の曖昧さ CO5:顧客の参画度合い CO6:開発期間の厳しさ CO1 から CO6 の変動要因は、簡易ツールにあらかじめ入っている変動要因の例 です。 ② IPA/SEC (ソフトウェア・エンジニアリング・センター)へのユーザ登録 http://sec.ipa.go.jp/ にアクセスし、 『CoBRA 法に基づく見積り支援ツール』 メニューからユーザ登録を済ませてください。 12