Contents 目次
CMMとは
CMMとは「Capability Maturity Model (能力成熟度モデル)」の略で、システム開発に必要なプロセスを、組織の成熟度レベルに応じて導入できるように体系的にまとめたモデルのことです。CMMはもともと政府のソフトウェア開発請負業者を評価するためのツールと位置づけられていました。その後、ソフトウェア開発だけでなく、他の分野にも適用できるよう拡張され、現在では、ITサービス、製造業、医療、政府など、さまざまな分野で利用されています。
経済産業省は日本版CMMを導入し、品質向上やコスト削減を促進しています。開発プロセスの不備が品質低下やコスト増大の原因となるため、製造業やメーカーはCMMの取得に注力しています。
CMMのモデル構築が始まった背景
1970年代に入ると、技術の進歩によりコンピュータが普及し、より広範な用途に利用されるようになりました。コンピュータの導入費用も削減され、多くの組織が情報システムの構築に動き出したことにより、ソフトウェア開発の役割が大きくなりました。
経験の少ない専門職の人が開発に対応することで、ソフトウェア開発プロジェクトが失敗に終わることが増えてしまいました。開発者のスキルに合わせた開発が実施できるように考えられたモデルがCMMです。
CMMIとの違い
CMMIは「Capability Maturity Model Integration」の略で、CMMをベースにして発展した総合的なフレームワークです。CMMIはCMMの制約に対処し、単なるソフトウェア開発に留まらず、システムエンジニアリング、プロジェクト管理、買収、サービスなど、広範な領域を網羅したモデルを指します。
CMMIを活用すると、異なる分野での能力を総合的に評価・向上させ、組織がプロセスの改善に対して包括的なアプローチを取れるようになります。
CMMとCMMIの違いは以下の表の通りです。
項目 | CMM | CMMI |
範囲 | ソフトウェア開発プロセスに焦点 | ソフトウェアエンジニアリング、システムエンジニアリング、プロジェクト管理、買収、サービスなど、広範な分野を網羅 |
統合 | ソフトウェア開発ドメイン内の個々のプロセスの成熟度に焦点 | 組織内での異なるプロセス領域と専門分野の統合を強調し、コラボレーションと一貫性を促進 |
成熟度と能力レベル | 成熟度レベルに焦点 | 成熟度レベルと機能レベルの導入、能力レベルにより能力をより詳細に評価 |
評価方法 | 旧来の評価方法 | 最新の評価方法で柔軟性とオプションが増加 |
アップデートと進化 | 大幅な更新は行われていない | 反復と更新を経て進化、最新バージョンではシンプルさ、拡張性、パフォーマンス向上に重点 |
CMMにおける5段階の成熟度レベル
CMMにおける5段階の成熟度レベルを以下の表で詳しく説明します。
レベル1: 初期段階。レベル2に到達していない段階。 |
ソフトウェアプロセスは不安定で、時には混沌としたものとされる。ほとんどのプロセスが定義されず、成功は個人の努力に依存する |
レベル2: 繰り返し実施できるレベル。 |
基本的なプロジェクト管理プロセスが確立され、コスト、スケジュール、機能充足性の確認が可能。同様のプロジェクトに関しては、以前の成功経験を反復するプロセス規律がある |
レベル3: 標準プロセスが文書化されているレベル。 |
ソフトウェアプロセスが文書化、標準化、そして統合化され、「組織の標準ソフトウェアプロセス」として承認され、テーラーリングされたバージョンが全てのプロジェクトで使用される |
レベル4: プロセスが明確な数値や数量で管理されているレベル |
詳細な計測結果がソフトウェアプロセスおよび成果物品質に関して収集される。ソフトウェアプロセスと成果物は、定量的に理解され制御される |
レベル5: 継続的にプロセス改善できるレベル |
継続的なプロセス改善が可能で、革新的なアイディアや技術の試行、プロセスからの定量的フィードバックによって促進される |
「成熟度レベル」は、ソフトウェアプロセスが成熟するまでの進化の段階を表しています。各成熟度レベルは、プロセス改善を継続的におこなうための基盤ごとの層を規定しています。
また、レベルごとに、プロセスのゴールを設定して構成されているのが特徴です。それぞれのゴール達成によって、ソフトウェアプロセスの重要なコンポーネントが安定します。
成熟度の各レベルを達成することによって、ソフトウェアプロセスの各コンポーネントを確立させ、結果的に組織のプロセス能力が高まることになります。
成熟度レベルを向上させるプロセス
成熟度レベルを向上させるためのプロセスは、まず現在の成熟度レベルを把握するところから始めます。
成熟度レベルに到達するための主要な活動を特定してゴール設定し、ゴールを達成するためのプロセスを実践します。
成熟度レベルの把握
まずは、成熟度レベルを把握することが重要です。
CMMの成熟度レベルは5段階に分かれています。成熟度レベルは、ソフトウェア組織が発展する方向性を示し、各レベルはプロセス能力を表します。
プロセス能力は、特定のプロセスに従ってソフトウェア開発が行われた際に期待される品質、費用、納期などの成果の範囲を指しています。
組織としてのプロセス実績の目標を、QCD(品質、コスト、納期)の視点から明確にしたうえで、プロセス改善に取り組む必要があります。そのためには、成熟度レベルの構造と現在のレベルを正しく把握しておくことが大切です。
プロセスエリアの把握・実践
プロセスエリアとは、成熟度レベルに到達するための主要な活動を特定するものです。
上位の成熟度レベルのキープロセスエリアを効果的かつ効率的に実践するには、それより下位の成熟度レベルのキープロセスエリアが、組織に定着した形で実践されていることが求められます。
プロセスエリアごとのゴールの設定
プロセスエリアには、達成すべきゴールが定義されています。プロセスエリアには、各エリアごとに2つから4つのゴールがあり、合計52のゴールが設定されています。
複数におけるキープラクティスに対応する作業すべき項目を確認しましょう。一連のプロセスがゴールの趣旨を満たしているかがポイントです。プロセスエリアごとのゴールは、次項で解説するプラクティスとも関連付けられています。
ゴールを達成するためのプラクティスの設定・実践
ゴールを達成するためのプラクティスは、以下に挙げる「5つの視点」から構成されています。
- 実施される活動
- 実施のコミットメント
- 実施能力
- 計測と分析
- 履行検証
5つの視点から、組織やプロジェクト内の活動が効果的に行われているかを判定します。
プラクティスを実践することでゴールを達成し、成熟度レベルの向上へとつながるのです。
成熟度レベルを上げるうえでの注意点
成熟度レベルを上げる取り組みでは、プロセス能力の向上(レベルの達成)を主眼に置くのではなく、プロセス実績の向上に焦点を当てた改善活動に取り組むことが重要です。
組織としてのプロセス実績の目標(品質、コスト、納期などの視点)を正しく設定し、計測と分析を通じて常にプロセス改善の効果を確認しましょう。
また、成熟度レベルの認定は、自社のプロセス改善に向けた意識向上を得ることを目的とします。多くの企業が、外部からの注目を集めるためにアピールポイントを重視し、高いレベルでの認定を求めています。
しかし高いレベルの認定を得ても、それが表面的なものに過ぎないため注意が必要です。
まとめ
CMM(能力成熟度モデル)は、ソフトウェア組織の成熟度を示すモデルです。経済産業省も日本版CMMを導入し、品質向上とコスト削減を推進しています。
成熟度レベルの向上には、現在のレベルを把握し、上位の成熟度レベルのプロセスエリアを実践することが重要です。