ソフトウエア開発プロセスの策定や改善を真剣に検討するユーザー企業やベンダーが増えている。しかし、開発プロセスの改善にはさまざまな問題点がある。
ソフトウエアは実体を持たない成果物なので、改善の評価が難しい。技術の進歩が早く、知識や経験がすぐ陳腐化する。開発そのものがユーザー要件やハードウエアなどの外部要件に左右される。こうした特性を持つソフトウエア開発プロセスに対して、効果的な改善を行うためには、成果物(ソフトウエア)に直接的に着目するだけでは効果的でない。まず、開発を行う組織自身が自発的にプロセスを改善することによって、より高いレベルの成果を生み出していくことが必要になる。
現在のソフトウエア開発プロセスは、複数のプロジェクトからなることが多い。プロセス全体の最適化を実現するためには、優先するプロジェクトを決め、プロジェクトマネージャーや要員の配置などを最適化しなければならない。しかし、その判断がプロジェクトマネージャーという個人に委ねられるとプロセスのバラツキが大きくなり、全体の最適化が困難になる。
また、ソフトウエア開発の進捗状況によっては、要員の追加や変更、利害関係者との交渉などを臨機応変に行わなければならない。その際にも、マネジメント手法が統一されていないと、現場の状況を把握するだけでも時間がかかってしまい、対策が遅れてしまうことになる。
そのため、組織全体のノウハウを盛り込んだ標準プロセスを整備することによって、組織的なプロジェクトマネジメントを推進することが必要になる。
|
 |
そこで今、注目されているのがCMM(Capability Maturity Model能力モデル成熟度)とその後継版CMMI(Capability
Maturity Model Integration=能力モデル成熟度統合)だ。
CMMの策定は1980年代に納期遅れや予算超過などソフトウエア開発のトラブルに悩まされた米国国防総省がトラブル防止指針の作成を米カーネギーメロン大学に依頼したことがきっかけだ。
そのために設立されたカーネギーメロン大学ソフトウエア工学研究所(SEI)では、契約相手のソフトウエア開発能力を測定する方法を開発した。これがCMMである。CMMは当初、ソフトウエアの開発プロセスを評価・改善するために作られたので、正確にはCMM
for Software(SW-CMM=ソフトウエアCMM)と呼ばれる。
CMMの特徴は、ソフトウエア開発のプロセス全体に焦点をあてていることだ。ソフトウエアの品質を低下させる原因やプロジェクトの混乱を引き起こす要因を開発プロセスの中で突き止め、プロセスを改善することで、より優れた成果を生み出そうという考え方が基本になっている。
その後、開発領域全体にわたるプロセスの効果的、効率的な改善を目的に発表されたのがCMMの後継版CMMIなのである。
|
 |
CMMIでは、開発領域のモデルが、組織的なプロセス管理を行う「プロセス管理」、プロジェクトの制御・開発を行う「プロジェクト管理」、開発・保守を行う「エンジニアリング」、プロセスの品質保証や成果物のバージョン管理などの支援活動を行う「支援」の4つに分類されている。
そして、プロセスの進化(成熟度)は、プロセスが定義されていない「初期状態」のレベル1から開発プロセスを継続的に改革しており、問題の原因を分析し、解決できる「最適化状態」のレベル5までの5段階に規定されている。これにもとづいて、各組織はプロセスごとの組織の成熟度を客観的に評価していくのである。
では、プロジェクトマネジメントの標準プロセスの策定や改善過程にこのCMMIをどのように取り入れたらよいのだろうか。
まず、新しく作り上げる標準プロセスは現場のやり方と乖離していないものを作る必要がある。そのためには、現場の優秀なプロジェクトマネージャーのやり方を集め、それを分析して標準プロセスのたたき台を作る。そして、実際のプロジェクトに何度も適用して、現実と標準プロセスの間のギャップを埋め、標準プロセスを作り直していく。この過程は継続的な改善活動であり、ここでCMMIを活用して、その組織の現場の状況を反映させながら、ソフトウエア開発の世界標準に沿った標準プロセスを作りだしていくのである。
CMMIは成熟度が5段階で規定されているので、改善すべきプロセスの順番がわかる。そのため、標準プロセスの策定や改善を行う場合に、何から着手すればよいかという指針になる。また、CMMIはさまざまなプロセスをもれなく入れることができる整理箱のような役割を果たすので、標準プロセスを策定・改善する場合に、今までのやり方での欠落や不足部分を確認することができる。加えて、世界標準であるCMMIを基準にして、それぞれの組織内の弱点を指摘すれば、現場も納得しやすい。指摘された点は現場のプロジェクトマネージャーも漠然と弱いと感じている点が多く、CMMIにもとづく指摘をきっかけに、組織的に弱点の改善に踏み出すことが可能になる。
さらに、CMMIは世界的に認められた標準モデルなので、それを取り入れる事によって、共同開発を行うパートナー企業やベンダーとのプロセスとのズレをなくすことが可能になり、利害関係者との調整に役立てることができる。そのほか、プロセス改善活動の実現目標としての役割を果たす点もメリットだ。CMMIによる組織のレベル付けは、より高いレベルを達成しようという目標を現場に与え、改善活動を継続させる大きな原動力となる。
このように、CMMIはシステム開発の現場からかけ離れた特殊なものではなく、求められるプロジェクトマネジメントのやり方を実現していくプロセス改善活動そのものなのである。
CMMIでは、蓄積したプロジェクトのノウハウと経験をもとに、組織的に開発プロセスの改善活動を継続することを、CMMIレベル3での標準プロセスとして定義している。このような標準プロセスが実現されれば、その組織では継続的なプロセス改善活動が定着し、より高い目標の達成へとプロセスの最適化を進めていくことが可能になる(図)。この点に、プロジェクトマネジメントにCMMIを導入することの非常に大きな意義があるといえるだろう。
|
 |
では、CMMIはどのような分野に適用できるのだろうか。
CMMIはハードウエアやソフトウエア、さらにそれらを含めたシステム製品やサービスを提供する組織を主な活用対象としている。CMMと同じようにソフトウエア開発のみを改善対象とすることもできるが、異なる分野にまたがるプロセス改善活動に活用することで、CMMIの「統合」の意味が生きてくる。例えば、組み込みソフトウエア分野のプロセス改善活動では開発全体を見直す必要があることが多い。ところが、SW-CMMではハードウエア開発グループと連携しづらく、開発グループ間の垣根を越えて改善活動を進めることが難しかった。しかし、CMMIはシステム全体に対して適用できるため、活動範囲が広がるとともに、より上位の管理者を改善活動の責任者として巻き込みやすくなる。
システムインテグレータにとっても、CMMIは魅力的だ。CMMIはシステム開発全体にわたるライフサイクルをカバーしている。とりわけ、要件定義からアーキテクチャ設計、各種の構成要素の開発、外部からの製品調達や統合などのエンジニアリング面の記述が充実している。そのため、システム開発のライフサイクルの一部だけを担当する場合でも、CMMIではプロセス領域の選択が可能であり、利用しやすくなっている。
また、CMMIは複数の分野にまたがって開発する組織も対象にしているので、大規模組織向けという印象があるかもしれない。しかし、CMMIでは実践が期待される活動を定義したプラクティスの記述の抽象度が上がり、現場での解釈と適用の幅が広がったため、小規模組織でも解釈・適用しやすくなった。その意味では、CMMIを導入する場合に、対象組織の規模の大小にとらわれる必要はない。
|
 |
最後に、CMMI導入を成功させるためのポイントを2点、指摘しておきたい。
その第1は、レベル達成は自己目的化すべきでないということである。プロセス改善活動のそもそもの動機は、優れたプロダクトやサービスを早く効率的に提供することにある。特に、CMMIのようなレベル表現は単純で分かりやすいこともあって、レベル達成自体が目的化しやすい。成熟度レベルや能力レベルは改善活動の進捗を示す目標にはなるが、成果物に対する指標ではない。したがって、プロセス改善活動の達成度を評価するためには、個々の企業の状況に応じた指標を設定しておくことも重要である。
第2は、CMMIは認証や認定の仕組みではないという点だ。SW-CMMやCMMIでは、IS09000シリーズのような認証は行われていない。カーネギーメロン大学は、CMM/CMMIによる評価手法のライセンスを供与しており、組織の能力成熟度のアセスメントを行うリード・アセッサーやリード・アプレイザー個人を認定している。しかし、評価者が行う評価活動の結果を認定しているわけではなく、認証も行っていない。またIS09000シリーズでは認証を維持するためには定期的な更新審査が必要であるが、CMMIにはこのような継続的な評価を義務づける仕組みもない。
このように、CMMIはあくまで組織のプロセス改善のための道具である。したがって、レベルの達成や公表といった評価の側面ばかりを強調することは誤りである。実質的なプロセス改善が実現すれば、対外的なPR効果はそれに付随して自然に生まれてくる。まず、組織全体にプロセス改善とCMMI活用の意義を浸透させ、開発プロセスの改善活動に取り組むことが、確実な成果を生み出すために欠かせない。
さらに、プロセス改革のコンサルティングやさまざまなベンダーから提供されているツールなどを利用すれば、CMMI導入を効率的に進められる。コンサルティングやツールには、各ベンダーの持つCMMIや業務プロセス改革についてのノウハウが反映されている。したがって、個々の企業の実情に合った新たな開発プロセスを短期間に実現していくのに有効である。また、客観的視点で現状を把握しなおすという意味でも、コンサルティングやツールは役立つ。CMMIを活用し、競争力ある企業体質をいち早く実現するためには、これらの力も欠かせないといえるだろう。 |
|
|
|
| |