プロジェクトにおけるスケジュールと費用のトレードオフを考える (2015/10/26)

9月にスケジューリング学会で「プロジェクトにおけるスケジュールと費用のトレードオフを考える」というタイトルの講演発表を行った。わたしがこの何年間か個人的に続けている『リスク基準プロジェクト価値』(Risk-based project value = RPV)分析の手法を用いて、スケジュール・リスクのコスト化という問題に初めてくさびを打ち込んだ研究の発表である。サイトに書くにはやや理屈っぽい話であるが、小さな学会でもあったので、ここにその要旨を(数式は極力飛ばして)再録する。
===================

日揮株式会社の佐藤です。本日は「プロジェクトにおけるスケジュールと費用のトレードオフを考える」というタイトルで発表させていただきます。

皆さん、ちょっとこういう問題を考えてみてください。皆さんはあるプロジェクトのプロマネです。このプロジェクトは全体納期に対して、1日10万円の遅延ペナルティがかかっています。さて、このプロジェクトの中に外注製作のactivityがあり、A社に発注すると製作納期は45日です。他方、これに並行して内製の作業があり、そちらがクリティカル・パスとなっているため、この外注製作activityにはフロート(日程上の余裕)が18日あります。さて、ここにB社が現れ、納期は60日かかるけれども 金額はX円お安くできます、との提案をしてきました。この場合、フロートは3日間に減ります。皆さんなら、どちらを選びますか?

どちらを選んでも、プロジェクトの全体期間に影響はありません。である以上、差額がたとえ1円でも、B社を選ぶのが合理的だ、というのが従来のクリティカル・パス法Critical Path Method = CPM)の考え方でした。しかし、わたしならそうしません。差額が20万や30万円なら、A社のままにするでしょう。たぶん多くの実務家もそうすると思います。でも、なぜそう判断するのか?

考えられる説明は二つです。佐藤の頭がおかしくて、合理的な結論が理解できない(笑)のか 、さもなくば従来のPERT/CPMの論理に、何か欠けている部分があるのです。

コストとスケジュールは、プロジェクトのパフォーマンスを測る主要な二大指標です。プロマネはコスト節約、スケジュール短縮のため様々な努力をはらいます。しかし両者の間にトレードオフが生じた場合、いずれを優先すべきかは難問でした。コストとスケジュールは独立な指標で、互いを関係づける定量的で適切な方法がなかったためです。かりに納期ペナルティが設定されている場合でも、個別activityのレベルでの意思決定は簡単ではありません。CPMでいうフロートの存在のためです。先ほどのケースの場合、差額がいくらならB社の選択が合理的になるのか。これは、Activity期間短縮に見合うコストは一般にどう決めるか、ないし「スケジュール・フロートは1日いくらの価値があるのか」という問題であります。

本研究では、この問題に理論的な解決を与えます。

1 リスク基準プロジェクト価値(RPV)の導入

先ほどの問題で、実務家がB社を選びたくなるのは、A社だとフロートがわずか3日しかなく、全体スケジュールが延びるリスクが高まるからです。つまりこの問題の分析には、リスク概念の導入が必要になるのです。

わたしは以前より、『リスク基準プロジェクト価値』(Risk-based project value=RPV)という評価尺度を提案しております。RPVはプロジェクトの任意の時点において、すでに達成したキャッシュフローと、将来のキャッシュフローの期待値との合計で表されます。ただし将来キャッシュフローの期待値は、それが実現されないリスク確率で割り引いて求めます。プロジェクト開始時点のRPVは計画段階のプロジェクト価値を表し、プロジェクトの進行とともに通常はRPVは増大していくことが証明できます。(注:詳細は佐藤知一著「リスク確率に基づくプロジェクト・マネジメントの研究」静岡学術出版(2013)を参照のこと)

今、単一のactivityからなるプロジェクトを考えます。Activityの開始時に費用Cを投下し、完了時に収入Sを得るとします。また、このactivityは最短でTmin(日)で完了できると考えられます。だが現実にはばらつきがあり、その期間Tは確率分布p(T)にしたがい、期待値はTavg(日) だとします。このとき、プロジェクトの納期がTminより1日遅れるごとにL円のペナルティがかかると、計画時点でのリスク基準プロジェクト価値は次式の通りになります。

RPV = SCL(Tavg – Tmin) (1)

したがって、ある施策がp(T)を変化させてTavgを△Tだけ短縮するが、コストがX円かかるとすると、その施策が合理的となるのは
L△T > X (2)
となる場合です。たとえば最短期間Tminが30日で、平均期間Tavg=45日なら、もし1日のペナルティが10万円の場合、10 (45 – 30) = 150万円の納期ペナルティを覚悟している訳です。ここで、30万円の追加コストをかけて平均期間Tavgを40日に短縮できる施策があったら、10 (45 – 40) > 30 ですから、その施策は見合うのです。ここまでは自明でしょう。

2 期間短縮とInverse Floatの概念

次に、このactivityにもう1本の並行activity #2が存在し、確定した期間T2を持つ場合を考えます。Tavg > T2の場合、activity #2は、Tavg - T2(日)のフロート を持ちます。たとえばT2 = 36日だったとしましょう。すると45 – 36 = 9日のフロートがある訳です。ただし元のactivity #1がかりに最短期間Tmin(30日)で完了できたとしても、プロジェクト全体期間はactivity #2がつっかい棒のように邪魔をするため、T2(36日)よりは短くなりません。一般に並行するactivityが存在する場合、クリティカル・パス上のactivityの期間短縮がプロジェクト全体期間に与える影響には、限界があるのです。

図 1: 2個のActivityからなるプロジェクト

さて、米国のPMコンサルタントであるSteven Devaux氏は、スケジューリング問題の分析のためにCritical Path Drag (CP Drag)という尺度を提案しました(「納期が延びる要因を指標化する - スケジュールのDRAGとはどんな尺度か」、またはDevaux: "Total Project Control" Revised Edition. CRC Press, 2015参照)。これは、「あるactivityの期間がゼロになった時の、プロジェクト全体の工期短縮値」で定義される量です。CP Dragはcritical activityでは正の値だが、non-critical activityは0になります。

これを応用して、activityのスケジュール短縮効果に関する新しい尺度を提案したいと思います。これは、「あるactivityの期間が最短値Tminになった時の、プロジェクト全体期間の変化」で定義される日数です。ある意味でフロートの反対概念ですから、Inverse Floatと呼び、以下、記号IFで表現します。ちなみにフロートとは「プロジェクト全体期間に影響しない範囲でとれるactivity期間の最大値」です。

IFは0か負の値をとります。Non-critical activityのIFは0です(短縮しても全体期間に影響しないため)。Critical activityの場合、Tminで実行できたならプロジェクト全体期間は通常、Tavg – Tmin だけ短くなります。ですが、もし並行activityが存在し、そのフロート値がTavg – Tminよりも小さい場合は、そちらが新たにcritical pathとなるため、全体期間はそれ以上短縮されません。

Inverse floatは、それ単体でもスケジューリングの実務において有用です。たとえば、プロジェクト全体の納期を早めるために、critical pathを構成する各activityの期間短縮を考えるときは、まず各activityのIFを求めた上で、その値の大きなものから検討すべきです。

たとえば、あるcritical activityはTavg = 10週、かつTmin = 5週で、並行activityは2週のフロートを持っていたとします。このactivityに万全のリスク対策を施して5週まで短縮しても、critical pathは並行activityの側に移ってしまい、3週分の短縮努力は実りません。このactivityのIFは-2週ですから、2週以上の短縮効果は得られないことは明白です。IFを計算すれば、ムダな短縮の努力を避けることができます。

Activity iの短縮が全体期間に与える限界値がIF(i)ですから、Maximum potential gain: Gmax(i)を次式で定義できます。
Gmax(i) = – LIF(i) (3)
ある施策がX円かかり、それがactivity iの期間を△T(>-IF)だけ短縮しても、もし
Gmax(i) < X (4)
が成り立つ場合、その選択は合理的ではないと判断できます。Gmax(i)はこの問題に一種の十分条件を与えるのです。

3 Potential Assistの概念

図2の事例に戻ります。このケースではactivity #1のIF = T2 – Tavgです。このときRPVを計算すると(数式は略す)、単一activityのRPVより減少することが分かります。すなわち、フロートを持つ並行activityを追加すると、全体期間に直接の影響はなくても、期間短縮の可能性を最大-IFだけ阻害し、プロジェクトの収益期待値RPVを下げる場合があるのです。

逆にactivity #2に追加費用をかけることで期間をT2 < Tminまで短縮できれば、RPVを元の値まで増大できる。これをPotential assist (PA)と呼ぶことにします。

今、T2 = Tmin + yとし、Potential assistをyの関数としてPG(y)の形で表すと、これはクリティカル・パスに並行するactivityがフロートをx日消費する潜在的コストを表します。したがって、追加コストX円により、そのactivityの期間をy日短縮する(フロートをy日増大する)施策があるとしたら、
X < PA(y) (5)
が成り立てば、その選択は合理的となると判断できます。

(講演発表ではこの後、具体的なactivity期間の分布形について、PERTで用いられるベータ分布の場合について検討した。β分布はa, bの二つのパラメータで規定されるが、PERTでは a + b = 6 という仮定があるため、実質的にはaの値のみで分布系が決まる。S=3, C=1, L=2としてRPVを計算し、並行activityの期間短縮によるRPV増分値を示したのが図2である。たとえばa=2の分布系で、並行activityが0.33だけ短縮すれば(これは最初にあげた60日→45日にほぼ相当する)、プロジェクトの収益期待値RPVは0.15ほど増大する。これが期間短縮のためのコスト増を合理化できる必要条件を与える訳だ。)

===============
以上が講演の要旨である。はっきり言って、現時点ではまだこの奥の深い問題のとば口に立ったばかりで、解決すべき事柄は多い。しかし一つの手がかりは得られたように思う。それはコストとスケジュールが、意外にもリスクという因子を通じて互いに関係し合っているという視点である。できればこの問題に関心を持つ同士が現れて、ぜひ互いに発展させていきたいと願っている。

というのも、(この学会の後である大学教授が言われたことだが)日本にプロジェクト・マネジメントの本格的な研究者は非常に少ないからである。そのことは、日本発で国際的に通用するPM研究論文数の少なさを見ればよく分かる。たしかにPMPの資格取得者は多く、関連学会や団体も一応それなりに賑わっている。しかし、よその誰かが作ったPM標準を勉強することと、自分なりにものを考えて筋道を作っていくのとは別のことである。すでに大勢が踏みならした道を歩いて行くのと、沃野に道を切り開く違いといってもいい。

日本にはプロジェクト・マネジメント学科を標榜した大学が、学部レベルでは未だに私学の千葉工業大学1校しかない。しかし隣の中国には修士課程(MPM)が最高学部の北京大学、清華大学以下150大学くらいある。欧米でのPM博士課程にも他のアジア人学生はよく見かけるし、研究論文も多い。本当にこのような状態のまま、「マネジメントは人だよ、人。」「リーダーをどう育てるかだ」「プロジェクトの現場は理屈では割り切れない」などと言い続けていて、はたして物づくりニッポンは大丈夫なのだろうか? たしかにプロジェクトは人が動かすものだ。人が理屈だけで動かないことも確かだ。だが、マネジメントを客観的に計量化し、予測可能性を高める仕組みも一方では必要なのだ。それは、プロジェクト・マネジメントという普遍的な仕事を、リーダーの資質というただ一点に委ねず、誰でも一定レベルで遂行できるようにするためである。

つまり、マネジメントの『技術』のためには、マネジメントの『科学』がなければいけないということだ。わたしはこの科学が理系に属するのか文系に属するのかは知らない(「文系・理系」などという日本にしか存在しない分類には正直、興味がない)。わたしが知っているのは、この種の科学は未来に属しているということだけである。