重畳パススコアマップ

クリティカルパスとは ~重畳パススコアの前に~

クリティカルパスとは、タスクグラフで表わされたタスクの連なりについて、最も時間(あるいは、コストなど)がかかっている経路はどれか?すなわち、時間(あるいは、コストなど)的に全く余裕がない最長のタスクの連なりはどれか?というのを見つける技術のことです。

一般的に、クリティカルパス上のタスクは、タスクグラフの全タスクの内、20%程度を占めるといわれており、タスク全体における時間(あるいは、コストなど)の管理を行なう場合、このパス上のタスクを重点的に管理する必要があります。

カレーができる時間は?

タスクグラフによって、喧嘩をせずにカレーを作ることができる手段は確保されました。しかし、人間、できることがわかると欲が出てくるもの。次なる欲望、「では、いったいいつ出来上がるの?」という疑問が湧き上がってきてしまいます。

この疑問に答えてくれるのが、クリティカルパスクリティカルパスを使えば、下の図のように、最も時間のかかる経路がたちどころにわかってしまいます。

カレー作成のクリティカルパス

この図の赤い経路をたどっていくと、最も時間のかかる部分は、

  1. 火を起こす(20分)
  2. 野菜を炒める(5分)
  3. 水を入れて煮込む(30分)
  4. カレールウを入れて煮込む(10分)
  5. カレーを盛り付ける(10分)
  6. いただきます!

という経路。すなわち、20分+5分+30分+10分+10分=1時間15分!!

分担することにより、2時間40分が1時間15分になるという、快挙を成し遂げられることがわかります。

でも、、、もっと早い方がいい!

本当はキャンプなのですから、時間を気にせずゆっくりしたいものですが(笑)、実際はどうしても「1時間でカレーを作らないとこの後の川下りの予定が!!」など、諸事情により予定を早めたい時もあるでしょう。

そんな時もクリティカルパスは効果を発揮してくれます。クリティカルパスは最も時間のかかっている経路ということを思い出してください。 つまり、クリティカルパス上の手順を改善すれば、自然とカレーが出来上がるまでの時間も短縮されるということなのです!

クリティカルパス上で改善できそうな手順は、、、

  • 火を起こす(20分)
  • 水を入れて煮込む(30分)

あたりが手を加えられそうです。

ここは一つ、ボーイスカウト上がりの人に火を起こすのを手伝ってもらい、倍速の10分に。 水を入れて具材が柔らかくなるまで煮込む手順には圧力鍋を持ち込んで、3倍速のやはり10分にしてしまいましょう。(この際、キャンプに圧力鍋?とか、直火で圧力鍋は危ないんじゃ?という声は聞かなかったことにしましょう。カレールウを入れてからの圧力もやめましょう。)

  • 火を起こす(20分→10分)
  • 水を入れて煮込む(30分→10分)

何度も実際にカレーを作るのは大変ですし、お金もかかるので、ここはシミュレーションをしてみることにしましょう。すると、、

カレー作成の最適化後クリティカルパス

という経路。10分+10分+7分+15分+10分=52分!!!

なんと1時間を切ってしまいます。これなら、川下りも満喫できそうですね。

あれ?おかしい!?

ところで、「52分」という数字、何か不思議に感じませんか?そうです。ボーイスカウト君で稼いだ時間が10分、圧力鍋で稼いだ時間が20分。合計30分だから、本当は「45分」のはずなのに、なぜか1時間15分-52分=23分しか短くなっていないのです。

いったい、残りの7分はどこに!?

実はこれはタスクグラフならではのトリック。クリティカルパスを出した2つの図をよく見比べてみてください。 クリティカルパスを表わす赤い経路が異なっているのがわかると思います。

さらにクリティカルパスをよく見ると、元々はカレーを作るための手順がクリティカルパスだったものが、ご飯を炊く手順をクリティカルパスとする経路に代わっていることがわかります。

タスクグラフではこのように先行後続関係の「縛り」によって、改善したはずの時間よりも実際に短縮された時間が少なめになってしまうことがよく起こります。

たかだか7分の差異。でも、こうした差異は積もり積もって、後々取り返しのつかない大きな事態になることも多くあります。タスクグラフクリティカルパスを使う時、これは「誤差」ではなく「差異」なんだと正しく認識して、積極的にシミュレーションで確認する習慣をつけましょう。