クリティカルパスとは何でしょうか。プロジェクトマネジメントを学ぶと、「クリティカルパス」という言葉に出会います。
プロジェクトのスケジュール全体に影響を及ぼす作業経路を「クリティカルパス」といいます。
プロジェクトをスムーズに進めるためには、クリティカルパスの把握が重要であり、キリオはIT関係でなくともチームで進める仕事では、プロジェクトマネジメントの知識が大事なスキルと考えています。
以前、本でかじった程度でしたので、プロジェクトマネジメントをもっと学びたいと、今回、Udemyの講座「【超入門】プロマネが教えるタスク・スケジュール作成の基礎」を受講しました。
クリティカルパスを把握する方法として、「アローダイアグラム」という手法が用いられますが、「最早結合点時刻」と「最遅結合点時刻」の計算がややこしく混乱します。
説明を聞いたときは、うん、うん、なるほど、とその場では納得はしますが、時間が経ってしまいますと、あれ?どうすんだっけ?と忘れてしまい分からなくなるからです…。自分が使うための備忘の意味も含め、この記事をまとめてみました。
「【超入門】プロマネが教えるタスク・スケジュール作成の基礎」にもとづいて、プロジェクトマネジメントを学んでみたい方、あるいは、クリティカルパスとは何か、どのようにクリティカルパスを把握するかを知りたい方向けに、アローダイアグラムの作成手順を共有いたします。
- プロジェクトのスケジュール全体に影響を及ぼす作業経路を「クリティカルパス」といいます。
- スケジュール管理においては、クリティカルパスを把握し、適切に管理していくことが重要です。
- クリティカルパスの把握には、アローダイアグラムがわかりやすく有効であり、具体的な手順を説明します。
プロジェクトにおいてスケジュールをたてる目的
プロジェクトとは、「開発計画」あるいは、「何らかの目的の達成を目指して、一定期間に行われる一回性の活動」とされています。
プロジェクトは、必ず「始まり」と「終わり」があることから、「期間」と「スケジュール」が存在します。
プロジェクトにおいてスケジュールをたてる目的とは、「いつ何をするのか」を整理し、「実績の把握」と「今後の対応を検討」できるようにすることです。
「いつ何をするのか」「実績の把握」と「今後の対応を検討」の意味は、それぞれの次のとおりです。
いつ何をするのか | どのタスクをいつ開始して、いつ終わらせればいいのかを把握できることです。 |
---|---|
実績の把握 | 現時点での実績を把握し、予定通り進捗しているのか、遅れているのかを見極めます。 |
今後の対応を検討 | 実績と予定を踏まえてスケール変更やその他リカバリのための対応策を立てます。 |
スケジュールをたてることで、作業期間を見積り、プロジェクトの進捗全体に影響を及ぼす「クリティカルパス」を把握していくことが重要です。
スケジュールをたてるステップ
では、スケジュールをたてる際、どのような手順を踏めばよいでしょうか。
手順の概要をまとめますと次のとおりです。
タスクを分解する
タスクは、プロジェクトを構成する「タスク」を適切な粒度に、「モレナクダブリ」なく分解することがポイントです。
タスク内容を定義する
タスク内容の定義とは、タスクにおける「具体的内容」「ゴール」「先行するタスク」「成果物」「作業時間」を定義していきます。
タスクの分解と内容の定義は、以下の記事をご参照ください。
作業順序を定義する
作業順序を定義するとは、タスクの依存関係を見極め、作業順序を決めることです。
タスクには順序性があり、先行のタスクにしたがってタスクを並び替えていきます。
タスク同士の関連性は、「直列」だけでなく、「並列」の関係もあります。
特に、タスク同士が並列の関係にある場合は、同じ担当者が独りで作業できるかなどの「制約」も考慮しなければなりません。
作業時間を見積る
整理したタスクの作業順序を元に、「アローダイアグラム」の手法を用い、作業時間を見積ります。
クリティカルパスを見極める
クリティカルパスは、スケジュール全体に影響を及ぼす作業経路です。クリティカルパスを見極めることで、タスクの一番重要なつながりがどこであるかが分かります。
クリティカルパスを見極めるにはアローダイアグラムで
クリティカルパスとは
スケジュール作成においては、ひとつひとつのタスクをつなげたプロジェクト全体の必要時間を見積る必要があります。
クリティカルとは「重大な」や「危機的な」という意味であるため、直訳すると「クリティカルパス」は、 “重大な経路”を意味します。
スケジュール管理としてのクリティカルパスとは、タスクの一番重要なつながりであり、スケジュール全体に影響が出る作業経路です。
したがって、クリティカルパス内のタスクが何らかの理由で遅れてしまうと、即、プロジェクト全体が遅延してしまいますので、細心の注意を払ってください。
クリティカルパスを見極める方法
クリティカルパスを見極める方法には、主に「プレジデンスダイアグラム」という手法と「アローダイアグラム」という手法があります。
「【超入門】プロマネが教えるタスク・スケジュール作成の基礎」では、「アローダイアグラム」が初心者にはわかりやすく理解しやすいということで、アローダイアグラムを紹介しておりました。
この記事は、アローダイアグラムの作成手順を説明します。
アローダイアグラムとは
アローダイアグラムとは、作業の始点と終点を「ノード」(丸印)で表現し、ノードを矢印でつなぐことでプロジェクト全体の作業期間を見積る方法です。「ノード(node)」とは、結び目、結合点、集合点、中心点の意味です。
アローダイアグラムを理解するための用語
アローダイアグラムを理解するために、用語を整理しましょう。
矢印(実線) | 作業および作業の流れを意味します。 |
---|---|
矢印(点線) | ダミー線と言われ、タスク同士の依存関係を表します。ダミー線は実タスクではありませんので、作業時間はゼロです。 |
作業名 | 矢印(実線)におけるタスク名です。 |
ノード | 作業(タスク)ごとの「始点」と「終点」を表します。 |
最早結合点時刻 | 「さいそうけつごうてんじこく」と読み、次のタスクを最も早く開始できる日数(時間)となります。 |
最遅結合点時刻 | 「さいちけつごうてんじこく」と読み、プロジェクトの全体のスケジュールに影響を与えない程度で、タスクを最も遅く開始できる日数(時間)です。 |
アローダイアグラムの7つのステップ
ここからは、クリティカルパスを見極めるためのアローダイアグラムの作成手順を説明していきます。
なお、ここでの具体例は、「【超入門】プロマネが教えるタスク・スケジュール作成の基礎」で紹介されているものです。
- タスクカードを作成する
- タスクカードを左から右に並べる
- 結合点(ノード)を矢印で結ぶ
- 結合点に番号を振る
- 各作業の所要日数(時間)を見積もる
- 最早結合点時刻を計算する
- 最遅結合点時刻を計算する
1. タスクカードを作成する
タスクカードを作成するとは、始点から終点まで必要な作業を挙げ、作業名を記載したタスクカードを作成します。タスクカードの作成は、以下の記事をご参照ください。
2. タスクカードを左から右に並べる
スタートを一番左に設定し、ゴールを一番右に置くという時系列の前提で考えます。
早く始めなければならないタスクを左から順番に右に並べていき、矢印(→)でタスクカード同士を結んでいきます。
3. 結合点(ノード)を矢印で結ぶ
2の「タスクカードを左から右に並べる」にもとづき、タスクの終点に対し「ノード」(ここでは赤丸)を振っていきます。
注意点は、一番左側のスタートの部分もノードを忘れないようにしてください。
また、上記のとおり、タスクカードの四角枠の形が消え、抽象化されていることにも注意してください。
実線およびが「タスク」の部分で、点線の矢印部分はタスク同士の関連性があります。
タスクの終点を示すノードに対し、タスク同士の関連性を検討します。
実タスクがある部分は「実線の矢印」、実タスクはなく影響するという意味で依存関係がある場合は「点線の矢印」をノードに対してふります。
図では、「足りない材料をスーパーで購入する」のタスクは、「参考にするレシピを決める」と同時に「家にある材料を調べる」のタスクが終了してはじめて進めます。
「参考にするレシピを決める」は、「家にある材料を調べる」の終点に対し、それを行わないと次の作業ができないという実タスクではなく、「参考にするレシピを決める」と「家にある材料を調べる」の間には、依存関係を示す「ダミー線」で結ばれている点に注意してください。
また「皿を選ぶ」タスクも、「カレーをよそおう」のタスクの直前の段階に対し、「皿を選ぶ」ことと「カレーをよそおう」の間に依存関係があるため、「点線の矢印」のダミー線で結んでいます。
4. 結合点に番号を振る
ノードの中に左から順番に番号(赤字)を記入します。
タスクが並列の場合、番号をどちらが先かという問題がありますが、番号の付け方は自分なりに考えて番号をふっていき、自由でかまいません。
5. 各作業の所要日数(時間)を見積もる
プロジェクト全体の作業時間を把握するため、各作業の所要日数(時間)を見積りますが、すでにタスクカードを作る段階で終わっています。
各作業の所要日数を見積りは、矢印の上側に時間(赤字)を書き込みます。
6. 最早結合点時刻を計算する
最早結合点時刻と次の7番目で最遅結合点時刻の計算作業を行いますが、各ノードの上に、時刻を記入する欄(四角)を設けていきます。
上側の空欄が「最早結合点時刻」の記入欄であり、下側の空欄は「最遅結合点時刻」を記入する欄となります。
- スタートのノードの最早結合点時刻はゼロ
- 左から右に向けて、時間を足していく
- 合流点の最早結合点時刻は、大きい方の時間を採用する
最早結合点時刻を計算するポイントのひとつは、一番左のノードから右に向かって見積り時間を足していくことです。
なお、一番左の「1」のノードの数値は、必ず「ゼロ」から始まります。
「2」のノードは、「レシピを検索する」の見積り時間が0.5時間ですから、0時間+0.5時間=0.5時間となります。
続いて「3」のノードは、「家にある材料を調べる」の時間が0.3時間ですので、0.5時間に0.3時間を加えた0.8時間になりそうですが、最遅結合点時刻は、1.0時間」となります。
「0.8時間」ではなく「1.0時間」になっているのは、なぜでしょうか?
ノードの「3」は、ノードの「2」とノードの「4」の矢印が集まる合流点です。
合流点は、最早結合点時刻の時間の大きい方の数値をとります。
合流点は、「0.8時間」ではなく「1.0時間」で表示するところが、最早結合点時刻を計算する二つ目のポイントです。
つまり、ノード「2」から「3」にかけての「家にある材料を調べる」のタスクは0.3時間かかります。一方、ノード「2」から「4」にかけての「参考にするレシピを決める」のタスクは0.5時間かかります。
ノード「3」の最早結合点時刻は、「レシピを検索する」0.5時間に「参考にするレシピを決める」0.5時間を足した「1.0時間」が記入されます。
最早結合点時刻が、時間の大きい方の数値をとる理由は、「家にある材料を調べる」と「参考にするレシピを決める」の2つのタスクが終了しない限り、合流点以降の「足りない材料をスーパーで購入する」は、作業が始められないからです。
特に、「足りない材料をスーパーで購入する」は、より時間がかかる「参考にするレシピを決める」のタスクに依存しています。「足りない材料をスーパーで購入する」は、「家にある材料を調べる」が終わったとしても、「参考にするレシピを決める」が終わらないかぎり始められません。
7. 最遅結合点時刻を計算する
- 最早結合点時刻で計算したゴールの時間から逆算していく
- 右から左に向けて、時間を引いていく
- 合流点の最遅結合点時刻は、小さい方の時間を採用する
最遅結合点時刻は、プロジェクトの全体のスケジュールに影響を与えない中で、もっとも遅く開始できる時間です。
最早結合点時刻が一番左から見積り時間を足していくのに対し、最遅結合点時刻は、常に一番右の最早結合点時刻のゴールからタスクの見積り時間を引いていき、スタートまで逆算していきます。一番左のスタートのノードの「1」の最遅結合点時刻は、最後「ゼロ」になります。
具体例で説明しましょう。
ノードの「10」の最早結合点時刻が「3.1」時間となっていますので、さかのぼってノードの「8」まで逆算します。「カレーをよそおう」のタスクは0.2時間ですので、ノードの「8」の最遅結合点時刻は、3.1時間から0.2時間を差引いた「2.9時間」となります。
ノード「7」と「6」までは、単純に時間を引けばよいので、それぞれ「2.6時間」「2.3時間」になります。
一方、ノード「9」から「8」にかけては、「ダミー線」で時間はゼロであり、最遅結合点時刻は「2.9時間」となります。
また、ノードの「5」は合流点であり、計算には注意が必要です。
合流点の最遅結合点時刻は、合流点から次のタスクに枝分かれするタスクの時間をそれぞれ引いていき、最遅結合点時刻が少ない値を採用する点に注意します。
結合点のノード「5」の手前の最遅結合点時刻は、ノードの「6」が2.3時間、ノードの「9」が2.9時間となっています。
ノード「5」と「6」の間の「具材を切る」は0.3時間、ノード「9」と「5」の間の「皿を選ぶ」は0.2時間です。
それぞれの最遅結合点時刻を計算しますと、ノードの「6」の2.3時間から0.3時間を引いた「2.0時間」、ノードの「9」の2.9時間から0.2時間を引いた「2.7時間」と出ます。
2.0時間と2.7時間を比べて低い数値を採用しますので、合流点のノードの「5」で選ぶべき最遅結合点時刻は、「2.0時間」となります。
最遅結合点時刻が少ない時間を採用する理由は、そもそも最遅結合点時刻が「全体工程に影響を与えず、もっとも作業を遅らせることができる日時」であり、最早結合点時刻で求めたトータル時間内でのやりくりしなければならないからです。
仮に合流点で最遅結合点時刻の大きい時間を採用していきますと、最早結合点時刻で計算した合計時間を超え、スタート時点の時間でゼロにならずマイナスとなることから、現実的ではなくなります。
項目 | 結合点での対応 | 結合点の対応の理由 |
最早結合点時刻 | 前工程からの多い方の時間を「最早結合点時刻」とする | 次のタスクの開始は、前工程の時間がかかる方のタスクに依存してしまうため、時間が大きい方の数値を採用します。 |
最早結合点時刻 | 次工程からさかのぼるとき、少ない方の時間を「最遅結合点時刻」とする | 最遅結合点時刻は、プロジェクトの全体のスケジュールに影響を与えない中で、もっとも遅く開始できる時間です。
プロジェクトは最早結合点時刻で計算した時間内でやりくりしなければならないため、少ない時間の数値を採用します。 |
余裕幅とクリティカルパス
上記のとおりステップ1からステップ7を通じて、最早結合点時刻と最遅結合点時刻を計算してきました。
では、最早結合点時刻と最遅結合点時刻によって何がわかるのでしょうか。
最早結合点時刻と最遅結合点時刻を把握することでタスクごとの「余裕幅」が分かります。
つまり、どれだけ遅れても大丈夫か、またこれ以上遅れるとまずいと判断できるようになります。
余裕幅があるノードは、余裕幅の範囲内で遅れたとして次工程に影響はないので、「クリティカルパス」にはなりえません。
余裕幅とは、最遅結合点時刻と最早結合点時刻の差であり、余裕幅の時間内の遅延であれば全体に影響が出ません。
一方で、上記の図のとおり、最早結合点時刻と最遅結合点時刻の値がまったく同じで余裕幅がゼロとなる部分(赤のライン)こそが「クリティカルパス」となります。
つまり、クリティカルパスでは余裕幅がなく、一切遅らせられませんよということを意味します。
「アローダイアグラムを用いてクリティカルパスを見つけるための7つのステップ」のまとめ
この記事では、クリティカルパスについて説明するとともに、クリティカルパスを見つける手法であるアローダイアグラムについて、7つのステップについて詳細に記載してきました。
クリティカルパスとは、プロジェクトのスケジュール全体に影響を及ぼす作業経路であり、クリティカルパスを見つけ出さない以上、プロジェクトのスケジュール管理ができません。
また、アローダイアグラムは、最早結合点時刻と最遅結合点時刻の計算が混乱しがちになります。
アローダイアグラムの説明を聞くと、その時点では納得がいきますが、後々になるとわからなくなります。図解と計算手続きについて、備忘の意味も含め、できるだけ具体的にかつ詳細に記載してきました。(かえって分かりにくくなってしまったかもしれませんが…。)
もし、アローダイアグラムが分からなくなった時は、いつでも確認できるページとなれば書き手としては幸いです。