オブジェクト指向プロジェクト設計

オブジェクト指向プロジェクト設計は、PM術における設計の基本原理です。プロジェクトを、INとOUTを持つオブジェクトの集合として捉え、それらをフラクタルに組み合わせて全体を構成するという考え方です。

工程設計、チーム設計、進行中のPMの動きなど、PM術の各スキルは、いずれもこの原理にもとづいて組み立てられています。

オブジェクト指向プログラミングについて

オブジェクト指向プロジェクト設計は、ソフトウェア工学のオブジェクト指向プログラミング(OOP)から、プロジェクトの設計に役立つ考えだけを借りています。借りているのは、内部の詳細を隠して入口と出口だけを見せる考え(カプセル化)と、小さいものを組み合わせて大きいものを作る考え(コンポジション)の二つです。

オブジェクトとは何か

PM術におけるオブジェクトとは、INとOUTを持ち、ブラックボックスとして扱える単位を指します。

INは、そのオブジェクトに与えられる入力です。情報、素材、要求などが該当します。OUTは、そのオブジェクトから出てくる出力です。成果物、判断、報告などが該当します。

ブラックボックスとして扱えるとは、内部の処理過程を逐一把握しなくても、INとOUTさえ握れていれば運用上は十分である、という意味です。

フラクタル構造

オブジェクトは、その内部にさらに別のオブジェクトを抱えることができます。大きなオブジェクトは小さなオブジェクトの集合として分解でき、その小さなオブジェクトもさらに分解できる、という入れ子構造になります。これをフラクタル構造と呼んでいます。

入れ子にできるので、プロジェクト全体をひとつの大きなオブジェクトとして扱うこともできれば、複数の中間オブジェクトに分けることも、最小単位まで細分化することもできます。

INとOUTの連鎖

複数のオブジェクトを並べてプロジェクトを構成するとき、前のオブジェクトのOUTが、次のオブジェクトのINになります。これを連鎖原則と呼びます。

連鎖原則に沿ってつなぐと、始点のINから終点のOUTまで、途切れずにたどれます。並列に走るオブジェクトがあっても、それぞれのINとOUTがつながっていれば同じです。各オブジェクトの境界が明確になり、責任範囲も自ずと定まります。

ブラックボックス許容とPMの解像度

ブラックボックスとして扱えるということは、PMがオブジェクトの中身まで把握する必要がないということです。PM術の前提である「プロジェクトの全てはPMですらも把握できない」という認識に対する、構造的な答えになります。

実際には、PMがあるオブジェクトをどこまで分解できるかは、そのPMの当該領域に対する解像度に依存します。経験値が高い領域では細かく分解でき、不確定性を減らせます。経験値が低い領域では、大きなオブジェクトのままINとOUTだけを握ることになります。

どちらの場合でも、ブラックボックスとして扱える限り運用できます。