クリティカルパスの求め方:計算手順と実務での活用方法を徹底解説
Ganty Team
「クリティカルパスの求め方がわからない」「用語は知っているが実際の計算手順まで説明できない」という声をよく耳にします。クリティカルパス法(CPM:Critical Path Method)は、プロジェクト管理の中核となる技法でありながら、体系的に学ぶ機会が少ないテーマです。本記事では、クリティカルパスの定義から実際の計算手順、そして実務での活用方法までを、数値例とともにわかりやすく解説します。
クリティカルパスとは:プロジェクトの「最長経路」
クリティカルパスとは、プロジェクト開始から終了までの経路(タスクのつながり)の中で、所要時間が最も長くなる一連のタスクの連鎖のことです。このパス上のタスクは「余裕ゼロ」で連続しているため、1日でも遅延するとプロジェクト全体の完了日が同じ分だけ後ろ倒しになります。
逆に言えば、クリティカルパス上にないタスクには「フロート(余裕)」があり、ある程度の遅延が発生しても全体工期には影響しません。この違いを把握することが、プロジェクト管理における優先順位付けの基本です。ガントチャートの基礎概念についてさらに知りたい方はガントチャート入門も参考にしてください。
クリティカルパスの求め方:4ステップの計算手順
ステップ1:タスク一覧と依存関係を整理する
クリティカルパスを計算する前提として、すべてのタスク、その所要日数、そして依存関係を明確にする必要があります。まずはWBS(作業分解構成図)でタスクを洗い出し、以下の形式で一覧化しましょう。
- A:要件定義(3日、先行なし)
- B:基本設計(5日、Aの後)
- C:UIデザイン(4日、Aの後)
- D:フロント開発(6日、B・Cの後)
- E:バック開発(7日、Bの後)
- F:結合テスト(3日、D・Eの後)
ステップ2:前進計算(フォワードパス)で最早時刻を求める
プロジェクト開始日を0として、各タスクの「最早開始日(ES)」と「最早終了日(EF)」を順に計算します。計算式は以下の通りです。
- 最早開始日 ES = 先行タスクの最早終了日の最大値
- 最早終了日 EF = ES + 所要日数
上の例で計算すると、A(ES=0, EF=3)→ B(ES=3, EF=8)、C(ES=3, EF=7)→ D(ES=8, EF=14、BとCのうち遅いBを採用)、E(ES=8, EF=15)→ F(ES=15, EF=18、DとEのうち遅いEを採用)となります。プロジェクト全体の最早完了日は18日です。
ステップ3:後退計算(バックワードパス)で最遅時刻を求める
次に、プロジェクト完了日から逆算して、各タスクの「最遅開始日(LS)」と「最遅終了日(LF)」を計算します。計算式は以下の通りです。
- 最遅終了日 LF = 後続タスクの最遅開始日の最小値
- 最遅開始日 LS = LF - 所要日数
F(LF=18, LS=15)→ E(LF=15, LS=8)、D(LF=15, LS=9)→ B(LF=min(LS_D=9, LS_E=8)=8, LS=3)、C(LF=9, LS=5)→ A(LF=min(LS_B=3, LS_C=5)=3, LS=0)と逆算します。
ステップ4:トータルフロートがゼロのタスクを結ぶ
各タスクのトータルフロート(TF = LS - ES、または LF - EF)を計算し、TF=0のタスクを順番に結んだ経路がクリティカルパスです。
- A:TF = 0 - 0 = 0(クリティカル)
- B:TF = 3 - 3 = 0(クリティカル)
- C:TF = 5 - 3 = 2(余裕2日)
- D:TF = 9 - 8 = 1(余裕1日)
- E:TF = 8 - 8 = 0(クリティカル)
- F:TF = 15 - 15 = 0(クリティカル)
結論として、このプロジェクトのクリティカルパスは A → B → E → F(合計18日)です。Cには2日、Dには1日のフロートがあることも同時にわかります。
クリティカルパスを短縮する3つの技法
1. クラッシング(資源追加による短縮)
クリティカルパス上のタスクに追加のリソース(人員や予算)を投入して所要日数を短縮する手法です。ただしコスト増を伴うため、「1日短縮するのに最も安いタスク」から優先的に対象を選ぶのが鉄則です。クリティカルパス上にないタスクをクラッシングしても全体工期は1日も縮まらないので注意が必要です。
2. ファストトラッキング(並行作業化)
本来は順番に実施するタスクを、部分的に並行実施することで工期を短縮する手法です。例えば「設計完了後にコーディング開始」ではなく、「設計の7割完了時点でコーディング着手」という形です。リスクとして手戻りが発生しやすくなるため、影響範囲を事前に評価することが重要です。依存関係の設計についてはタスク依存関係管理のガイドが参考になります。
3. スコープ削減
プロジェクトの成果物から優先度の低い機能を外し、クリティカルパス上のタスクそのものを減らす手法です。MVP(Minimum Viable Product)の考え方と親和性が高く、納期が絶対条件のプロジェクトで有効です。
クリティカルパスを実務で運用する3つのコツ
- 週次で再計算する:タスクの進捗や依存関係の変更に応じて、クリティカルパスは途中で変わることがあります。週1回は最新状態で再計算し、注力ポイントを見直しましょう。
- フロートの消費状況を監視する:クリティカルパス以外のタスクであっても、フロートを使い切れば新たなクリティカルパスになります。フロート残日数が1日以下のタスクは準クリティカルとして警戒対象に含めましょう。
- クリティカルパス上にはバッファを置かない:個々のタスクに安全時間を埋め込むより、クリティカルパスの末尾に集約バッファを置くほうが全体工期を短縮できます。これはCCPM(クリティカルチェーンプロジェクトマネジメント)の基本思想です。
よくある失敗:依存関係の設定ミスでクリティカルパスを見誤る
クリティカルパスの計算は機械的な作業ですが、その前提となる依存関係の設定が間違っていると結果も誤ります。よくある失敗は「本当は並行できるタスクを直列で繋いでしまう」「外部からの納品待ちを依存関係として登録し忘れる」などです。プロジェクト遅延の原因と対策についてはプロジェクト遅延の原因と対策でも詳しく解説しています。
Gantyならクリティカルパスを自動計算
Gantyのガントチャートでは、タスクと依存関係を設定するだけでクリティカルパスが自動的に識別・ハイライト表示されます。タスクの所要日数を変更すると、クリティカルパスがリアルタイムで再計算されるため、計算ミスの心配がありません。クリティカルパス上のタスクだけをフィルタして進捗会議で重点確認する、といった使い方も可能です。プロジェクトの納期管理を科学的に行いたい方は、無料プランから試してみてください。