人気ブログランキング | 話題のタグを見る

モダンPMへの誘い 〜 アクティビティ期間にばらつきがある場合に使うべき推定法とは

  • CPMは決定論的手法である

本シリーズの前回記事「モダンPMへの誘い 〜 クリティカル・パス法は役に立つのか?」 (2025-03-31)では、プロジェクト・スケジュールの基本的な技法であるクリティカル・パス法(Critical Path Method、以下"CPM"と略す)の基本的な弱点について議論した。CPMが使えない、役に立たないと感じられるのは概ね、以下の3つのケースである:

  1. プロジェクト全てがクリティカル・パスである場合(プロジェクトが一本線のアクティビティ系列から成り立っていて、並列作業が存在しない)、
  2. 各アクティビティの期間に幅やブレがあり、その見積に信頼性がない場合、そして
  3. そもそもプロジェクトがもやもや・混沌としていて、アクティビティへの分解・落とし込みが難しい場合、の3つである。

今回はこのうち、(2)のケースについて、まず考えてみたい。

そもそもCPMの大きな特徴、ないし重要な限界とは、それが「決定論的な手法」であることだ。工学において決定論的とは、答えが最初から確定していることを指す。体重100kgの人が、重さ10kgの荷物を持ったら、合計の荷重は110kgになる。これが決定論である。仮に入力変数や計算プロセスがもっと複雑でも、手順に従っていけば、一つの答え(ないし複数でも限定された答え)にたどり着く。

「決定論」に対比すべき手法とは、「統計的」ないし「確率的」な推計手法である。男性の方が女性より背が高い、というのは統計的な傾向だが、ある男性がその配偶者の女性より背が高いかどうかは、確実には言えない。調べたことはないが、90数%くらいだろう(試しに生成AIに聞いてみたが、はかばかしい答えは得られなかった)。あるいは、今日の気温が23℃だとして、今が春の4月だからといって、明日の気温がそれ以上になるかどうかは、確実ではない。だから天気予報は、確率ベースでしか予想しないのである。


  • アクティビティ期間のばらつき

現実にわたし達が取組むプロジェクトにおいて、作業期間をあらかじめ精度高く見積もれるかというと、たしかに難しい。「やってみないと分からないこと」はあまりにも多いからだ。

たとえば設計期間を取ってみよう。読者の中には、(わたしがエンジニアリング会社勤務なので)「お前のところのプラント設計なんか、ガチガチっとしているから期間は読みやすいだろ」とお思いの方もいるかもしれない。たしかに蒸留塔とか熱交換器とかの設計手法は、決定論的で、しかも半世紀も前から大して変わっていない。入力パラメータを計算ソフトにぶち込めば、段数だとか伝熱面積だとか、基本的な数字はすぐ出してくれる。

ところが、である。複数人で取組むプロジェクトという仕事では、ほぼ確実に『設計変更』というものがついて回る。変更の理由はいろいろだ。客先からの要望、法規や基準の解釈変更、設計ミスやコミュニケーション・ミス、発注先の都合・・。結果として設計作業のやり直しが生じる。全部で熱交換器10基だから、1日2基設計できるとして、設計期間は1週間ね、などとは決まらないのだ。

もちろん外発的要因だけでなく、担当者・担当組織の能力やスキルのばらつきという要因もある。能力が高ければ、期間も短い。でも(完全な繰返し的仕事ならいざ知らず)初めて取組むプロジェクトにおける能力や生産性を、精度高く見積るのは難しい。


  • ベータ分布による近似

だからアクティビティの期間は、そもそもばらつきのある分布形として考える方が、リアリティが高いと言える。実際、そう考えて推算手法を構築した人たちがいた。前回も少し名前を出したが、1950年代に米国海軍でポラリス・ミサイル開発プロジェクトを支援した、ブーズ・アレン&ハミルトン社の人たちである。

ほぼ同時期にプロジェクト・スケジューリングに取組んでいたデュポン社の技術者は、アクティビティ・ネットワークを構成して、プロジェクトの開始と完了を結ぶ最長経路としてのクリティカル・パス概念を見いだしていた。ただし、アクティビティ期間は確定的な推定値がある、という前提だった。しかしブーズ・アレン&ハミルトンの人々は、コストやスケジュールにはばらつきがあるとして、そこに分布関数を当てはめようと考えた。

ばらつきの分布形として、すぐ思いつくのはガウス分布(正規分布)である。ご存じの通り、これは平均値を中心に、左右対称な釣り鐘型のグラフになる。ただ、ガウス分布をアクティビティ期間に適用すると、都合のわるい点が出てくる。まず、左右対称というのが気に食わない。プロジェクトの実務に携わる人は皆、実感していると思うが、想定より早く終わるケースが少ないが、遅れるケースは多い。これは「想定」自体に問題があるとも言えるが、短くなる方には限界があるのに、長引く方は無際限に遅れることがある。だから分布形は、左右対称ではなく、右側にロングテールな形になるはずだ。

正規分布のもう一つの不都合は、値がマイナス無限大からプラス無限大まで広がっていることだ。つまり、最小値とか最大値がない。でも期間というのは最短がゼロで、マイナスにはなり得ないのだから、数学的に見てまずいことになる。

かわりに彼らが採用したのは、数学で『ベータ分布』と呼ばれる関数系だ。

モダンPMへの誘い 〜 アクティビティ期間にばらつきがある場合に使うべき推定法とは_e0058447_22080654.png
(Wikipediaより引用)


上の式で、xが期間、f(x)は確率密度関数である。ここにはαとβの2個のパラメータが出てくる。その値の組合せによっていろんな形になる。たとえばα=2, β=4とすると、次のような右側にふくらんだ形になる。
(「生活や実務に役立つ計算サイト」 https://keisan.casio.jp/exec/system/1161228837 による出力例)
モダンPMへの誘い 〜 アクティビティ期間にばらつきがある場合に使うべき推定法とは_e0058447_22090850.png
  • ばらつきのあるアクティビティ期間の推定法

ベータ分布の期待値は、α/(α+β) であることが計算できる。そこでもし、過去のプロジェクトにおける同等のアクティビティの実績値がデータベース化されており、そのばらつきをベータ分布でフィッティングできれば、アクティビティ期間を推算できることになる。

とはいえ、過去のデータを蓄積して非線形なパラメータ・フィッティングを計算するなど、1950年代の、紙と手計算の時代には困難だった。彼らが巧妙だったのは、実はここから先だ。彼らは分布形の最小値と最大値、そして最頻値(もっとも回数の多い値)の3点さえ分かれば、ベータ分布の期待値が計算できることに気づいた。それが、以下の式だ:

期待値 = (最小値 + 4 x 最頻値 + 最大値)/ 6

たとえば、ある設計アクティビティの期間が、最小で1週間、最長で6週間だったとしよう。そして最頻値(一番多い結果)は、2週間だった。すると、

期待値 = (1 + 4 x 2 + 6)/ 6 = 15 / 6 = 2.5

つまりプロジェクト計画では、2.5週間という期間を計算に使うのが最も適切、ということになる。むろん、実際には2.5週より早まることも遅れることもある。だが、一番確からしい推算は2.5週なのだ。データを蓄積して精度の高い分布形を決めるのは簡単ではないが、最小値・最頻値・最大値の3つの値を言うのは、ずっとたやすい。

(注:ただし上の式には、α + β = 6 という暗黙の前提が入っている。実務的にはこれで不都合はないが、彼らがどのような根拠でこの条件式を入れたのかは、残念ながら調べがつかなかった。もしご存じの方がおられたら教えていただきたい)

ともあれ、ブーズ・アレン&ハミルトンの開発したPERT手法は、このような『3点見積法』をベースにしている。なお、ばらつきのある数値を集計していくと、もちろん結果もばらつく。だが、独立したばらつきを合計すると、プラスマイナスが打ち消しあって、ばらつきが相対的に小さくなる。だから実用的には、個別アクティビティの期間はPERTの3点見積で推定し、全体工期はCPM法で計算する、との手順がよく行われる。こうしてPERTとCPMは融合して、PERT/CPMと呼ばれるようになっていくのである。


<関連エントリ>
「モダンPMへの誘い 〜 クリティカル・パス法は役に立つのか?」 https://brevis.exblog.jp/33567190/ (2025-03-31)



by Tomoichi_Sato | 2025-04-27 22:14 | B3 プロジェクト・スケジューリング | Comments(0)
<< 知能は決断のためにある お知らせ:5/14(水)に大阪... >>