過去3回に渡って、 アジャイル開発プロジェクトをPRINCE2で管理するイメージを、 PRINCE2 Agile 第4章 PRINCE2 Agileの旅に基づいて紹介してきました。 この稿を通してお伝えしたかったのは、 PRINCE2を用いると、 従来のウォータフォール型のプロジェクトだけでなく、 アジャイル開発のような動的なプロジェクトでも管理可能であるということです。
次に示すPRINCE2の原則 は、 アジャイル開発を阻害するものではなく、 むしろ相性の良い組み合わせであることに気づかされます。
- 事業上の正当性を維持する
- 経験から学ぶ
- 役割と責任を定義する
- ステージで管理する
- 例外で管理する
- 成果物に注目する
- プロジェクト環境に合わせて組み立てる
本話では、アジャイルの代表的な開発手法であるScrum を通して、 その類似性について考えてみたいと思います。
1. 事業上の正当性を維持する
Scrum では、プロダクト・オーナ と呼ばれる事業側の代表者(エクストリーム・プログラミングでは「顧客」)がいて、 事業の観点からプロジェクトの成果物に対する評価を、 各スプリント (アジャイルの開発周期、エクストリーム・プログラミングでは「イテレーション」)で行っています。 この作業は、 PRINCE2が段階境界プロセスで事業上の正当性を確認する活動と同等とみなすことができます。
2. 経験から学ぶ
アジャイルには、レトロスペクティブ(振り返り)によって、 常にチームの作業方法を改善するという考え方があります。 これは、経験から学ぶというPRINCE2の原則と完全に合致するものです。
3. 役割と責任を定義する
自身で組織を構成し、開発手法や開発プロセスを自身で決定するという、 アジャイル特有の自己組織化という概念は、PRINCE2にはありません。 ただ、プロジェクトを通して常にチェックポイントが存在し、 最終的な意思決定権は事業側にあるという点で共通しています。
また、PRINCE2では、開発チームの責任者であるチーム・マネージャより上層の役割や責任を定義しているのに対し、 アジャイル開発は開発チーム内、すなわちチーム・マネージャより下層の役割と責任に注目しています。 つまり、両者のフォーカスがずれているため、決定的な排他関係にはなりません。
4. ステージで管理する
アジャイル開発のスプリント やイテレーションは、 PRINCE2のステージ(段階)とみなすことができます。 つまり、アジャイル開発もまたステージで管理されています。
5. 例外で管理する
PRINCE2はプロジェクトのパフォーマンスは時間、 コスト、 品質、 適用範囲、 リスク、 ベネフィットの総計であるとして、 これらの要素にしきい値を設けて管理します。 アジャイル開発では 時間、 コスト、 品質を固定し、リスク、 ベネフィットに注意を払いながら、 適用範囲で全体を調整しています。 いずれにしても、例外が発生することを前提にしており、 その解決方法が示されている点は共通しています。
6. 成果物に注目する
アジャイル開発では機能するソフトウェア、そして、 事業にベネフィットをもたらす成果物を提供することが、 プロジェクトに対する絶対的な判断基準です。 つまり、究極の成果物重視主義と言えます。
7. プロジェクト環境に合わせて組み立てる
PRINCE2の特徴の一つであるさまざまな環境への高い適用能力は、 アジャイル開発に対しても例外ではありません。
PRINCE2とアジャイル開発は共存できるだけでなく、 お互いの弱点を補完し合える関係にあると思われます。
次回は、2016/1/10の予定です。