🎬 シナリオ
Day030 で WBS を作った「福袋オンライン抽選予約」(応募受付 12/20(日)10:00 開始。プレスリリース・SNS 広告で告知済み)の続き。今日は 9/28(月)。キックオフは 11/9(月)。
あなたは「2日余る」が何%の話なのかを確かめるため、担当者それぞれに楽観値 O・最頻値 M・悲観値 Pを出してもらった(単位: 担当者の稼働日)。
パスA(E1 = あなた: 決済・抽選系。上から順に1人で進める)
| WBS | 作業パッケージ | 単一 | O | M | P | P の理由(担当者のコメント) |
|---|---|---|---|---|---|---|
| 2.3 | 決済状態遷移の設計 | 3 | 2 | 3 | 6 | 決済代行の仕様書に無い挙動が見つかると問い合わせ待ち |
| 3.3 | オーソリ確保(応募時) | 2 | 1.5 | 2 | 5 | 決済代行のテスト環境(sandbox)が不安定だと止まる |
| 2.2 | 抽選ロジックの設計 | 3 | 2 | 3 | 6 | 第2・第3希望の繰り越しルールでマーケと揉めると延びる |
| 3.2 | 抽選ロジックの実装 | 4 | 3 | 4 | 9 | 公平性の検証で偏りが出たら作り直し |
| 3.4/3.5 | 本会計・オーソリ取消 | 3 | 2 | 3 | 8 | sandbox 依存。取消失敗時のリトライが仕様不明 |
| 3.6 | 未決済の無効化・繰り上げ当選 | 2 | 2 | 3 | 7 | 48時間タイマーと繰り上げの連鎖。初めて作る種類 |
| 4.3 | 決済状態遷移の全パターンテスト | 3 | 2 | 3 | 8 | sandbox 依存。パターン数が多い |
パスB(E2: 受付・負荷系)
| WBS | 作業パッケージ | 単一 | O | M | P | P の理由 |
|---|---|---|---|---|---|---|
| 2.1 | 応募フォームの設計 | 2 | 1.5 | 2 | 3 | デザイナーと並行。大きな不確実性なし |
| 2.5 | アクセス集中対策の設計 | 3 | 2 | 3 | 6 | 待機列の方式選定 |
| 3.1 | 応募フォームの実装 | 3 | 2 | 3 | 5 | — |
| 3.8 | アクセス集中対策の実装 | 4 | 3 | 4 | 9 | CDN 設定変更はインフラ担当の承認が要る |
| 3.7 | 重複応募検知の実装 | 3 | 2 | 3 | 7 | 本人確認情報の突合ルールが法務確認次第 |
| 4.5 | 負荷試験 | 2 | 2 | 3 | 8 | インフラ担当の負荷試験枠が取れないと最悪2週間待ち |
その他の事実(演習シナリオ上の設定値)
| 項目 | 値 | 出所 |
|---|---|---|
| 応募受付期間 | 12/20 10:00 〜 12/27 23:59 | 実測 告知済み |
| 抽選・当選発表 | 12/28(月)12:00 | 実測 マーケと合意 |
| 本会計の期限 | 12/30(水)12:00。未決済なら当選無効 → 繰り上げ当選 | 実測 Day030 の要件 |
| オーソリ有効期間 | 60日(12/20 のオーソリは 12/28 の本会計まで有効) | 実測 代行仕様書(シナリオ上の値。実物は要確認) |
| 1.0 要件定義 | 10月中に完了し、11/9 以降のパスに乗らない | 仮定 |
| 他の作業パッケージ | 2.4/2.6/3.9/4.1/4.2/4.4/5.x は QA・デザイナー・リードが並行で持つ | 仮定 |
| E1 の R1 支援 | 12/10〜12/14 のうち3日は総合テスト・リハーサル支援 | 仮定 |
| 福袋の在庫合計 | 5種類で 3,000個 | 実測 企画書 |
| 過去5件の「実績 ÷ 単一見積もり」 | 1.12 / 1.35 / 1.08 / 1.25 / 1.41 | 実測 振り返り記録 |
📝 課題
あなたのタスク: 10/2 の定例で事業部長に出す見積もりの資料一式を作ってください。
- 三点見積もり表: 13件それぞれの期待値 E と標準偏差 σ
- パス別の完了確率表: 各パスの E・σ、50%/85%/95% の日数、22日以内の確率。2本とも間に合う確率も
- 締め切りの引き直し: 13件すべてが本当に 12/9 までに要るのか。作業ごとに「本当に要る時点」を書き、リリースを分けた場合の確率を出し直す
- σ の足し方の点検: 同じ原因で一緒に遅れる作業は無いか。あるなら確率がどう変わるか
- バッファと判断日: 担当者に渡す目標、バッファの量と置き場所、「この日までにここが終わっていなければ、これを諦める」判断日
- 事業部長向け1ページ報告: 「一言で」の答えと、事業部長に決めてほしいこと
- 採らなかった案: 2つ以上、理由と判断が変わる条件つき
🔍 ヒント(段階的開示)
ヒント1: 「2日余る」は何%の話か
ヒント2: 合計の σ の出し方
ヒント3: 2本のパスの合流
ヒント4: P の理由を読み比べる
ヒント5: 12/20 10:00 に本当に要るのは何か
ヒント6: 目標とバッファ
ヒント7: 別の方法で検算
📚 背景知識・用語解説
E = (O + 4M + P) / 6、σ = (P − O) / 6 で近似する。1950年代末の米海軍ポラリス開発の PERT が始まり。PMBOK ガイド第6版 §6.4.2.4 は三角分布 (O+M+P)/3 と β 分布の2つを並べて示す(三角分布の方が E は大きく出る)。なぜ要るか: 所要時間は早い側には限りがあり、遅い側には長く伸びる。M をいくら足しても E の合計より小さい。単一見積もりの合計は「半分以上の確率で遅れる計画」になりやすい。
一次資料: Malcolm, Roseboom, Clark, Fazar, "Application of a Technique for Research and Development Program Evaluation", Operations Research 7(5) 646–669, 1959(DOI、書誌を Crossref で確認 参照日 2026-09-28)
E + 1.04σ で 85%、E + 1.64σ で 95%。同じ原因で一緒に遅れる作業は σ そのものの足し算に近くなる。独立として計算すると 85% の日を楽観側に置く。
一次資料: MacCrimmon & Ryavec, "An Analytical Study of the PERT Assumptions", Operations Research 12(1) 16–37, 1964(DOI、参照日 2026-09-28)
一次資料: Buehler, Griffin, Ross, "Exploring the 'planning fallacy'", JPSP 67(3) 366–381, 1994(DOI)/ Flyvbjerg, "From Nobel Prize to Project Management: Getting Risks Right", Project Management Journal 37(3) 5–15, 2006(DOI)いずれも参照日 2026-09-28
✅ 模範解答
0. 前提(カレンダー)
| 日 | 稼働日(11/9 = 1日目) | 意味 |
|---|---|---|
| 11/30(月) | 15日目 | R1 の担当者目標(M の合計) |
| 12/3(木) | 18日目 | パスA の判断日 |
| 12/9(水) | 22日目 | R1(応募受付)の開発完了 |
| 12/18(金) | 29日目。E1 は R1 支援3日を除き 26作業日目 | R2(抽選・決済確定)の開発完了 |
1. 三点見積もり表
| パス | WBS | 作業パッケージ | 単一 | O | M | P | E | σ | P の種類 |
|---|---|---|---|---|---|---|---|---|---|
| A | 2.3 | 決済状態遷移の設計 | 3 | 2 | 3 | 6 | 3.33 | 0.67 | 作業 |
| A | 3.3 | オーソリ確保 | 2 | 1.5 | 2 | 5 | 2.42 | 0.58 | 待ち(sandbox) |
| A | 2.2 | 抽選ロジックの設計 | 3 | 2 | 3 | 6 | 3.33 | 0.67 | 合意 |
| A | 3.2 | 抽選ロジックの実装 | 4 | 3 | 4 | 9 | 4.67 | 1.00 | 作業(作り直し) |
| A | 3.4/3.5 | 本会計・オーソリ取消 | 3 | 2 | 3 | 8 | 3.67 | 1.00 | 待ち(sandbox) |
| A | 3.6 | 無効化・繰り上げ当選 | 2 | 2 | 3 | 7 | 3.50 | 0.83 | 作業(初めて) |
| A | 4.3 | 決済の全パターンテスト | 3 | 2 | 3 | 8 | 3.67 | 1.00 | 待ち(sandbox) |
| B | 2.1 | 応募フォームの設計 | 2 | 1.5 | 2 | 3 | 2.08 | 0.25 | 作業 |
| B | 2.5 | アクセス集中対策の設計 | 3 | 2 | 3 | 6 | 3.33 | 0.67 | 作業 |
| B | 3.1 | 応募フォームの実装 | 3 | 2 | 3 | 5 | 3.17 | 0.50 | 作業 |
| B | 3.8 | アクセス集中対策の実装 | 4 | 3 | 4 | 9 | 4.67 | 1.00 | 承認待ち |
| B | 3.7 | 重複応募検知の実装 | 3 | 2 | 3 | 7 | 3.50 | 0.83 | 法務確認待ち |
| B | 4.5 | 負荷試験 | 2 | 2 | 3 | 8 | 3.67 | 1.00 | 待ち(インフラ枠) |
単一見積もりは13件中11件が M と同じで、残る2件(3.6・4.5)は M より小さい。担当者は「いちばんありそうな数字」か、それより楽観的な数字を付けていた。
2. パス別の完了確率表(全部を 12/9 に出す、今の計画のまま)
| 単一の合計 | M の合計 | E の合計 | σ | 50% | 85% | 95% | 22日以内 | |
|---|---|---|---|---|---|---|---|---|
| パスA | 20 | 21 | 24.6 | 2.22 | 24.6 | 26.9 | 28.2 | 12% |
| パスB | 17 | 18 | 20.4 | 1.86 | 20.4 | 22.3 | 23.5 | 80% |
| 2本とも | 0.12 × 0.80 | 約10% | ||||||
σ = √(0.444 + 0.340 + 0.444 + 1.000 + 1.000 + 0.694 + 1.000) = √4.92 = 2.22
22日以内: z = (22 − 24.58) / 2.22 = −1.16 → 約12% / 85% = 24.58 + 1.04 × 2.22 = 26.9
検算 導出: β-PERT から各作業を2万回引いて合計(Python、種 20260928)→ パスA 12.7%、パスB 79.9%、2本とも 10.0%
3. 締め切りの引き直し(本当に要る時点)
| WBS | 作業 | 本当に要る時点 | 理由 | リリース |
|---|---|---|---|---|
| 2.1/3.1 | 応募フォーム | 12/20 10:00 | 応募そのもの | R1(12/9) |
| 2.5/3.8/4.5 | アクセス集中対策・負荷試験 | 12/20 10:00 | 開始直後の集中 | R1 |
| 2.3/3.3 | 決済設計・オーソリ確保 | 12/20 10:00 | 応募時にオーソリを取る(E 5.75日、11/16 ごろ完了) | R1 |
| 3.7 | 重複応募検知 | 12/28 の抽選の前 | 「1アカウント1回」はフォームで止まる。複数アカウントの突合は全応募が出そろってから抽選前にまとめる方が材料が多い | R2 へ移す |
| 2.2/3.2 | 抽選ロジック | 12/28 12:00 | 抽選は締め切り後 | R2(12/18、12/23 リリース) |
| 3.4/3.5 | 本会計・取消 | 12/28 12:00 | 当選発表と同時 | R2 |
| 4.3 | 決済の全パターンテスト | R2 の前 | R2 | |
| 3.6 | 無効化・繰り上げ当選 | 12/30 12:00 | 本会計の期限の後に初めて動く | R2。間に合わなければ手動 |
オーソリ有効期間が60日あるので成り立つ分け方。30日未満なら成り立たない。
| リリース | 中身 | E | σ | 85% | 締め切り | 確率 |
|---|---|---|---|---|---|---|
| R1 応募受付 | パスB から 3.7 を外したもの | 16.9 | 1.66 | 18.6 | 22日(12/9) | 99.9%(検算 99.7%) |
| R2 抽選・決済確定 | パスA の7件 | 24.6 | 2.22 | 26.9 | 26作業日(12/18) | 74%(独立として) |
4. σ の足し方の点検(sandbox の相関)
パスA の 3.3・3.4/3.5・4.3 は P の理由がすべて sandbox。不安定な週は3件そろって遅れる。この3件の σ は、独立なら √(0.34+1+1) = 1.53、一緒に動くなら 0.58+1+1 = 2.58。
| パスA | σ | 85% の日数 | 26日以内 |
|---|---|---|---|
| 独立として | 2.22 | 26.9 | 74% |
| sandbox の3件が一緒に動く | 3.04 | 27.7 | 68%(検算 70%) |
5. バッファと判断日
12/3(木)終業時点(E1 の18作業日目)で 3.4/3.5 が終わっていなければ、3.6 の自動化はやめ、手動の予備手順に切り替える。
| 方針 | R2 が 12/18 に間に合う確率 導出 | 3.6 を自動化できる割合 |
|---|---|---|
| 3.6 を必ず自動化 | 70% | 100%(ただし遅れる) |
| 12/3 を判断日にする | 91% | 63% |
| 最初から手動 | 94% | 0% |
| 判断日を 12/4 にする | 84% | 78% |
sandbox 相関ありの β-PERT 乱数2万回。判断日を1日遅らせると 91% → 84%。12/3 が「自動化を残せる見込み」と「85% 以上」を両立できる最後の日。
手動の予備手順(E2 が R1 完了後に1日で準備): 12/30 12:00 に未決済の当選者を CSV で抽出 → 当選無効にする運用スクリプト → 次点者へ繰り上げ通知を手動送信。在庫3,000個・未決済3% 仮定 なら約90件、CS 1名と E1 で半日。
| 担当者に渡す目標(M の合計) | 85% の日数 | プロジェクトバッファ(85% − M) | 締め切りまで | |
|---|---|---|---|---|
| R1(E2) | 15日目 = 11/30 | 18.6 | 3.6日(12/1〜12/4) | さらに約3日 |
| R2(E1) | 21作業日目 = 12/8 | 27.7(相関あり) | 6.7日 | 3.6 を外せば 85% は 24.3 |
- 担当者には M を目標として渡し、E や P は渡さない。余裕はパスの最後にまとめて PM が持ち、減り方を毎週見る(金曜の進捗可視化でバッファ消費グラフに)
- 待ちから来る P を先に潰す(数字には入れていない): 今週中にインフラの負荷試験枠を 11/27〜12/2 で予約/決済代行に 11〜12月の sandbox 保守予定を問い合わせ
6. 参照クラスでのクロスチェック
| 単一 × 1.25(過去5件の中央値) | 三点見積もりの E | 差 | |
|---|---|---|---|
| パスA | 25.0 | 24.6 | 0.4日 |
| パスB | 21.3 | 20.4 | 0.8日 |
別々の2つの方法が同じ桁を出した。 もし三点の E が単一 × 1.05 程度なら、P の聞き方が甘かった疑いがある。
🧮 試算ツール(O・M・P を変えてみる)
| パス | WBS | 作業 | O | M | P | E | σ |
|---|
正規近似での計算。模範解答の乱数検算とは1〜3ポイントずれることがある。判断日の方針(91%)は乱数でしか出せないので、ここでは「3.6 を外す/外さない」の両端だけを見る。
7. 事業部長への報告(10/2 定例・1ページ)
福袋抽選予約 — 12/20 に間に合う確率と、決めてほしいこと
12/20 10:00 の応募受付は 99% 以上で間に合います。
ただし「全部を 12/9 に仕上げる」今の計画のままだと、間に合う確率は約10%です。
何を変えたか
- 抽選・本会計・繰り上げ当選は応募締め切り(12/27)の後に動くので、2回に分けてリリースします。R1(応募受付)12/15 凍結、R2(抽選・決済確定)12/23 リリース
- 重複応募の検知は、応募時ではなく抽選前にまとめて行います(R2)
- 繰り上げ当選の自動化は12/3 時点の進み具合で判断し、遅れていれば手動手順(約90件・半日)で運用します
| 見込み | 締め切り | |
|---|---|---|
| R1 応募受付 | 99%(50%なら 12/2、85%なら 12/4 に開発完了) | 12/9 |
| R2 抽選・決済確定 | 91%(12/3 の判断を入れた場合) | 12/18 |
決めてほしいこと(10/9 まで)
- 12/23 の R2 リリースの承認: 応募期間中のリリース。R2 はバッチと管理画面だけで応募の画面・API に触れない。リリース後に応募の通し確認(10分)
- 繰り上げ当選を手動で行う場合の CS 1名の確保(12/30 午後、半日)
私たちが今週やること: インフラの負荷試験枠の予約(11/27〜12/2)、決済代行への sandbox 保守予定の確認
🗂️ 検討した案と採らなかった理由
| 案 | 内容 | 判断 | 理由 | 判断が変わる条件 |
|---|---|---|---|---|
| 分割リリース+判断日 | R1/R2 に分け、3.7 を抽選前へ、3.6 は 12/3 に判断 | 採用 | R1 99%、R2 91%。削るのは 3.6 の自動化だけで、63% の場合は残せる | — |
| 人を足す | 他チームから1人借りてパスA を分担 | 不採用 | 決済状態遷移は E1 の設計に依存し、分けられるのは 4.3 くらい。立ち上がりで最初の2週間はむしろ遅れる(Brooks の法則) | 決済代行の連携経験者を 11/9 から借りられる場合 |
| 1回のリリースのまま P で計画 | 担当者の締め切りを P の合計(A 49日相当)で引く | 不採用 | 22日に入らない。P を締め切りにすると余裕は使い切られる | — |
| 三角分布で見積もる | E = (O+M+P)/3 | 今回は不採用 | パスA は 28.2日で β 分布より 3.6日保守的。参照クラス(25.0)とずれるので、今回の M は信用できると判断 | 参照クラスの比率が 1.4 超の案件が続く、または担当者がその種類を初めてやる場合 |
| 3.6 を最初から手動 | 自動化をあきらめる | 次点 | 94% で最も安全だが、自動化を残せる 63% の場合を捨てる。来年も福袋はある | 12/3 より前に sandbox 障害が1週間以上続いた場合は判断日を待たず手動へ |
| 3.7 を応募時のまま | リアルタイムで重複を弾く | 不採用 | R1 が 99.9% → 80% に落ちる。抽選前の突合でも公平性は守れる | 法務が「応募時点で弾く必要がある」と判断した場合(10月中に確認) |
🧭 なぜこう作るのか
⚠️ よくある失敗パターン
| 失敗パターン | なぜ問題か | 改善策 |
|---|---|---|
| 単一見積もり(または M)を足して「○日余る」と言う | 半分以上の確率で遅れる計画になる | E と σ を出し「何%で間に合うか」で言う |
| σ を単純に足す/いつも分散を足す | どちらかに決め打ちすると幅を見誤る | P の理由から相関のある作業を見つけ、両方で計算して幅を示す |
| 一番長いパスだけで確率を出す | 合流点で確率は掛け算になり楽観側にずれる | 合流点で「両方が間に合う確率」を出す |
| P を「想像できる最悪」にする/O と同じくらい小さくする | E が不当に膨らむ/幅が消える | 「100回に1〜2回ある悪い場合」と聞き、P の理由を1行書いてもらう |
| P や 85% の日を担当者の締め切りにする | 余裕は使い切られる(パーキンソン) | 担当者には M、余裕はパスの最後にまとめる |
| 足りない分を「頑張る」「残業」で埋める | 確率は変わらず判断が遅れる | 締め切りを引き直し、諦めるものと判断日を先に決める |
🏢 実務での使いどころ
- エンジニアとして: 「いつ終わる?」に「50%ならこの日、85%ならこの日」と答える習慣が信頼になる。P の理由を1行書いてもらうだけで、リスク登録簿の下書きができる
- PdM・事業側と: 何を諦めるかを決めるのは事業側。エンジニアは「どれを外すと何%になるか」を数字で出す
- 経営層へ: 「10回やって9回は間に合う計画です」と言い換える
- スクラムでも: Day037 の「1稼働日あたりのベロシティの幅」から 85% の予測を出すのは、同じ考え方をスプリント単位にしたもの
転用できるテンプレート
三点見積もり表: WBS | 作業 | 単一 | O | M | P | E=(O+4M+P)/6 | σ=(P−O)/6 | P の理由 | P の種類(作業/待ち/合意)
パス別の確率表: パス | 単一の合計 | M の合計 | E の合計 | σ | 50%/85%/95% の日数 | 締め切り以内の確率 | 合流点での確率
締め切りの引き直し: 作業 | 本当に要る時点 | 理由 | 載せるリリース
バッファ: 担当者に渡す目標(M) | 85% の日 | バッファ量 | 判断日と、そこで諦めるもの
報告: 一言で(何%) | 何を変えたか | 見込みの表 | 決めてほしいこと(期限つき) | 自分たちがやること
➡️ 次のステップ
- テーマ1-3「スケジュール線表」: R1/R2 と判断日(12/3)を依存関係つきのガントチャートに描く
- 金曜(PM-推進 テーマ#2 進捗可視化): R2 のバッファ 6.7日が毎週どれだけ減ったかを示すバッファ消費グラフを作る
- 自分への問い: 「R1 が 99% なら、R1 のバッファを R2 に回せないの?」と聞かれたら、E2 が 12/1 以降に何をすれば R2 の確率が上がるか答えられるか(ヒント: 4.3 は E2 と QA でも進められる)
- 自分への問い: 11/20 時点でパスA が予定より2日遅れていたら、判断日を早めるべきか。どの数字を見て決めるか
🚧 扱わなかった範囲(この演習の限界)
- 人の割り当ては「パスA=E1、パスB=E2 が順番に進める」と単純化した。人の組み替えでパスの形が変わる話は、クリティカルチェーン(Senior)で扱う
- 3.7 を抽選前に移す案は、法務の判断(応募時点で弾かなくてよいか)が前提。10月中の確認が必要
- 乱数での検算は β-PERT を仮定した計算で、分布の形自体は確かめていない。sandbox の相関は「3件が完全に一緒に動く」極端な場合で計算した
- 過去5件の比率・在庫3,000個・未決済3%・オーソリ有効期間60日は演習シナリオ上の設定値
- EVM(出来高で進捗を測る方法)は扱っていない(テーマ1-6)
- 外部の一次資料は論文4点(Malcolm ほか 1959・MacCrimmon & Ryavec 1964・Buehler ほか 1994・Flyvbjerg 2006。書誌を Crossref で確認、参照日 2026-09-28。本文の数値は引用していない)と書籍2点(PMBOK ガイド第6版・Goldratt『Critical Chain』)