クリティカルパス法 (CPM) とは?プロジェクト管理に役立つ手法を解説

Asana チーム 寄稿者の画像Team Asana2022年4月27日
facebooktwitterlinkedin
クリティカルパス法記事バナー画像
今すぐ Asana を試す

概要

クリティカルパス法 (Critical Path Method, CPM) とは、プロジェクトを完了させるために実行しなければならないタスクを特定する手法です。プロジェクト管理におけるクリティカルパスとは、一連のタスクが要する所要時間のうち、パス (経路) が最長となるもののことです。この記事では、この手法をプロジェクト管理にどう活用するのか、クリティカルパスの求め方や CPM の計算方法などをご紹介します。

ロードマップを作成すると、プロジェクトの目標到達に向けて何をすべきかを可視化することができます。その際に役立つのが、こちらのクリティカルパス法です。CPM を用いることで、プロジェクトを完了するために対応が求められる重要 (クリティカル) なタスクを見極め、プロジェクト管理に役立てることができます。

またこの手法を活用すると、タスクの依存関係を管理したり、現実的な期間設定も可能になります。クリティカルパス法の仕組みを知り、チームで使用して、プロジェクトのタイムラインの最適化に役立てましょう。

クリティカルパスとはどういう意味?

クリティカルパス法 (CPM) とは、プロジェクトを完了させるために実行しなければならないタスクを特定する手法です。そうすることで、スケジュールの柔軟性も判断することができるようになります。プロジェクトには複数のタスクが存在し、個々のタスクを終わらせなければプロジェクトは完了しません。その一連のタスクを結んだとき、一番時間かかる最長経路のことをクリティカルパス (Critical path) といいます。

CPM を活用する際には、まずクリティカルパスとは何かをよく理解し、特定することが大切です。クリティカルパス (重要タスク) に遅れがあると、後続する作業にも影響が現れ、プロセス全体も遅延してしまいます。

CPM は、プロジェクトのタイムライン上でタスクの依存関係を特定、タスクの期間を計算し、最も重要なタスクを発見することをベースとしています。

この手法は 1950年代後半、非効率なスケジューリングによるコスト増の問題を解決する手法として開発されました。それ以来、CPM はプロジェクトの計画やタスクの優先順位付けの手法として普及。複雑なプロジェクトを個々のタスクに分解、効率化し、プロジェクトの柔軟性を見極めるのに活用されています。 

クリティカルパスのメリットと使い方

CPM は、プロジェクトの計画、リソースの割り当て、タスクのスケジュール設定などマネジメントに役立ちます。具体的にクリティカルパスにはどんなメリットがあり、どのような目的のために活用することができるのでしょうか。 CPM を使うべき理由を見てみましょう。

柔軟なスケジュール管理ができる

プロジェクトの締め切りは、思いがけず前倒しになることもあります。そのような突然のスケジュール変更に直面したときも、前もってクリティカルパスを把握しておけば柔軟に対応することができます。

スケジュールの短縮方法には「ファストトラッキング」と「クラッシング」の 2 つの手法があります。

  • ファストトラッキング: 複数のタスクを並行して実行し、全体の所要期間を短縮する手法です。クリティカルパスが明確なら、同時進行できるタスクをすぐに見つけることができます。このとき、タスク間に依存関係がないことを確認しましょう。

  • クラッシング: リソースを増やして作業を高速化する手法です。リソースを増やす前に、プロジェクトスコープの範囲内であることを確認し、変更内容はすべてステークホルダーに知らせるようにしましょう。

事前に描いておいたクリティカルパスがあれば、前倒しになった締め切りに間に合うよう、最適な戦略を選択することができます。

記事: ファストトラッキングとクラッシング: プロジェクトのスケジュールを短縮するヒント

能率的にリソース管理ができる

CPM を活用することで、プロジェクトマネージャーはタスクの優先順位付けやリソースの配置方法の見極めをより容易に行うことができるようになります。

一方で、CPM ではリソースの可用性は考慮されていません。チームメンバーの過密スケジュール、機器や設備の不足など、リソース不足の問題は、リソース平準化の手法を使って解決しましょう。

リソース平準化は、リソースの過剰な割り当てを解消し、現状のリソースを活用してプロジェクトを完了させることを目指す手法です。活用するときは、プロジェクトの開始日と終了日を調整します。クリティカルパスの再調整ができない場合は、フロートのあるタスクに限定して実行してください。

記事: チームの影響力を最大化したい方におすすめするリソース配分

今後に役立つデータが入手できる

CPM は、前もって想定された作業と実際の進捗状況を比較するのに役立てることができます。現在のプロジェクトで使用しているデータは、今後のプロジェクト計画に反映可能です。

プロジェクトの進行に伴い、当初のクリティカルパスと、実際のクリティカルパスを比較しましょう。その比較データは、今後のプロジェクトの精度を高めるために有用です。タスク期間を見積もる際に、参考にしてください。 

ボトルネックを回避できる

プロジェクトにボトルネックがあると、貴重な時間が無駄になってしまいます。CPM では、プロジェクト内タスクの依存関係をネットワーク図で示すことができるので、並行して実行できる作業とそうでない作業とを分別したスケジュールを作成することができます。

Asana でプロジェクトを計画する

クリティカルパスの求め方

クリティカルパスはどうやって見つけるのでしょうか。クリティカルパスの求め方を、例を挙げながらステップごとに解説します。 

1. タスクをリストアップする

まずはじめに、プロジェクトを完了するために必要となる作業やタスクをすべてリストアップします。このステップは、作業分解構成図を用いて行いましょう。ここで作成されるタスクリストは CPM のベースとなります。 

作業のリストアップ

たとえば、マーケティングチームがインタラクティブなブログ記事を新たに制作するとします。作業分解構成図には次のようなタスクが含まれるでしょう。

作業分解構成図

「下書きを作成」や「記事を投稿」など、リストアップされたひとつひとつのタスクがクリティカルパスの基礎となるわけです。必要な作業が明確になったら、次のステップに進みます。

2. タスク間の依存関係を把握する

作業分解構成図に基づいて、タスク間の依存関係を確認していきます。これにより、他のタスクと並行して行える作業の有無についてもチェックすることができます。

上記の例に基づいたタスクの依存関係は以下のとおりです。

  • タスク B はタスク A に依存する

  • タスク C はタスク B に依存する

  • タスク C とタスク D は並行して実行できる

  • タスク E はタスク D に依存する

  • タスク F はタスク C、タスク D、タスク E に依存する

このような依存関係を表すタスクリストは作業シーケンス (順序) と呼ばれ、クリティカルパスの決定に用いられます。 

3. ネットワーク図を作成する

このステップでは、作業分解構成図からネットワーク図を作成します。クリティカルパスにおけるネットワーク図とは、作業を時系列で示すフローチャート (工程表) のことです。タスクごとにボックスを作り、タスクの依存関係を矢印で図示します。 

時間的制約がある要素をネットワーク図に追加していくことで、最終的にプロジェクトの大まかなスケジュールが固まってきます。 

4. タスクの所要期間を推定する

プロジェクトの工程がおおよそ特定されたら、次はそれぞれのタスクがどの程度の時間を要するのか定めます。クリティカルパスとは一連の重要タスクの最長経路のことなので、各作業の所要時間を見積もるのは CPM を算出するうえで重要な作業です。 

所要期間の見積もりには、以下の方法を試してみてください。 

  • 経験と知識に基づいて推測する

  • 過去のプロジェクトのデータをもとにする

  • 業界標準をもとにする

このほかに、往路時間計算 (フォワードパス)、復路時間計算 (バックワードパス) という手法もあります。

  • フォワードパス: 事前に指定された開始日から順々に、最早開始日 (ES) と最早終了日 (EF) を計算する方法です。ES は先行作業の EF のうち最大値であり、EF は「ES + 所要期間」です。計算するときは、最初の作業の ES で「0」から始まり、スケジュールの進行に沿って進んでいきます。ES と EF の日付を決定すると、プロジェクトに対して早期にリソースを割り当てることができます。

  • バックワードパス: 最遅開始日 (LS) と最遅終了日 (LF) を計算する方法です。LS は、「LF - 所要期間」で、LF は後続作業の LS のうち最小値です。計算するときは、スケジュールの最後の作業から始まり、スケジュールの初めまで逆算していきます。    

この方法を使えば、ES と LS、終了日をもとに、各タスクのフロート (スケジューリングの柔軟性) を算出することができます。 

5. クリティカルパス (CPM) を計算する

タスクの所要時間を特定したら、次のステップは CPM の計算です。クリティカルパス (CPM) の計算はどうやって行えばいいのでしょうか。手動でもできますが、アルゴリズムを用いると時間短縮につながります。 

手動でクリティカルパスを計算する手順

ステップ 1: 各タスクの横に開始日と終了日 (または開始時刻や終了時刻) を書きます。

  • 最初のタスク開始日を 0 とし、終了日がそのタスクの所要期間となります。

  • 次のタスクの開始日は直前のタスク終了日です。このタスク終了日は、開始日に所要期間を加えたものになります。

  • すべてのタスクも同じように計算します。

ステップ 2: シーケンスの中で最後となるタスクの終了日をもとに、プロジェクト全体の所要期間を求めます。 

ステップ 3: ステップ2 で算出された所要時間のうち、最も長い作業シーケンスはどれかを見極めます。その最長シーケンスが、クリティカルパスです。

前述の例をもとにしたクリティカルパス図は次のようになります。 

クリティカルパスを手動で計算する手順

把握したクリティカルパスをもとに、実際のプロジェクトのスケジュールを組み立てます。

6. フロートを算出する

フロート (スラック) とは、タスクの柔軟性の高さを指します。後続するタスクやプロジェクトの終了日に影響が出ない、タスク遅延の許容範囲のことです。 

フロートを見極めておくと、プロジェクトの柔軟性を判断するのに役立ちます。フロートは、プロジェクトにおけるリスクや不測の事態への対応を想定したリソースであるわけです。

クリティカルなタスクは日程が決まっており、フロートはゼロになります。フロートが正の値であるタスクは、非クリティカルパスに属し、遅延してもプロジェクトの完了日に影響は出ません。非クリティカルなタスクは、時間やリソースが不足する場合には省略できます。 

フロートは、アルゴリズムを用いるか、もしくは手動でも計算できます。フロートには「トータルフロート」と「フリーフロート」の 2 つのタイプがあり、それぞれで計算方法が異なるので確認しておきましょう。 

トータルフロートとフリーフロートの計算方法

2 種類のフロートの意味と計算方法は次のとおりです。

  • トータルフロート: プロジェクト終了日の遅延や、スケジュール制約条件からの逸脱が出ない範囲で、ある作業の開始を最早開始日から遅らせることができる期間です。トータルフロートは「LS - ES」または「LF - EF」で算出します。

  • フリーフロート: 後続のタスクに遅延が出ない範囲で、ある作業の開始を遅らせることができる期間です。フリーフロートができるのは、2 つ以上の作業に共通して 1 つの作業が後続する場合のみとなります。ネットワーク図を見ると、作業が一つに収束する箇所です。フリーフロートは「ES (次のタスク) - EF (現在のタスク)」で算出します。

フロートをしっかり理解しておくと、どんなメリットがあるのでしょうか。たとえば、プロジェクトマネージャーにとっては次のポイントが挙げられます。

  • プランどおりにプロジェクトを進行できる: プロジェクトのトータルフロートを監視することで、プロジェクトが順調に進んでいるかどうかを判断することができます。フロートが大きいほど、早期または予定どおりに終了する可能性が高くなります。  

  • 優先順位付けができる: 作業にフリーフロートがあるかどうかを見極めることで、優先すべきタスク、先送りする余裕があるタスクを把握することができます。

  • 有用なリソースとなる: フロートとは、プロジェクトにおけるリスクや不測の事態への対応にあてられる時間的な余裕ともとらえることができます。フロートの量を把握しておくと、時間を有効に活用できます。

クリティカルパスの見つけ方

クリティカルパス法と PERT の違い

CPM と似たプロジェクト管理方法に、プロジェクト評価レビューテクニック (Program Evaluation and Review Technique) があります。頭文字を取って PERT と呼ばれる手法です。この 2 つのテクニックは、どちらも 1950年代に開発されました。

PERT では、楽観値と悲観値の加重平均を用いて、プロジェクトの各作業について不確実性を推定します。そして、作業を完了するために必要な時間を評価します。 

PERT は、作業にかかる所要期間の範囲を、次の 3 つの推定値から求めます。

  1. 最も可能性の高い推定値 (M)

  2. 楽観値 (O)

  3. 悲観値 (P)

PERT で用いる計算式は、「推定期間 = (O + 4M + P) / 6」です。

PERT と CPM の大きな違いは、作業の所要期間の確実度です。PERT が作業を完了するのに必要な時間を推定するために用いるのに対し、CPM は作業期間がすでに推定済みの場合に用います。 具体的に 2 つの手法の違いを見てみましょう。

  • PERT は不確実なプロジェクトのタスクを管理し、CPM は予測可能なプロジェクトのタスクを管理する。

  • PERT はプロジェクトの期限内での達成や期間短縮を図り、CPM は時間とコストの最適化を図る。

  • PERT は確率的モデル、CPM は決定論的モデル。

  • PERT は各作業に対して推定値が 3 つあり、CPM は 1 つのみ。

一方で、共通する部分もあります。PERT でも CPM でも、次に挙げる項目を分析対象としているところです。

  • 遂行すべきタスクのリスト

  • 各タスクの推定所要期間

  • タスクの依存関係

この 2 つの手法は、同時に用いることでより高い効果が得られます。PERT で用いられるネットワーク図のことを PERT 図と呼びますが、クリティカルパスやフロートの算出を行う前に PERT 図を活用すると、より正確にタスクの所要期間を予測することができます。

記事: PERT チャート (PERT 図): 実例付き解説

クリティカルパス法とガントチャートの違い

ガントチャートは、プロジェクトの作業計画を示す横棒グラフで、設定されたタイムラインに沿って追跡することができます。CPM もガントチャートも、タスク間の依存関係を示します。 

この 2 つのツールの違いを確認しましょう。

CPM

  • 重要タスクと非重要タスクを可視化し、プロジェクトの所要期間を算出する

  • ボックス同士を矢印で結んだネットワーク図でタスクを表示する

  • リソース所要量の情報は含まない

  • 作業計画をネットワーク図にするがタイムスケールは含まない

ガントチャート

  • プロジェクトのタスク進捗状況を可視化する

  • 横棒グラフでタスクを表示する

  • 各タスクのリソース所要量を表示する

  • 作業計画にタイムスケールが含まれる

ガントチャートと CPM を組み合わせると、経時的にクリティカルパスを追跡し、スケジュールどおりにプロジェクトを進めることができます。 

クリティカルパスを利用した効率的なプロジェクト管理

プロジェクトマネジメント、とりわけタスク計画やリソース管理に役立つ手法「クリティカルパス法 (CPM)」について解説しました。CPM とは何か、何に使うのか、どうやって見つけるのか、CPM の計算方法などを理解して、今後のスムーズなプロジェクト管理に役立てましょう。また、プロジェクト計画ツールを使えば、システム化が容易となり、スケジュール作成やプロジェクトの追跡作業がさらに楽になります。仕事の効率をさらに向上させるには、今日から生産性を高めるための 12 のヒントをご覧ください。

Asana のプロジェクトマネジメント機能を試す

関連リソース

記事

To-Do リストを作って終わりにしないための 15 の秘訣