PMBOK (A Guide to the Project Management Body of Knowledge) を読んでいったときに何となく残しておきたいなと思ったことの覚書きです。
ProjectとDevelopmentのライフサイクル
ライフサイクルってそもそもなんじゃろという概念がイマイチ飲み込めていないのですが,
Project life cycles can be predictive or adaptive.
ということで,プロジェクトのライフサイクルはPredictiveなもの(=先が見通せるもの)とAdaptiveなもの(=随時変化に適応していかないといけないもの?)のどちらかになるようです。
そして,プロジェクトのライフサイクルの中には,プロダクトやサービスや(プロジェクトの)結果に関連したDevelopmentの各種フェーズがあって,それらはDevelopment life cycleと呼ばれるようです。
Development life cycles can be predictive, iterative, incremental, adaptive, or a hybrid model:
とのことで,これらのどれかに分類されるようですね。
Predictive life cycle
これはよくあるウォーターフォール的なやつです。
先が見通せているものなので,プロジェクトのスコープ,時間,コストは早い段階で確定されて,それらの変更は容易には行われません(carefully managedとのことなので変更自体は当然あり得ますが)。
Iterative life cycle
Iterativeの訳に若干困りますが,基本的には”反復”という感じで反復を繰り返しながら進めていくような類のプロジェクトです。
この場合にも基本的にはスコープはプロジェクトの早い段階で確定されますが,時間とコストについては,プロダクトに関するプロジェクトチームの理解が進むにつれて定期的に修正が発生します。
後述するIncremental life cycleとイマイチ違いがイメージしにくいのですが,
Iterations develop the product through a series of repeated cycles, while increments successively add to the functionality of the product.
とのことなので,”repeated”(=繰り返し)なのか”successively”(=連続的に)なのかで微妙に扱いが違うんだろうなと思います。
Incremental life cycle
前述の通りIterativeとイマイチ違いが分からないのですが,”連続的に”ということで徐々に機能が増えていくけど,最後までプロダクト全体は完成しない,というイメージでしょうか。あくまでも個人的なイメージなので全然違うかもしれませんが。
対比としてIterativeの方のイメージを書いておくと,こちらは一応早い段階で一連の処理(=プロダクトのシンプルな全体像)は完成していて,細かい機能が繰り返しのサイクルの中で追加されていくイメージでしょうか。全然分かりませんが。
Adaptive life cycle
ここまで書いていて俗に言う”アジャイル”に相当するAdaptiveが出てきたので本格的にIterativeとの違いがよく分からなくなってきました。
ただ,
Adaptive life cycles are agile, iterative, or incremental. The detailed scope is defined and approved before the start of an iteration.
とあるので,agileやらiterativeやらincrementalといったものよりはやや上位概念になるのかもしれません。またAdaptiveにおいても詳細なスコープがイタレーションの開始前には決まっているようです。
アジャイル=スコープがどんどん変わっていくもの,という意識も正直あったのでこれは新しい視点というか,今までの認識が間違っていた・緩く考えていたのだなということが分かりました。
Hybrid life cycle
これはもうPredictiveなものとAdaptiveなものの組み合わせです,としか言えません…。正直読んでもよく分からないですね…。
という訳で意外と「なるほどな」と思う部分もありましたので備忘録として残しておきました。