モンテカルロスケジュール分析

英語名 Monte Carlo Schedule Analysis
読み方 モンテカルロ スケジュール アナリシス
難易度
所要時間 分析に半日〜1日
提唱者 スタニスワフ・ウラム / ジョン・フォン・ノイマン(1940年代)
目次

ひとことで言うと
#

各タスクの所要時間を「確定値」ではなく**「確率分布」で入力し、数千〜数万回のシミュレーションを実行**することで、プロジェクト全体の完了日を「○月○日までに完了する確率は80%」のように確率的に予測する手法。

押さえておきたい用語
#

押さえておきたい用語
3点見積もり(Three-Point Estimate)
各タスクの所要時間を楽観値・最頻値・悲観値の3つで見積もる手法のこと。モンテカルロ分析の入力データとなる。
PERT分布(Program Evaluation and Review Technique)
3点見積もりから確率分布を生成するベータ分布ベースの統計モデルのこと。最頻値に重みを置く。
P80(80パーセンタイル)
シミュレーション結果の中で80%の確率で達成できる完了日のこと。多くの組織がコミット日として採用する。
感度分析(Sensitivity Analysis)
どのタスクの不確実性がプロジェクト全体に最も影響するかを特定する分析のこと。トルネードチャートで可視化する。
S字カーブ(Cumulative Probability Curve)
シミュレーション結果を累積確率で表したグラフのこと。任意の日付における完了確率を読み取れる。

モンテカルロスケジュール分析の全体像
#

モンテカルロ分析:3点見積もり→シミュレーション→確率的予測の流れ
3点見積もり楽観値・最頻値・悲観値+依存関係の定義PERT分布/三角分布シミュレーション数千〜数万回のランダム抽出と計算Excel/Python/@Risk確率的予測P50/P80/P90の完了日を特定S字カーブで可視化感度分析(トルネードチャート)どのタスクの不確実性がプロジェクト全体に最も影響するかを特定影響の大きいタスクに優先的にリスク対策を講じる確率で語る計画一点見積もりの楽観バイアスを排する
モンテカルロ分析の進め方フロー
1
3点見積もり
各タスクの楽観値・最頻値・悲観値を設定し、確率分布に変換する
2
依存関係定義
タスク間の先行・後続関係を定義し、並行可能なタスクを特定する
3
シミュレーション
数千回のシミュレーションを実行し、完了日の確率分布を生成する
確率的報告
P50/P80/P90をS字カーブで示し、感度分析と対策案をセットで報告する

こんな悩みに効く
#

  • スケジュールを一点見積もりで立てて、毎回オーバーしてしまう
  • ステークホルダーに「いつ終わるのか」と聞かれて、自信を持って答えられない
  • リスクを「感覚」で判断していて、定量的な根拠がない

基本の使い方
#

ステップ1: タスクの所要時間を確率分布で見積もる

各タスクの所要時間を**3点見積もり(楽観値・最頻値・悲観値)**で定義する。

  • 楽観値(Best Case): すべてがうまくいった場合の最短期間
  • 最頻値(Most Likely): 最も起こりそうな期間
  • 悲観値(Worst Case): 問題が重なった場合の最長期間
  • 三角分布やPERT分布を使って確率分布に変換する

ポイント: 悲観値を過小評価しがち。過去の実績データを参考にする。

ステップ2: タスク間の依存関係を定義する

タスクの順序と並行可能性を明確にする。

  • クリティカルパス法と同様に、先行・後続関係を定義する
  • 並行実行可能なタスクを特定する
  • リソース制約も考慮する(同一担当者の並行不可など)

ポイント: 依存関係の精度がシミュレーション結果の精度を左右する。

ステップ3: モンテカルロシミュレーションを実行する

数千回のシミュレーションを実行して結果の分布を得る。

  • 各シミュレーションで、各タスクの所要時間を確率分布からランダムに抽出する
  • タスクの依存関係に従ってスケジュールを計算し、完了日を記録する
  • これを数千〜数万回繰り返し、完了日の確率分布を作成する

ポイント: Excel、Python、専用ツール(@Risk、Crystal Ballなど)で実行できる。

ステップ4: 結果を解釈してステークホルダーに共有する

シミュレーション結果を確率的な表現で報告する。

  • 「6月30日までに完了する確率は50%、7月15日までなら80%、7月31日までなら95%」
  • S字カーブ(累積確率分布)のグラフで視覚的に示す
  • ステークホルダーのリスク許容度に応じた目標日を設定する

ポイント: 「80%の確率で完了できる日」をコミット日とするチームが多い。

具体例
#

例1:基幹システムリプレイスのスケジュール分析(20タスク・6ヶ月想定)

状況: 基幹システムのリプレイスプロジェクト。全20タスク、想定6ヶ月。経営層は「3月末までに完了」を求めている。

3点見積もり例(主要タスク):

タスク楽観値最頻値悲観値
要件定義20日30日50日
DB設計10日15日25日
外部連携開発15日25日45日
テスト15日20日35日

シミュレーション結果(10,000回実行):

完了日確率
3月15日30%
3月31日55%
4月15日80%
4月30日95%

経営層への報告: 「3月末完了の確率は55%です。80%の信頼度を確保するには4月15日が必要です。外部連携開発のリスクが最も大きいため、ここにバッファを確保するか、先行着手する方法をご提案します」

結果: 根拠のある報告により4月15日を目標日として承認。外部連携開発の先行着手が決定し、実際には4月10日に完了した。

例2:製薬会社の臨床試験支援システム開発(8名・12ヶ月)

背景: 製薬会社の臨床試験データ管理システムの新規開発。8名チーム、12ヶ月計画。FDA規制対応が必要で、不確実性が高い。

3点見積もりの特徴: 規制対応タスクの悲観値が特に大きい。

タスク楽観値最頻値悲観値不確実性の理由
バリデーション計画3週5週12週FDA指摘による再作成リスク
電子署名実装2週4週8週21 CFR Part 11対応の複雑さ
監査証跡機能3週5週10週要件の解釈ブレ

シミュレーション結果(5,000回): P50 = 11ヶ月、P80 = 14ヶ月、P90 = 16ヶ月。当初の12ヶ月計画はP55相当で、半分近い確率で超過する見込み。

感度分析: バリデーション計画の不確実性が全体の38%を占める。

対策: バリデーションコンサルタントを初期から投入し、悲観値を8週に圧縮。再シミュレーションでP80 = 12.5ヶ月に改善。結果として12ヶ月と2週間で完了し、実質的に計画通りのリリースを達成した。

例3:自治体のDXプロジェクト(3名PMO・予算5億円・24ヶ月)

背景: 県庁の行政手続きオンライン化プロジェクト。複数ベンダーが参画する24ヶ月の大規模案件。議会答弁で「令和8年度中の稼働」を公約しており、スケジュールの信頼性が極めて重要。

モンテカルロ分析の導入: PMOが四半期ごとにシミュレーションを再実行し、議会・知事への報告資料に活用。

第1回シミュレーション(開始時):

  • P50 = 22ヶ月、P80 = 26ヶ月、P90 = 30ヶ月
  • 24ヶ月での完了確率: 62%

感度分析の結果: ベンダーA社のAPI開発と住民基本台帳連携の2タスクで全体の52%を占有。

対策実行後の第3回シミュレーション(6ヶ月後):

  • API開発のプロトタイプ先行実施で不確実性を圧縮
  • P80 = 23.5ヶ月に改善、24ヶ月での完了確率: 85%

結果: 議会に対して「85%の信頼度で令和8年度中に稼働可能」と定量的に報告。最終的に23ヶ月で本番稼働を達成し、予算内で完了した。

やりがちな失敗パターン
#

  1. 3点見積もりの幅が狭すぎる — 楽観値と悲観値の差が小さいと、シミュレーションの意味が薄れる。過去の実績データや専門家の意見を使って現実的な範囲を設定する
  2. 一度のシミュレーションで満足する — 前提条件が変わったら再実行が必要。タスク追加やリスク顕在化のたびに再シミュレーションする
  3. 確率を「確定」と誤解して伝える — 「80%の確率で4月15日」を「4月15日に確定」と受け取られないよう、確率的な表現の意味をステークホルダーと共有する
  4. 感度分析を省略する — シミュレーション結果だけでは「どこを改善すべきか」が分からない。感度分析で影響の大きいタスクを特定し、対策とセットで報告することが意思決定の質を高める

まとめ
#

モンテカルロスケジュール分析は、不確実性の高いプロジェクトにおいて「確率」で語るための強力なツール。一点見積もりの楽観バイアスを排し、リスクを定量化することで、ステークホルダーとの合理的な合意形成を可能にする。3点見積もりとシミュレーションの組み合わせは、見積もり精度を飛躍的に向上させる。