CMMI(Capability Maturity Model Integration,能力成熟度モデル統合)は,能力成熟度モデルの一つであり,システム開発を行う組織がプロセス改善を行うためのガイドラインです。この講座では,CMMIの歴史や概要,CMMIを利用したプロセス改善のポイントなどを解説します。

 CMMI(Capability Maturity Model Integration,能力成熟度モデル統合)は,能力成熟度モデルの一つであり,システム開発を行う組織がプロセス改善を行うためのガイドラインとなるものです。米国国防総省(Department of Defense)が米国カーネギーメロン大学(CMU)に設置した,ソフトウェア工学研究所(SEI)で考案されました。CMMIでは,組織の製品,サービスの開発,調達能力などを5または6段階のレベルで評価します(後述する「段階表現」では5段階)。組織のプロセスの改善度合いが,このレベルにより表わされます。

 2006年8月にCMMI for Development (CMMI-DEV), V1.2 model(開発用CMMI V1.2)がリリースされ,現在「CMMI」という場合は,このV1.2を示します。

 CMMI V.1.1は,日本語訳がリリースされており,IPAまたはSEIのWebページから無料で入手することができます。日本語の書籍CMMI標準教本も出版されています。CMMI-DEV V1.2の日本語訳も発行される予定です(2007年3月時点ではまだ発行されていません)。

CMMIの5段階の成熟度レベル

 CMMIには,「段階表現」と「連続表現」という2つの表現方法があります。ソフトウエア開発の組織では,一般に段階表現を使う場合が多いので,ここでは段階表現の場合の成熟度レベルについて解説します。段階表現と連続表現の違い,それぞれの詳細については,先述したWebページのCMMI V.1.1の日本語訳を参照してください。この部分については,V1.1とV1.2の違いはありません。

 段階表現では,組織の成熟度を表1に示すように5つの段階に分けて評価します。各段階はプロセス改善における改善の段階を定義したものです。CMMIを利用したプロセス改善では,はじめに,現状のプロセスの状況を診断し,不十分な部分を改善し,より高いレベルに到達するように継続して改善を続けます。

表1●段階表現における5つの段階の概要
表1●段階表現における5つの段階の概要
[画像のクリックで拡大表示]

CMMI開発の経緯

 冒頭でご説明したように,CMMIは,米国国防総省(DOD)がスポンサーとなって開発したものです。DODがCMMIを開発した経緯を理解することで,CMMIの効果や,CMMIがプロセス改善に役立つ理由を知るヒントとなります。開発の経緯は以下のとおりです。

 DODは大量のソフトウエアの開発・保守を発注していましたが,ソフトウエアの品質,納期,費用の増加が課題となっていました。

 1980年代のはじめ,ソフトウエアの品質,納期,費用の増加という問題を認識したDODは,その解決策を公募しました。そしてカーネギーメロン大学の解決策が採用され,その結果,ソフトウェア工学研究所(SEI)がカーネギーメロン大学に設置されました。同時に,Watts S. Humphrey博士をSEIに迎え入れ,SEIがソフトウエアエンジニアリング向けのプロセス改善モデルの開発を開始しました。

 SEIは「システムや成果物の品質は,それを開発し保守するために用いられるプロセスの品質によって大きく影響される」という前提に立って,プロセスの改善のための研究を進め,1991年にソフトウエア向けCMM(Capability Maturity Model for Software: SW-CMM)の最初の版をリリースしました。

 この能力成熟度モデルが役に立つことが分かり,表2のような能力成熟度モデルが各所で開発されました。

表2●様々な能力成熟度モデル
表2●様々な能力成熟度モデル
[画像のクリックで拡大表示]

 各種の能力成熟度モデルが多くの組織に役立つことが分かってきましたが,別々に開発された複数のモデルを同時に適用するのは,一貫性に欠けるだけでなく,トレーニングやアプレイザル(プロセスの状況診断),改善活動に手間がかかるなどの問題がありました。そこでSEIが,以下に示す3つのモデルを統合して,CMMI(Capability Maturity Model Integration,能力成熟度モデル統合)を開発しました。

(1) ソフトウェア能力成熟度モデル(SW-CMM) V2.0草稿(The Capability Maturity Model for Software v2.0 draft C)
(2) システムエンジニアリング能力モデル(SECM,The Systems Engineering Capability Model)
(3) 統合成果物開発能力成熟度モデル(IPD-CMM) V0.98(The Integrated Product Development Capability Maturity Model V0.98)

 CMMIは,2000年の11月にV1.02がリリースされ,その後改善が続き,2002年1月に,V1.1がリリースされました。現在は,2006年8月にリリースされたV1.2が最新版となっています。

 以上のようにCMMIは,DODがスポンサーとなり,SEIが開発した能力成熟度モデルです。その元々の目的は,DODが発注するシステムの開発,保守を行う組織の成熟度を評価し,向上させることで,より良い品質のシステムを納期どおりに,より安価に調達することにあります。この目的から分かるように,CMMIに基づいて,組織のプロセス改善を行うことは,組織で開発,保守するシステムの品質の向上,原価低減,納期の短縮に役立つと考えられます。現在では,このプロセス改善の考え方は民間企業でも広く利用されています。

 実際に民間の企業でどの程度使われているのかを,SEIの報告である「Process Maturity Profile」で知ることができます。ここには,CMMIの適用状況が,統計データとして報告されていて,民間,政府からの受注組織,政府関連組織での適用状況の報告も含まれています。

 これによれば,CMMI V1.02がリリースされてから,2006年6月までにCMMIを利用してプロセスを評価し,結果をSEIに報告したプロジェクトの68%が「Commercial/In-house」に分類されています。つまり,政府系よりも民間に多く利用されているのです。