「KKD」という3文字を目にされたことはないだろうか。
これは「勘(K)」、「経験(K)」、「度胸(D)」を略したものである。ソフトウェア開発で使われる略語で、マネジメントが「勘」と「経験」に基づき判断され「度胸」で意思決定される状況を表現している。基本的には 揶揄する意味で使われることが多い。
KKDの最右翼はソフトウェア開発の「見積り」である。「勘」と「経験」に基づいてエイヤっと「度胸」でコストを決定するベテランマネージャはどの組織でも見つけることができる。この技は極められると不思議と当たるが、ベテラン本人も見積りの理由を明確に説明できないことが多い。そのため、説明責任が重視される昨今、KKDは(表立っては)やってはいけないことと考えられている。
さて、今回紹介するのは、このやってはいけないとされるKKDを利用して精度の良い見積り手法を構築するアプローチである。CoBRA法と呼ばれる。
ソフトウェア開発における工数見積りの課題
なぜソフトウェア開発の見積りはKKDとなってしまうのか。
まず、ソフトウェア開発ではそもそも過去のプロジェクトデータが蓄積されておらず、感覚的でない見積りを実践するにはデータの収集から始めなくてはならないことが多い。また、規模や工数などの基本的なデータを蓄積している場合でも、ソフトウェア開発は要求分析からリリースまで人手が中心であり工数に対して様々な変動要因が存在するため、規模と工数を単純な関係では説明できない。さらに、変動要因は「チームのスキル・知識不足」、「開発期間の制約が厳しい」、「要件のあいまいさ」、「コミュニケーション不足」といったとらえどころがないものが多く、重回帰などの統計的な分析にのりづらい。
一方、ベテランの凄いところは、長年の経験に基づき、規模と工数の基本的な関係に対してこれらの要因がもたらす「ずれ」を感覚的(勘)に把握していることである。結果的に、現場はベテランの勘に頼るようになる。
CoBRA法のアプローチ
CoBRA法(Cost estimation、Benchmarking、and
Risk Assessment)
のアプローチは発想の逆転である。実績データの分析が難しい一方ベテランの勘が妥当な見積り結果を導いているのであれば、その勘をモデル化しようというものである。
モデル化の基本は、(1)理想的には工数は規模と比例関係にあるが、(2)実際の工数は様々な変動要因の影響により理想的な場合より工数が増加する、である。式で示すと次のとおりである。
(工数)=α×(規模)×(1+変動要因の総和)
「変動要因の総和」は上述のベテランの勘でモデル化する。そして、過去の10個程度の開発プロジェクトから、実績工数と実績規模、変動要因の状況の振り返りにより比例係数「α」を決定する。CoBRA法の特徴は、少数の過去のプロジェクトデータとベテランの感覚を組み合わせて見積りモデルを作るところである。現場の正しい「勘」を見える化し、当該現場の見積り手法として確立する。
モデル構築の方法は、CoBRA研究会ホームページの「CoBRA法とは」を参照されたい。また、今月4月下旬にはCoBRA研究会編による「CoBRA法入門」がオーム社から出版される。
これは、モデル構築の手順およびノウハウの詳細を示す包括的な解説書である。
なお、CoBRA法ではKKDのうちKKの活用により判断根拠が明確になるので「度胸(D)」は必要なくなる。CoBRA法においてDは「データ(D)」である。
CoBRA法の経緯と実績
CoBRA法は、1997年にドイツのフラウンホーファ財団実験的ソフトウェア工学研究所(IESE)の研究員により発表された手法である。2004年に情報処理推進機構ソフトウェア・エンジニアリング・センターが国内に導入し、2007年度に実証プロジェクトを実施、2010年にCoBRA法に基づく見積り支援ツールを公開している。
公開されている事例は、海外では4組織、国内ではCoBRA研究会が把握しているものが15組織である。2010年以降の事例が6件あり、今後のCoBRA法活用事例の拡大が予想される。
他の見積り手法との関係
CoBRA法の類似の手法としてCOCOMO(Constructive Cost Model)がある。CoBRA法と同様、工数と規模の基本的な関係に対して変動要因で基本的な関係からのずれを説明しようとするものである。ただし、COCOMOでは変動要因(22個)が固定されているが、CoBRA法は個別の組織の事情に応じて変動要因をカスタマイズする手法であり正確には見積り手法ではなく「見積りモデル構築手法」である。また、ファンクション・ポイント(FP)法は規模見積りの指標であり、CoBRA法へのインプットである規模の指標となる。
ソフトウェア開発(システム開発)におけるKKDの活用
冒頭で述べたとおりソフトウェア開発の様々な局面でKKDが存在している。そして、CoBRA法に見られるようにKKD(注:Dはデータ)を「正しく」活用すればこれまで分析や定量化が難しかった部分にメスを入れることができる。CoBRA法におけるKKDの活用は、これまでのソフトウェア開発のマネジメントのアプローチに新しい光を当てるものである。
実際、CoBRA法の発展としてHyDEEPと呼ばれる品質の予測モデル構築手法がIESEから提案されている。品質(不具合)に影響を及ぼす要因をベテランの感覚に基づき洗い出し定量化し品質を予測する。また、最先端研究開発支援プログラムの「日本発の「ほどよし信頼性工学」を導入した超小型衛星による新しい宇宙開発・利用パラダイムの構築」において、東京大学中須賀真一教授と慶應大学白坂成功准教授は、 信頼性確保においてベテランが着目する点を抽出し、効率良く確実に信頼性を確保する手法として「ほどよし信頼性工学」の構築の試みを行っている。
ぜひ、正しくKKDを活用し効率が良く品質の高いソフトウェア開発を実現しようではありませんか。
本文中のリンク・関連リンク:
- KKDの 解説(例)
- CoBRA研究会
- CoBRA法とは
- CoBRA法入門(2011年4月27日オーム社から発刊予定)
- フラウンホーファ財団実験的ソフトウェア工学研究所(IESE)
- 「先進的見積り手法実証と普及展開の調査」報告書(実証プロジェクト)
- CoBRA法に基づく見積り支援ツール
- cobra 法実績(海外、国内:「よくある質問」のQ.1.3.1)
- COCOMOII
- 品質の予測モデル構築手法:HyDEEP
- 信頼性確保においてベテランが着目する点を抽出し、効率良く確実に信頼性を確保する手法 (慶應大学白坂成功准教授)
- ほどよし信頼性工学