PM

CCPMとアジャイルについて考えてみる 3

CCPMでは、
「ちゃんと予定立てたって、(個々のタスクは)遅れるときは遅れる」
という考え方をします。

「個々のタスクは遅れるものである」
「でもプロジェクトの納期は守りたい」

個々のタスクを遅れないようにしようと思えば、十分な安全余裕をタスクごとにとらなくてはいけません。
少々遅れても大丈夫なくらい、各タスクに余裕を持って工程を引いておけば、多少のトラブルがあっても、当初予定通りオンスケジュールでいけるでしょう。
そのかわり、スケジュール全体がだいぶ長くなりますね。

余裕もって長めに引いておけば遅れないでしょうか?

いえ、そんなことはないですね。
典型的な例が、夏休みの宿題です。
約40日分に対して、分量的にはぜんぜん大したことないですね。
まじめにやれば、数日で終わるかもしれません。
でも、遅れますね。

十分余裕があっても、前倒しでまじめに作業できるほど、人間よくできてはいません。
あー、余裕あるから、最初にちょっとしっかり調査して、○日くらいから始めれば間に合うなーとか、
余裕もらったから、丁寧に作業しよう、いつもより時間かけてみようとか、
単にサボってみるとか、
なんだかんだで、余裕はどんどん消えていきます。

電車乗るとき、
駅にギリギリに着けば、そのまま走って電車に乗れますが、
20分前に着いたりすると、ちょっとコーヒーでも、と駅前のドトールに入ったりして、
で、時計が遅れてたりして、電車乗れなかったり、とか。

結局、遅れるときは遅れます。
別にサボってなくても、まじめに全力でやってても、何か一トラブルあったら、遅れます。

特にソフトウェアの場合は、

  • 「やってみたら意外と難しかった」
  • 「OSやライブラリのバグを回避しないといけなくなった」
  • 「仕様が変わった」
  • 「仕様に見落としがあった」
  • 「もっといいアイデアを思いついた」

など、当初見積もりから作業量がずれる可能性は大いにあります。

こういった不確実性を、
仕様は変わるから、変化に対応できる作り方をしよう、解決するのがアジャイルで、
タスクの必要時間は変わるから、変化に対応できる時間管理をしよう、というのがCCPM的な考え方ではないでしょうか。

不確実性がある→必要な時間も不確実→それを効率的に管理できる方法、と言えるのでは。