Q:まず、CMMIについて、説明してください。
|
臼井: 歴史的には、80年代、米国国防総省がカーネギー・メロン大学に、ソフトウェア開発の標準化について研究させたことに始まります。
それまでのソフトウェア開発は、ひとり、または少数の天才や職人肌のプログラマが、彼らの感性と努力によって生み出してきた側面がありました。プログラマが天才なので、経験と勘、度胸のようなものに依存していた訳です。ところが、80年代ともなるとコンピュータが高度化してきて、プログラム自体も大きく、複雑になってきました。締め切り・納期は厳しく、スピードも要求されるようになってきた。そこで、プログラム開発の現場ではチームを編成して取り組まざるを得ない状況になってきました。
チームで取り組むことは、天才や職人のパワーを求められないうえ、品質、コスト、納期が読めるようになるなどの利点があります。そのぶん、全体をどう管理するかという別の課題もでてくるのですが。
そこで、国防総省は、「ソフトウェア開発をなんとか標準化できないか?」と考え、カーネギー・メロン大学に研究させたわけです。いわば成功したソフトウェア開発の手法をいいとこどりして、成功するソフトウェア開発とはどんなものか、をまとめさせたのですね。
そして、同大学が研究成果としてあげたのが、CMM(Capability Maturity Model)です。
|
Q:いきなりCMMIが生まれたのではないのですね?
|
臼井:CMMとは、ソフトウェア開発のプロセス改善を組織的に進める実践方法です。
ソフトウェアの品質はプロセスの品質に依存している、そしてプロセスの品質を上げるためには改善力を強化する必要がある、そのためにはソフトウェア開発プロセスの成熟度を定義し(成熟度モデル)、あるべき理想的な姿(CMMフレームワーク)と比較して開発プロセスを評価する、さらにその評価に基づき改善を実施していく、という一連の流れですね。この一連の流れを何度も繰り返せばより完成度の高い開発プロセスが実現する、これがCMMです。
|

図1 CMM®とは改善と見つけたり
※クリックして拡大図をご覧下さい
|
その後、CMMからSW-CMM(Software-CMM)、SE-CMM(System Engineering-CMM)、IPD-CMM(Integrated Product Development-CMM)が派生しました。
そして、それらが統合(Integration)してCMMIになりました。日本語に訳せば、「能力成熟度モデル統合」となります。

遠藤:CMMIは、「プロセスを重視すれば、いい成果物が得られる」という発想に基づいています。開発にあたり、こんなところに気を付ければうまくいきますよ、という標準的な姿を示しているのです。
|

図2 CMM®段階モデル
※クリックして拡大図をご覧下さい
|
Q:具体的に、もう少しお願いします。

臼井:CMMIはもっとも初期段階のレベル1から最適化している状態のレベル5までがあります。各レベルでそのレベルにあわせてクリアしなければならない条件、課題があり、例えばレベル3では、その条件、課題すべてで合格点を得た場合、「レベル3を達成した」といえることになります。
|
課題は、たとえばレベル1からレベル2への場合では、

1.要件管理
2.プロジェクトの監視と制御
3.供給者合意管理
4.プロセスと成果物の品質保証
5.プロジェクト計画策定
6.構成管理
7.測定と分析

の7つの分野(プロセス領域)が設定されています。

プロセス領域はさらに共通ゴール・固有ゴールに分類され、その下にプラクティスとよんでいる項目があります。レベル3までで300以上のプラクティスがあり、それらすべてで合格点をとらないといけません。
レベル2までは「きちんと管理されているか」が中心テーマですが、レベル3以上になると「組織的かどうか」「プロジェクトに適したカスタマイズがされているか」といったあたりが中心テーマになります。
|

図3 CMM®のレベルとプロセス領域
※クリックして拡大図をご覧下さい


図4 日立ソフトでの改善状況
※クリックして拡大図をご覧下さい
|
CMMIの成熟度レベル判定は会社単位の場合もありますが、事業部ごとに判定を受けている場合が少なくありません。日立ソフトの場合、02年1月に公共システム本部が現ヴァージョンのV1.1で世界初のCMMIレベル3を達成したのを皮切りに、現在では4つの事業部すべてがレベル3以上、産業システム事業部にいたっては04年10月にレベル5を達成しています。
|