Monday, November 17, 2008

CMMI

http://itpro.nikkeibp.co.jp/article/lecture/20070405/267507/

CMMIって何だろう

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」に分類されています。つまり,政府系よりも民間に多く利用されているのです。


CMMI V1.2の概要

●構成

 CMMIは,CMMI標準教本モデルな どに記述されているモデルに加え,プロセス改善に必要なプロセスの評価方法(アプレイザル方法),トレーニングなどから成り立っています。これらの CMMI関連の成果物一式をまとめたものを「CMMIプロダクト一式」(CMMI Product Suite)と言います。以下,それぞれについて,概要を紹介します。

●モデルの概要

 CMMIV1.2には,以下の表に示すように3種類があります。従来のCMMI V1.1は,「CMMI for Development」と名前を変え,「CMMI for Acquisition」と「CMMI for Services」が今後追加されることになっています。この3つは,共通の基本部分にそれぞれに固有な部分を追加した形となっており,まとめて利用でき るよう配慮されています。

分類
内容
入手方法
CMMI for Development 開発用CMMI。
プロダクトおよびサービスの開発と保守が対象範囲。以下の3つの専門分野がある。
・ハードウェアエンジニアリング
・システムエンジニアリング
・ソフトウェアエンジニアリング
英語版はSEIのWebから無償で入手できる。
ADDISON WESLEYから書籍も発行されている。
V1.2の邦訳は,2007年3月時点では発行されていない
CMMI for Acquisition 調達を行う組織のプロセス改善のガイド 以下のドラフト版がSEIのwebから入手できる。
(1)CMMI Acquisition Module,Version 1.1
(2)Adapting CMMI for Acquisition Organizations: A Preliminary Report
まだ,正式版は発行されていない
CMMI for Services サービスを行う組織のプロセス改善のガイド まだ発行されていない
表3●CMMIV1.2の種類

●トレーニングの概要

 CMMIV1.2の正式なトレーニングの種類と概要は以下のとおりです。CMMI入門コースを日本のSEIパートナーが実施する場合には,日本語を使うのが普通です。

コース名
概要
期間
実施

CMMI入門
(Introduction to CMMI Version 1.2)

CMMIの基本的なコンセプトについてについて概要を説明する。
システムの開発担当者,改善の担当者,アプレイザルのメンバーとなる方が主な対象。
アプレイザルのチームメンバーになるには必須
3日間 SEI
SEIパートナー
CMMI中級
(Intermediate Concepts of CMMI Version 1.2)
CMMIのコンセプト,モデルの詳細を説明する。
リードアプレイザ,インストラクタの候補者が主な対象
5日間 SEI
CMMI入門インストラクターコース
(CMMI Version 1.2 Instructor Training)
CMMI入門コースのインストラクタ養成コース
このコースの終了試験に合格した後,実際に教育をしているところを試験官が観察,合格するとインストラクタとなることができる
3日間 SEI
SCAMPIリードアプレイザコース
(SCAMPI Lead Appraiser Training)
リードアプレイザ養成コース。リードアプレイザは,CMMIのもっとも正確なアプレイザルを実施できる資格。 このコースの終了試験に合格した後,実際にアプレイザルをしているところを試験官が観察,合格するとリードアプレイザとなることができる 5日 SEI
SCAMI B Cチームリーダコース
(SCAMPI B and C Team Leader Training)
チームリーダー養成コース。チームリーダーはクラスB,Cという簡易的なアプレイザルを実施できる資格。 このコースの終了試験に合格した後,実際に教育をしているところを試験官が観察,合格するとチームリーダーとなることができる 4.5日 SEI
表4●CMMIV1.2の正式なトレーニングの種類と概要

●アプレイザルの概要

 CMMIのモデルを使って,組織のプロセスの状況を診断することを「アプレイザル」と言います。客観的で,ばらつきのない結果を得るために,アプ レイザルの方法,レベル判定の基準などが,明確に決められています。また,正式なアプレイザルをするには,SEIの認定を受けた「アプレイザ」が診断する 必要があります。

 アプレイザルは,以下の表に示すように3種類あります。完全で,最も正確なのがクラスAのアプレイザルです。クラスCは期間も短く,手間も少ない のですが,正確さの面ではクラスAに劣ります。クラスBがその中間です。CMMIのレベル判定ができるのはクラスAのアプレイザルだけです。


クラスA
クラスB
クラスC
調査方法 ドキュメント確認およびインタビュ- ドキュメント確認およびインタビュ- ドキュメント確認およびインタビュ-
調査量
レベル判定 不可 不可
責任者の資格 リードアプレイザ チームリーダー チームリーダー
アプレイザルのチーム人数 通常7~8人程度。
(規定での最少:4人)
通常6人程度。
(規定での最少:2人)
通常3人程度。
(規定での最少:1人)
診断期間の例 2~4週間以上 2週間程度 1週間程度
実施規定 Standard CMMI Appraisal Method for Process Improvement (SCAMPI), Version 1.2: Method Definition Document Handbook for Conducting Standard CMMI Appraisal Method for Process Improvement (SCAMPI) B and C Appraisals, Version 1.1
表5●アプレイザルの種類

CMMIの適用状況

 各社のCMMIの導入状況は,新聞,ホームページなどでの発表,SEIからの発表により,知ることができます。

 また,正式なアプレイザルを実施した場合,結果をSEIに報告する義務があります。SEIはこの結果を集計し,報告資料であるMaturity Profileなどを作ります。これらは,Published CMMI Appraisal Resultsとして公表されています。さらに,個々の報告結果を公開することを承認した会社のデータもPublished Appraisal Results Listとして,公開しています。

 2006年9月発行のProcess Maturity Profileによると,各国のアプレイザル件数は表6のとおりです。アプレイザルはプロセスの診断であることから,この件数は各国のCMMIを用いたプロセス改善への取り組みの状況をほぼ表していると考えられます。

表6●各国のアプレイザル件数
表6●各国のアプレイザル件数
●日本の状況

 2001年に経済産業省から,「日本版CMM構想」が発表されました。各社はCMMのレベルを満足しないと公共関連の仕事ができなくなる可能性が あると考え,一挙に広まりました。2007年3月現在,CMMIのレベル達成は,国内では調達時の必須条件とはなっていませんが,プロセス改善のために導 入する企業は増えています。

 各社のCMMIの導入状況は,新聞,ホームページなどでの発表,SEIからの発表により,知ることができます。前述のように,正式なアプレイザル を実施した場合,結果をSEIに報告する義務があります。これをベースとしたSEIの報告や,各種の発表によれば,国内では,大手コンピュータ・メー カー,ソフトハウスなどがレベル3を達成し,レベル5の組織も増えつつあります。

CMMIの効果

 プロセス改善関連の学会などで,CMMIを適用した結果が論文やプレゼンテーションで報告されています。これをまとめた,Performance Results of CMMI-Based Process Improvementが,SEIのテクニカルレポートとして公開されています。このレポートによると,コスト,スケジュールなどの改善度合いは次の表のとおりです。

表7●CMMIによるコスト,スケジュールなどの改善度合い
表7●CMMIによるコスト,スケジュールなどの改善度合い

CMMIを適用したプロセス改善

 CMMIは,プロセス改善のためのガイドなので,効果的に適用することでプロセスをQCD(品質,コスト,納期)の改善に役立てることができます。一方,「CMMIを採用したけれど手間ばかりかかって効果がない」という声も聞きます。

 この違いは,CMMIをプロセスの改善のガイドとして利用しているのか,レベル達成を目的としているのか,にあるようです。

 CMMIをプロセス改善のガイドとして利用する場合,はじめにCMMIのモデルと,現状の組織のプロセス状況との違いを調べます。これを「ギャッ プ分析」と言い,実際にアプレイザルを行うのが効果的です。資格のあるアプレイザを見つけ,コンサルテーションやギャップ分析のためのアプレイザルを依頼 するのがよいでしょう。資格のあるアプレイザは,SEIのwebで公開されているSEI Partner Network Directory: SEI Partner Directory Searchで見つけることができます。

 次にギャップ分析で見つけた不十分な部分を改善します。

 ここで重要なことは,分析の結果見つかったギャップを埋めるための変更が,“本当の改善”であることです。CMMIのモデルをよく理解していない 場合,CMMIを誤解して,“改善にならない変更”を行ってしまう恐れがあります。特に,レベル達成を目的とした場合,過大に解釈した必要のないプロセス を導入する可能性が高くなります。

 改善し,それが定着したら,再度アプレイザルをして改善の状況を確認します。そして新しく見つかったギャップの改善に取り組みます。これを繰り返します。

●ISOなどとの関連

 CMMIのモデルは,プロセスを見る“一つの見方(ビュー)”に過ぎません。ほかにも,ISO9000,ISO10554,ISO16949などの,いろいろな見方があります。

 これらのどれを使って評価するにしても,開発プロセス自体をモデルや規格に合わせる必要は全くありません。各規格,モデルの見方で評価し,不十分 な点を見つけ出し,対策は,各組織で最良と考える方法で行えばよいのです。また,これらの規格は互いに背反するものではなく,同時に適用することが可能で す。

●コンサルタントの活用

 CMMIのモデルには,非常にたくさんのことが書かれています。この中には必須の部分だけでなく,参考として書かれている部分もあります。この中 から,自分の組織に役立つ部分を採用して必要十分なレベルでプロセスを規定し,実施します。CMMIの理解が足りない場合,モデルを過大に解釈して,実施 の負荷が高い,重いプロセスを作ることが多いようです。このようなことを避けるためには,経験のあるコンサルタントに依頼するのが効果的です。

■変更履歴
内容を変更・更新しました。本文は修正済みです。 [2007/04/12]

No comments: