Excel/Google Sheetsでクリティカルパスを計算する方法
はじめに
プロジェクトは「作業」と「作業の順番」から構成されている。作業の数が多ければ多いほど、すなわち大規模なプロジェクトであるほど、作業とその順序関係は複雑になる。そのため、どの作業にプロジェクトの資源を投じるかは複雑な問題となる。
この問題を解決する手法の一つとして、PERT/CPMがある。この手法では、プロジェクトを作業とその順序関係からなるネットワークとみなし、そのネットワークからクリティカルパスと呼ばれる経路を計算する。 クリティカルパスは、作業と順序関係からなるネットワークの内、距離が最大(すなわちかかる時間が最大)となるような経路のことを言う。クリティカルパスにかかる時間はプロジェクトにかかる最短の時間となっており、クリティカルパスにかかる期間が短縮できれば、プロジェクトにかかる期間も短縮できる。よって、プロジェクトの期間を短縮するには、プロジェクトの資源をクリティカルパスに集中させ、プロジェクトマネージャーはクリティカルパスに注意という資源を向ける必要がある。
PERT/CPMは効果的である一方、多くの計算が必要なことから専用のソフトウェアがほぼ必須となる。しかし、社内に前例のない新規の手法を試すためには、専用のソフトウェアを導入する予算が下りない、会社が認可したソフトウェアのインストール以外は認められない、といった状況も多々あることだろう。そこで、本記事では、多くの会社のパソコンで利用可能と思われるExcel/Google Sheetsを用いてクリティカルパスを計算する方法を紹介する。
注意点として、Excelで工程表を書いてはいけないという話もあることから、スプレッドシートを用いたクリティカルパスの計算は一時的・短期的なお試しや理解の補助に留め、効果が確認できれば専用のソフトウェアの導入を勧めたい。また無料のソフトウェアであれば、GanttProjectというソフトウェアもある。
PERT/CPM
PERT/CPMでは各作業に対してそれぞれ、最早開始(Early Start)・最早完了(Early Finish)・最遅開始(Late Start)・最遅完了(Late Finish)・見積工数(Duration)・余裕(Float)を求める。どのように求めるかをこれから説明する。
最初に、プロジェクトの完了状態を定義する。その後、プロジェクトの完了状態から逆算して必要な作業を順番に洗い出していく。作業Aをするには、作業Bの完了が必要で、作業Bをするには、作業Cと作業Dの完了が必要で……といった具合だ。 すべての作業が洗い出せたなら、プロジェクトの先頭(最初)となる作業からプロジェクトの完了状態に向かって見直しを行う。この見直しによって抜け漏れを防ぐことができる。(マネジメント改革の工程表より)
作業の洗い出しと順序関係の設定が完了したら、各作業に対して必要な工数を求める。
各作業の工数を設定できたら、プロジェクトの先頭から順番に、最早開始と最早完了を求める。 最早開始は前工程となる作業の最早完了の内、最大となる(最も遅い)値になる。もし前工程がない場合には最早開始は0になる。 最早完了はその作業の最早開始に見積工数を足した値になる。
最早開始と最早完了を求めることができたら、プロジェクトの末尾から順番に、最遅開始と最遅完了を求める。 最遅完了はその作業の後工程となる作業の最遅開始の内、最小となる(最も早い)値になる。もし後工程がない場合には最遅完了はその作業の最早完了の値となる。 最遅開始はその作業の最遅完了から見積工数を引いた値になる。
最後に各作業の余裕を求める。余裕は最遅完了から最早完了を引いた値、もしくは最遅開始から最早開始を引いた値になる。 余裕が0となる作業がクリティカルパスとなる。