ソフトウェアプロセスの改善を考える
特集 いま話題のCMMとは何か?

NEC
宮下洋一(システム企画本部 技術企画統括マネージャー)
込山俊博(Eラーニング事業部 エキスパート)
2001/9/28

2 ソフトウェアのプロセス改善とCMM

 ソフトウェアのプロセス改善、あるいはそのモデルであるCMM自体は、決して新しいものではない。その背景にあるのは、ソフトウェアの規模の拡大や生産性の問題、ソフトウェアが情報機器の開発に大きな影響を与えるようになったことなどだ。そのため、ソフトウェアのプロセス改善は、20年以上前から重要な課題として多くの試みがなされてきた。CMMのような成熟度モデルという考え方が生まれたのも、同じ1980年代だ。

 ソフトウェアの開発プロセスは、“目に見えにくく実態がつかみにくい”、“技術者個人の能力に大きく依存し、個人差が大きく結果のばらつきも大きい”、“技術の進歩、変化が激しく、開発ツールや技法もすぐに陳腐化してしまう”、といった性格がある。従って、プロセスを改善するといっても、その道筋は非常に多様であり、単純な筋書きを描くことは難しい。

 そうはいっても、ソフトウェアの開発をうまく行っている組織とそうでない組織とを比較すると、そこには明らかな違いがある。また、開発がうまくいく組織、そうでない組織ともに、分析するとそれぞれ共通のパターンを持っている。

 例えば、ソフトウェアの開発に問題を抱えている組織には、次のような特徴がある。

  • スケジュールと費用について現実的な予測が行われていないために、慢性的な予算超過の状態が続く厳しい納期を課せられると機能、品質を落とす
  • レビュー、テストなどの品質強化作業は、スケジュールが遅れてくると縮小または省略される
  • 開発作業についての規定があっても守られない、または強制されることはない

 一方、ソフトウェアの開発を非常にうまく行っている組織には、次のような特徴がある。

  • プロセスは全員に正確に伝えられ、作業は効率的に遂行される
  • プロセスが定義され、遂行上の役割と責務が明確になっている
  • 必須のプロセスは省かれずに実行される
  • 品質判定とプロセスの問題分析を行うための定量的な基盤がある
  • スケジュールと予算は実績の履歴に基づいており、現実的である

 ソフトウェアを開発するどのような組織においても、このような望ましい開発スタイルを実現しようと改善が試されている。しかし、その改善の進行は思いのほか時間がかかるものであり、一朝一夕に達成できるものではない。継続的な努力を必要とする。そして継続的なプロセス改善を積み重ねた結果、ソフトウェアの開発方法について組織的に学習し、成熟していく過程をモデル化したのが、プロセス成熟度モデルとなる(図1)。

図1 ソフトウェアのプロセス改善の過程

■SEIのCMMモデルとは?

 ソフトウェアプロセスの成熟度モデルを最初に提唱したのは、米国カーネギーメロン大学ソフトウェア工学研究所(SEI)のハンフリー教授である。ハンフリー教授はソフトウェア開発組織の実態を分析して、5つの成熟段階から構成されるモデルを提示した。このモデルの改定版であるCMM Ver1.1が、現在デファクトスタンダードとして世界的に使われている。SEIでは、このモデル自体を説明したドキュメントに加えて、モデルを使ったソフトウェアプロセスの評価方法、および評価者(アセッサ−と呼ぶ)のトレーニングプログラムと資格認定制度を提供している。ここでは、CMMの目的や利用状況を概説したあと、次節でCMMの詳細について説明する。

 成熟度モデルをベースとしたプロセス評価を実施する目的には、次の2つがある。

(1)自組織のプロセス改善(SPA:Software Process Assessment)のため
 成熟度モデルに照らして現状のプロセスを分析し、その強み、改善課題を抽出するために利用する場合である。
改善の進捗状況を次のアセスメントでフォローして確認するような利用形態がとられる。

(2)開発ベンダの評価選定(SCE:Software Capability Evaluation)のため
 能力の高い開発ベンダ、外注先を選定するために利用する場合である。例えば、発注先の候補として、一定レベル以上の成熟度の達成を条件に設定するような場合である。

 CMMはもともと、米国の国防総省をはじめ、政府関係の開発物件に対するベンダの能力を評価する方法として利用されることを念頭に開発されたものである。当初は、主に防衛関連の開発などに使われていた。しかし、最近では一般企業での利用が急速に増え、公表されている評価実績数の約3分の2が、商用ソフトあるいは内部利用ソフト開発への適用となっている。また、その適用目的としては自社組織の改善のための利用が多い。

 CMMは世界中で普及しており、適用実績は43カ国(2001年8月現在)に上る。特に最近はインド、中国などのアジア諸国政府が、国の基盤産業としてソフトウェア産業の強化を進めるため、CMMの活用を国の政策として積極的に勧めている。特にインドのソフトウェア開発企業は、成熟度レベルの最高水準であるレベル5を取得している企業が多い。

 わが国でも、前述したように、経済産業省を中心としてプロセス評価手法の普及を促進するための施策が検討されている。また、以前から国内企業もCMMに準拠したプロセス改善の活動は行われていた。ただし、言語の壁(英語でアセスメントを実施する必要があった)もあり、CMMの公式なアセスメント(認定資格を有するアセッサーによる評価)を実施した企業の数はそれほど多くはないが、今後は急速に増えると予想される。

2/4
能力成熟度をモデル化したCMM

Index
いま話題のCMMとは何か?
  1 CMMが注目を集めている理由
2 ソフトウェアのプロセス改善とCMM
  3 能力成熟度をモデル化したCMM
  4 CMMのあるべき姿を考える
自分戦略研究所、フォーラム化のお知らせ

@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。

現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新着記事は、 新しくなったトップページよりご覧ください。

これからも、@IT自分戦略研究所をよろしくお願いいたします。