CMM以上に注目したい
新しいソフトウェア開発プロセス改善PPA

堀田勝美NTTソフトウェア ISO/IEC TR 15504 PPA Lead Assessor
林章浩NTTソフトウェア ISO/IEC TR 15504 PPA Lead Assessor
2002/4/12

2 ソフトウェア開発のプロセス管理とは

ソフトウェア開発組織の成熟とは

 ソフトウェアプロセス管理の歴史は、1986年までさかのぼることができる。米国の国防総省(DOD:Department of Defense)が、調達における供給者の能力向上とその評価に利用するために、カーネギーメロン大学のソフトウェア工学研究所(SEI:Software Engineering Institute)に委嘱し開発したソフトウェア成熟度フレームワークがその始まりである。これは後に、能力成熟度モデル(CMM:Capability Maturity Model)として集大成された。

 ソフトウェア開発組織の成熟は、ISO/IEC TR 15504も含めて以下のような階層で定義されている(図2)。

図2 Guide to Implementation CMMの1〜5段階。この図の見方だが、矢印の先への入力として、矢印の元を利用する。たとえば、図の中心にあるレベル1の活動を、レベル2の評価と成果に入力する

 図2の各段階での管理レベルを簡潔に要約すれば、次のようになる。

(1)レベル1
 レベル1は、図の中心部の「活動」→「成果」を実施できるレベルである。実施して成果を出しているが、その管理は混とんとしている。おそらくはスーパーヒーロー的なプロジェクトリーダーの頑張りで、プロジェクトを進めているような状態を指す。この場合スーパーマンが何かの都合でプロジェクトから居なくなったら、しかるべき品質の成果を出すことができなくなるだろう。

(2)レベル2
 レベル2は、レベル1の「活動」→「成果」の活動の前に「準備」を行い、レベル2の活動の後に「評価」を行えるレベルである。費用、スケジュールおよび機能性を監視するための基本的なプロジェクト管理プロセスが確立されている状態を指す。

 すでにプロジェクトレベルでは、ノウハウ管理ができているから、知識が共有されており、属人性は排除されている。途中でプロジェクトメンバーが入れ替わったとしても同様の成果を出すことが期待できる。あるいはプロジェクト終了後に次期プロジェクトを立ち上げたら、やはり同様の成果が期待できる。しかし、未経験の新しいプロジェクトを立ち上げる場合には、同様の成果は期待できないかもしれない。

(3)レベル3
 レベル3は、レベル2の「準備」や「評価」の活動を、組織の「標準」を用いて実施できるレベルである。管理とソフトウェア開発に関する作業のプロセスが文書化され、標準化され、統合され、プロジェクトは、組織標準で修正したプロセスを使用できる状態を指す。レベル3ではプロジェクトを超えた管理、すなわち組織でのノウハウ共有ができている。新しいプロジェクトリーダーとメンバーを集めて新しいプロジェクトを立ち上げても、組織ノウハウを活用することで同程度の成果を期待することができる。

(4)レベル4
 レベル4は、プロジェクトの活動を「準備」する際に、その「成果」を定量的に予測するレベルである。必要な期待される結果を予測し、プロセスと成果物の品質に対して詳細な測定値が集められ、プロセスと生産物が定量的に理解され制御されている状態を指す。

(5)レベル5
 レベル5は、プロジェクトの活動を「評価」した結果を用いて、「標準」を継続的に改善できるレベルである。学んだ教訓を次の教訓のための利用し、その教訓をさらに次の教訓に利用する状態を指す。

SPAを基点としたSPI

 ソフトウェアプロセス改善(SPI:Software Process Improvement)を実施するためには、ベストプラクティスと現状の乖離(かいり)を把握することで、自組織がどのような状態であるかを知らなければならない。このギャップ分析のための診断をソフトウェアプロセスアセスメント(SPA:Software Process Assessment)という。まずSPAを実施して、その結果を活用してSPIを実行する。そして目標とするプロセス改善を終えた後に再アセスメントを実施し、プロセス改善の成果を確認するという順序を取る。これを繰り返して段階的な改善を進める。

 次の図3は、SEIから提案されている一般的なプロセス改善のモデルである。改善は5つのフェイズからなり、それぞれの頭文字を取ってIDEALモデルと呼ばれている。

  • 初期(Initiating)フェイズ
  • 診断(Diagnosing)フェイズ
  • モデル構築(Establishing)フェイズ
  • 改善実行(Acting)フェイズ
  • 展開(Learning)フェイズ

図3 IDEALモデル

(1)初期フェイズ
 初期フェイズとは、プロセス改善の実施に先立って、改善の動機付けを行い、改善内容の定義や支援体制を確立したうえで、目標設定や計画立案をする。

(2)診断フェイズ
 診断フェイズとは、SPAなどを実施することにより現状を認識する。プロセスの視点からプロジェクトおよび組織の強い点、弱い点を明確にして改善対象のプロセスを明確にしたうえで、改善ポイントの推奨を行う。

(3)モデル構築フェイズ
 モデル構築フェイズとは、診断フェイズで得られた結果を利用して、戦略、優先順位を確定し、プロセス改善推進グループを立ち上げ、具体的な改善計画を作成する。

(4)改善実行フェイズ
 実施改善フェイズとは、作成された計画に従ってプロセス改善の試行、および適用を行う。推進活動を立ち上げてトップマネジメントのコンセンサスを得る一方、プロセスと測定の定義を行ってパイロットプロジェクトでのプロセス改善運営を行う。早い段階で成功事例を作り、ほかのプロジェクトの見本として位置付ける。

(5)展開フェイズ
 展開フェイズでは、前フェイズでスモールスタートしたパイロットプロジェクトの成功事例などのプロセス改善活動を組織全体へ拡大し、上位レベル(目標レベル)達成に向けた達成に向けた継続的改善を定着させるフェイズである。

 以上、IDEALモデルを用いたSPIの手法について概観したが、ソフトウェア開発組織は、SPIのためのSPAを実施し、SPAの結果を利用して計画、実行、測定、水平展開とPDCA(Plan、Do、Check、Action)を行うことで、自組織のプロセスの弱点を補強し、成熟度を向上させるという考え方である。

2/4
PPAとは──CMMと何が違うのか

Index
新しいソフトウェア開発プロセス改善PPA
  1 SPAが注目される理由
2 ソフトウェア開発のプロセス管理とは
  3 PPAとは──CMMと何が違うのか──
  4 PPAの適用事例
自分戦略研究所、フォーラム化のお知らせ

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

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

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