先駆者に学ぶ「開発プロセス改善の原則」:The Rational Edge(3/3 ページ)
「新しい秩序の確立は他の何にも増して困難である。なぜならば、改革者は旧秩序から利益を得ているすべての者を敵にまわし、新秩序から利益を受けるはずの者からは熱のこもらない支持しか期待できないからである」(1513年 ニコロ・マキャヴェッリ)
プロセス改善活動は、ある時点で終わることはありません。常に、取り組みが繰り返され、継続していくものです。
プロセス改善のライフサイクル
プロセス改善プログラムで本当に成功していれば、プロセスを改善すること自体が組織文化の中において絶対不可欠な基本原則になるでしょう。プロセス改善プログラムが終わることはなく、図3のような流れで繰り返されていきます。
プロセス改善プログラム自体は多数のフェーズによって構成されていて、すべてが図3のような流れになっています。そして、それぞれのフェーズが基盤となるプロセスフレームワークの範囲内、もしくはその延長線上にある特定のプロセス改善処置の計画とインプリメンテーションを包含しています。プロセスが組織文化の基盤として定着すると、組織全体が継続的にプロセス改善を行う状態に移行していくようになります(図4)。
初期フェーズではソフトウェア開発環境の確立に焦点を当てることになります。これが完全にインプリメントされれば、計画のその後のフェーズはこれの微調整、保守、そしてサポートに関連するものとなっていきます。プロセス改善への探求は継続的なものであるべきで、常に自分たちの経験から学び、プロセスと組織文化の両方を進化および改善し続けることに努めるべきでしょう。
計画の各フェーズの規模、数、スタイル、そして期間は、処理を進める組織に関する詳細な知識、その組織における既存プロセスの状況、プロセス改善プログラム自体の対象範囲などによって決まります。RUPには典型的なプロセスインプリメンテーションパターンとアプローチに関する詳細なガイドと説明が用意されています。
もう1つ絶対不可欠な指標の情報源となるのがCarnegie Mellon Software Engineering Instituteです。同研究所は、それ自体がプロセス改善に着手するためのフレームワークの役割を担う『Capability Maturity Model for Software』の出版に加え、各組織に効果的なソフトウェアプロセス改善プログラム*5のプランニングとインプリメンテーションを指導すべくIDEALモデルも開発しています。このモデルは「Capability Maturity Model」を基盤とし、図3に示されるシンプルなモデルよりも一段と形式を整え、徹底的にドキュメント化された反復型のライフサイクルを示しています。
プロセス改善成功のためのキーポイント
ソフトウェア開発組織の業務遂行能力を長期的に改善するためには、改善の必要性を組織文化の中心に植え込み、組織のあらゆる面に対するサポートを継続的に改善する総合的なアプローチを導入する必要があります。これは組織改編計画への着手を意味します。
ソフトウェア開発環境の中に根本的な変化を生み出すための最も効果的な手法は、プロセス改善プログラムを通じて基盤となっている開発プロセスを変えることです。「プログラム」は、ほかのどの事業計画とも同じように準備および管理し、投資収益(ROI)とインプリメンテーションの複数のフェーズに徹底的に焦点を当てなくてはなりません。
成功するためには次のような戦略があります。
- 簡単に好結果を出すことが可能で、早い時期にメリットを目にすることのできる問題分野に焦点を当てることにより、プロセス改善プログラムにはずみをつける
- いまの組織に問題を伝える。その問題を理解してもらえれば、変更の必要性を受け入れてもらえる
- 何もかも一度にやろうとするのではなく、インプリメンテーションをいくつかのフェーズに分割し、サポート用のツールと一緒に各フェーズで新しいプロセスを部分的にインプリメントしていく。変更が最も大きな影響を与える分野に焦点を当てる
- 財産を基盤にする。組織が得意とするものを何もかも無駄にせず、選択した標準プロセスとこれらとを統合する
- プロセスとツールを次々に進む実際のソフトウェア開発プロジェクトの中でインプリメントし、早い段階から実際の環境でプロセスとツールを検証する。プロセスは、これを利用するプロジェクトと連携して向上および進化する必要がある
- プロセスの帰属をプロジェクトチームの中で分散する。これにより、一段と優れたプロセスが誕生し、より多くの人が参加し、プロジェクト内における変化に対する抵抗が弱まる
プロセス改善プログラムを担当するプロジェクトチームメンバーには次のような作業が必要となります。
- プロセスを導入するプロジェクトを指導および推進する
- プロジェクトに密接に関与し、適切なプロセス改善処置を取り入れ、ドキュメント化する
- 組織内で新しいプロセスを推進する
「1つのサイズですべてに対応する」完璧なプロセスを立案しようなどと思ってはいけません。プロセスは、常に特有のコンフィグレーションを必要とするようになりますが、次の3つを提供します。
- プロセスを素早く例示するプロジェクトのフレームワーク
- すべてのプロジェクトに当てはまる共通基盤と最低承認基準
- プロジェクトが利用できるツールとテクニックのライブラリ
新しいプロセス、新しいツール、そして場合によっては新しい技術をインプリメントすると、ソフトウェアプロジェクトのスケジュールが変化しやすくなってしまいます。それが何回目であっても、プロセスのインプリメントや人材育成などには必ず十分な時間と資源を割り当てるべきです。また、プロセス改善プログラムを進めていく中では、利害関係者全員に十分な情報を提供し、参加を促すことを常に忘れないようにしたいものです。
著者プロフィール
Ian Spence
英Rational Services Organization
プロセス/プロジェクト管理チーム
技術主任
- トランザクション管理の複雑性を克服する(パート1)
- アジャイルとシステムテストの新たな関係(後編)
- アジャイルとシステムテストの新たな関係(前編)
- アジャイル開発の広範な普及を目指して
- 見積もりの精度 Accuracy of Estimation
- 複雑性を理解する(後編):ソフトウェアの複雑性を手なずける
- 複雑性を理解する(前編):ソフトウェアが複雑なのは仕方がない?
- 鈍重な開発チームは鈍重なシステムを作る?/パート3:役割とポリシー(後編)
- 人事評価と開発者のモチベーション/パート3:役割とポリシー(中編)
- 自己管理型チームの利点と弱点/パート3:役割とポリシー(前編)
- プロセスはチャンスが訪れるたびに改善する/パート2:プロセスと基準(後編)
- 開発プロセス導入のアンチパターン/パート2:プロセスと基準(中編)
- 反復開発の「ここはぜひカバーしたいポイント」/パート2:プロセスと基準(前編)
- 開発プロジェクト「統治」のピンポイント解説/パート1:原則と組織(後編)
- 開発プロジェクトを「統治」するベストプラクティス/パート1:原則と組織(前編)
- 初歩の「Perl」「Python」「Ruby」
- ビルドが全滅する原因/プロジェクトの状態を評価する:パート2(後編)
- 不完全なコードは推敲フェイズで潰しておきたい/プロジェクトの状態を評価する:パート2(前編)
- UMLを使ったビジネスモデリング(後編):そうだったのか! システムユースケース
- UMLを使ったビジネスモデリング(前編):なるほど! ビジネスユースケース
- 「この開発プロジェクトは中止!」の基準/プロジェクトの状態を評価する:パート1(後編)
- プロジェクトのはじめに計画を立てるのは無謀/プロジェクトの状態を評価する:パート1(前編)
- 専門家に聞くモデル駆動開発のメカニズム
- 「設計」や「構築」よりも重宝されるスキル
- キミのコードが汚い理由
- 汎用グラフィカルモデリング言語「SysML」 パート2:グラフィカルなモデル言語で製品構造を記述
- 汎用グラフィカルモデリング言語「SysML」 パート1: 要件、ユースケース、およびテストケースのモデリング
- ウォーターフォールから反復型への移行手順
- ソフトウェアアーキテクティングのメリット
- ソフトウェアアーキテクティングのプロセス
- ソフトウェアアーキテクトの役割
- ソフトウェアアーキテクチャって何なの?(後編)
- ソフトウェアアーキテクチャって何なの?(前編)
- ITプロジェクトを見える化する
- ユーザー要件を引出すテクニック: ユースケースかストーリーボードか
- オブジェクト指向を超えて
- ルネサンスの巨匠たちに学ぶエンジニアリングの技
- ソフトウェア開発の「いま」と「近未来」の話
- 中国のソフトウェア開発現場はこんなにスゴイ
- 隣のテストチームが優秀ないくつかの理由(後編)
- 隣のテストチームが優秀ないくつかの理由(前編)
Copyright © ITmedia, Inc. All Rights Reserved.

