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

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

電子政府の構築などでも注目を集めているソフトウェア開発のプロセス改善モデルのCMM。電子政府構築でさらに注目を集めるプロセス改善だが、いま、CMM以上に注目を集めそうなのが、国際標準化されたISO/IEC TR 15504に準拠したPPAというソフトウェア開発のプロセス改善モデルだ。ハードウェアへの組み込み用ソフトにも対応し、プロセスの一部だけでも評価できるPPAとは、どのようなモデルなのかを紹介しよう。

1 SPAが注目される理由

ソフトウェア依存と開発の変化

 ソフトウェアなしでは何も動作しない世の中になった。ソフトウェアの規模は増大し、ソフトウェアへの依存度は極めて高く、その重要度は日に日に高まっている。

 現在私たちの生活を支えている身の回りの家電製品、自動車、通信機器など電源を“オン”にして起動するあらゆる製品には、高性能なソフトウェアが内蔵されている。一般にハードウェアと呼ぶものも、その制御は膨大なソフトウェアに依存し、製品の機能のほぼすべてがソフトウェアによって管理されている。しかも、コンピュータを中心にネットワークで相互に接続され、複雑なシステムを構成しつつある。まさにソフトウェア依存型社会が到来しているのだ。

 ソフトウェア依存型社会は、ソフトウェア開発の在り方に大きな変化をもたらした。開発規模が肥大化し、これに伴って開発コストも大幅に拡大した。ソフトウェアへの需要は高まったが、開発期間は短くなっている。さらにオープン化の進展が重なり、ソフトウェア開発組織内外での各種インターフェイスの管理は複雑になった。品質に関する意思疎通や責任区分も、明確には規定できなくなってきているのだ。

 多くのソフトウェア開発組織においては、予算内かつ計画どおりに信頼性のある有用な製品を納品することは困難な状況にある。今後、グローバル化やオープン化が進展する中で、資本の流動、外資の参入が活発化し、競争環境はますます激化するだろう。今後ソフトウェア開発組織が生き残り、繁栄するためには、競争環境下で顧客満足の向上を実現する手段を模索しなければならない。

ソフトウェア開発における課題

 競争環境下で顧客満足の向上を実現する手段とは、ソフトウェア品質の向上、生産性の向上および短工期開発を同時に達成することであろう。ところが、ソフトウェア開発の複雑性が増大した今日、その達成はますます困難な取り組みとなっている。

 まず発注者の側では、ソフトウェアに期待する機能が増大したにもかかわらず短工期での開発を同時に要求する。それに対して開発側も、競争環境下で受注を獲得するため、要求を十分に確認せず、また見積もりが不十分なままに実力以上の受注を行い、プロジェクトを見切り発車するようなケースが起こっている。 現在行われているシステム開発で起きている問題を原因別にまとめると次の図1のようになるはずだ。

図1 システム開発における失敗原因とその比率

 図1からは、プロジェクトの計画不備と目標設定不十分の2つの原因が、システム開発における失敗原因の45%をも占めることが分かる。そのほかの失敗原因を観察しても、システム開発の失敗原因の多くは、そのマネジメントに起因する問題が多いことに気付く。

ソフトウェアプロセス管理の必要性

 これまでソフトウェアの品質と生産性の向上を図るための技術領域として活用されてきたのは、主にソフトウェア工学(Software Engineering)であった。1960年代半ばから始まったメインフレームコンピュータの普及に際して巻き起こったソフトウェア危機を解決する手段として、1968年のNATOの会議において、ソフトウェア工学が提案され、その後ソフトウェアライフサイクルの各開発段階の明確化、要求分析、ソフトウェア仕様、設計法、検証と保守などが検討された。

 その後、データの抽象化、構造化・モジュール化などの方法論や各種の技法、ウォーターフォールモデルに代わるプロトタイピングモデル、スパイラルモデル、さらにソフトウェア生産の自動化を目指すCASEなどの開発環境が提案され、現在に至っている。

 しかしながら技術的な進展とは裏腹に、スケジュールの遅れやコストの見積もり間違いなど、プロジェクトの失敗原因は相変わらず改善されず、ソフトウェア品質に基づく事故などの例は枚挙にいとまがないほどである(CMM 1998、Business Week 1999)。そのうえ、2000年問題をはじめ繰り返される品質トラブルは、いまや社会問題にまで発展するケースもある。ソフトウェア工学だけではこれらの抜本的な改善は難しく、ソフトウェアプロセス(Software Process)の管理がソフトウェア工学と並んで重要であると考えられるようになった。

 ソフトウェアプロセス管理とは、“優れたプロセスの管理状態の下でプロセスを改善し、偶然的でない客観的に制御できるプロセスのパフォーマンスを実現”することを指す(Humphrey 1990)。プロセスとは、必要なツールや設備、スキルとモチベーションを持ち研修を受けた要員、タスクの相関関係を定義する手順と方法、を用いることで、原材料(インプット)から顧客にとって価値のある成果(アウトプット)を生み出す一連の作業である。

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

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

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

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

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