要員が集まらない中、クリティカルパスの組み替えで納期を守った事例
この事例は、計画どおりに人が集まらなかったプロジェクトの全記録です。教育サービス会社の受講管理システム刷新で、6月から8月にかけて累計9人月ぶんの要員が不足しました。こういうとき、多くの現場は「足りない分だけ後ろ倒しにする」と判断します。この案件では違う手を打ちました。作業そのものは1日も減らさず、順番だけを組み替えて、納期を1日も動かさずに完了しています。
登場する会社・数字はすべて架空です。ただし、人月・金額・日数・不具合件数は、記事の中で辻褄が合うように作ってあります。ご自分の現場の数字に置き換えながら読んでみてください。
■ 会社と案件の前提
項目 | 内容 |
|---|---|
会社名(架空) | まなびカレッジ株式会社 |
業種 | 教育サービス(社会人向けの資格講座) |
年商 | 38億円 |
従業員数 | 260名 |
年間受講者数 | 24,000名 |
提供講座数 | 180講座 |
案件名 | 受講管理システム・オンライン学習基盤の刷新 |
期間 | 2025年4月1日 〜 2026年3月2日 本番稼働(11か月) |
承認予算枠 | 9,600万円 |
当初計画額 | 108人月 × 82万円 = 8,856万円 |
体制 | 社内4名 + ベンダー最大10名(最大14名) |
新規開発規模 | 52KStep |
受講者が申し込み、受講し、修了証を受け取るまでを扱う「受講管理」と、動画講義を配信する「オンライン学習基盤」を、同時に入れ替える案件です。学習基盤は外部のSaaSを使い、自社側とはデータ連携でつなぐ構成にしました。
■ 何を「成功」とみなしたか
着手前に、QCDそれぞれの合格ラインを紙に書いて関係者で合意しました。これを決めておかないと、後で判断がぶれます。
観点 | 合格ライン | なぜその線なのか |
|---|---|---|
Q(品質) | 受入テストの不具合密度 0.25件/KStep 以下 | 稼働直後に新規講座の受付が始まり、手直しのための停止期間が取れないため |
C(コスト) | 承認枠 9,600万円 以内 | 枠を超えると取締役会の再承認が必要で、決裁に2か月かかるため |
D(納期) | 2026年3月2日 稼働(1日も動かせない) | 4月期の新規講座の受付を、新システムで始める前提で募集要項を印刷済みのため |
この3つのうち、動かせないのはDでした。だからこそ、要員が足りないと分かった時点で「納期を動かす」という選択肢が最初から無く、別の手を探すことになります。逆に言えば、どれが動かせないかを先に決めておいたから、6月に迷わず動けたとも言えます。
■ 立ち上げ時の計画:体制・WBS・マイルストーン
まず体制です。ベンダー側は「6月から設計3名、7月から開発5名」という前提で見積りが出ていました。
役割 | 人数 | 所属 |
|---|---|---|
PM | 1名 | 社内 |
業務リーダー(受講管理) | 1名 | 社内 |
業務リーダー(講座運営) | 1名 | 社内 |
インフラ担当 | 1名 | 社内 |
ベンダーPL | 1名 | ベンダー |
設計担当 | 最大3名 | ベンダー |
開発担当 | 最大5名 | ベンダー |
テスト担当 | 最大1名 | ベンダー |
次にWBSです。合計108人月を8つの塊に分けました。右端の実績は、この記事の最後に確定する数字です。
No | 作業 | 計画(人月) | 実績(人月) |
|---|---|---|---|
1.0 | プロジェクト管理 | 12.0 | 13.5 |
2.0 | 要件定義 | 14.0 | 14.0 |
3.0 | 受講管理 基本設計 | 16.0 | 17.0 |
4.0 | 受講管理 詳細設計・開発 | 30.0 | 31.5 |
5.0 | 学習基盤連携 設計 | 8.0 | 8.0 |
6.0 | 学習基盤連携 開発 | 12.0 | 12.5 |
7.0 | 結合テスト | 10.0 | 9.5 |
8.0 | 受入支援・データ移行 | 6.0 | 6.0 |
― | 合計 | 108.0 | 112.0 |
マイルストーンは7つです。2つめの「連携I/F仕様確定」は当初は無く、6月の組み替えで追加したものです。
マイルストーン | 計画 | 実績 |
|---|---|---|
要件定義 完了 | 2025/5/16 | 2025/5/16 |
連携I/F仕様 確定 | ―(6月に追加) | 2025/6/27 |
受講管理 基本設計 完了 | 2025/7/11 | 2025/7/22(6営業日遅れ) |
開発 完了 | 2025/11/28 | 2025/11/28 |
結合テスト 完了 | 2026/1/23 | 2026/1/23 |
受入テスト 完了 | 2026/2/20 | 2026/2/20 |
本番稼働 | 2026/3/2 | 2026/3/2 |
計画時点のクリティカルパスは180営業日、稼働日までに使える営業日は188日でした。つまり余裕は8営業日しかありません。この8日が、後で効いてきます。
■ 4月〜5月:要件は予定どおり。届かなかったのは「要員の返事」だった
要件定義は5月16日に予定どおり完了しました。ここまでは順調です。問題は、別のところで起きていました。
5月の第2週、ベンダーPLから「6月着任予定の設計要員2名のうち、1名の着任が7月にずれそうです」という連絡が入ります。さらに5月末には、もう1名も8月になる見込みだと伝えられました。ベンダー側の別案件が延びていたことが理由です。
ここでPMがやったことは、「困った」と言う前に、遅れが何日になるのかを計算することでした。設計要員2名の着任が2か月ずれると、学習基盤の連携設計の着手が26営業日後ろにずれます。改定前のクリティカルパスは「要件定義 → 受講管理基本設計 → 学習基盤連携設計 → 連携開発 → 結合テスト → 受入」でしたから、この26日はそのまま最終日に効きます。
改定前のクリティカルパス:180営業日
要員遅れの影響:+26営業日 → 206営業日
稼働日までに使える営業日:188営業日
結果:18営業日の超過見通し
「なんとなく遅れそう」ではなく「18営業日足りない」と言えたことが、次の判断を早くしました。数字にすると、関係者が同じ絵を見られるようになります。
■ 6月:足りない9人月を、どの作業に当てるかで決めた
6月から8月にかけて、要員の計画と実績は次のようになりました。

月 | 計画(人) | 実績(人) | 差 |
|---|---|---|---|
2025年6月 | 9 | 6 | −3 |
2025年7月 | 12 | 8 | −4 |
2025年8月 | 13 | 11 | −2 |
3か月累計 | 34 | 25 | −9人月 |
ここでPMが立てた問いは、「どうやって9人月を追加調達するか」ではありませんでした。調達は並行して当たっていましたが、すぐには埋まらないことが分かっていたからです。立てた問いはこうです。
「足りない人手は、どの作業に当てないと納期に響くのか」
言い換えると、いま不足している設計要員がいなくて困るのは、クリティカルパス上の作業なのか、そうでないのか、という問いです。調べた結果、不足しているのは設計要員で、そのしわ寄せが出るのは学習基盤の連携設計でした。そしてその作業は、改定前の計画ではクリティカルパス上にありました。
ここまで分かれば、打ち手は2つに絞られます。(1)その作業に人を入れる、(2)その作業をクリティカルパスから外す。(1)ができないので、(2)を検討することになりました。
■ 組み替えの中身:連携I/F仕様だけを先に確定した
学習基盤の連携設計は、なぜ受講管理の基本設計の完了を待っていたのでしょうか。理由は単純で、「受講管理の設計が固まらないと、連携するデータ項目が決まらない」と考えていたからです。
そこで、この前提を疑ってみました。連携に本当に必要なのは、受講管理の設計すべてではなく、受け渡すデータ項目と方式だけです。受講者ID・講座ID・受講状況・修了判定、そしてどのタイミングでどちらから渡すのか。これは受講管理の内部設計を待たなくても決められます。
6月中旬に業務リーダーとベンダーPLで2回の集中討議を行い、6月27日に連携I/F仕様を確定させました。これを新しいマイルストーンとして立て、そこから学習基盤側を並行で着手しています。

項目 | 改定前 | 改定後 |
|---|---|---|
クリティカルパス | 要件定義 → 受講管理基本設計 → 学習基盤連携設計 → 連携開発 → 結合テスト → 受入 | 要件定義 → 受講管理基本設計 → 受講管理開発 → 結合テスト → 受入 |
クリティカルパス日数 | 180営業日 | 168営業日 |
稼働日までの営業日 | 188営業日 | 188営業日 |
余裕 | 8営業日 | 20営業日 |
要員遅れ(+26日)の影響 | そのまま最終日に効く | クリティカルパス外なので効かない |
大事なのは、作業量を1日も減らしていないことです。学習基盤連携設計は26日のまま、連携開発も38日のままです。変えたのは着手できる時期、つまり順番だけ。それだけで、いちばん長い道が180日から168日になりました。
■ 組み替えに伴って動かした管理帳票
計画を変えるときは、絵を描いて終わりにせず、帳票まで直さないと元に戻ります。この案件で実際に直したのは次の5点です。
WBSのベースライン再設定:5.0と6.0の開始日・終了日を変更。人月の配分は変えていない(6/27にPMが実施)
マイルストーンの追加:「連携I/F仕様確定(2025/6/27)」を正式なマイルストーンとして登録
課題の起票:I-018「連携I/F仕様をどこまで先に決めるか」を起票し、期限を6/20に設定
リスクの見直し:R-03の対応欄を「要員の追加調達を依頼」から「連携I/F仕様を先に確定し、学習基盤側をクリティカルパスから外す」に書き換え
TODOの追加:連携I/F項目一覧のドラフト作成(ベンダーPL・6/18期限)
特に2つめのマイルストーン追加は効果がありました。「6月27日に何が決まっていないとまずいのか」が一目で分かる状態になり、週次の会議で自然に進捗が追われるようになったからです。帳票に載っていない約束は、忘れられます。
■ 9月〜1月:組み替え後の進捗(EVM)
9月に要員がようやく揃い、以降は計画を上回る人数を受講管理の開発に集中させました。4つの時点の数字です。
時点 | PV(万円) | EV(万円) | AC(万円) | SPI | CPI |
|---|---|---|---|---|---|
2025年8月末 | 3,772 | 3,320 | 2,952 | 0.88 | 1.12 |
2025年11月末 | 6,724 | 6,590 | 6,396 | 0.98 | 1.03 |
2026年1月末 | 8,282 | 8,240 | 8,446 | 0.99 | 0.98 |
完了時 | 8,856 | 8,856 | 9,184 | 1.00 | 0.96 |
ここで1つ、読み間違えやすい数字があります。8月末のCPIが1.12という点です。CPIが1を超えているので「予算に対して順調」に見えますが、実態は違います。予定した人数が入っていないから、お金も使われていないだけです。
CPIだけを見ていると、このプロジェクトは8月末時点で「コスト良好・スケジュールやや遅れ」に見えます。SPIが0.88であることと合わせて見ると、正しい読み方は「人が入っていないので、出来高もコストも両方とも計画より少ない」になります。CPIが良いときほど、人月の実績とセットで見てください。
9月以降はCPIが下がっていきますが、これは計画を上回る人数を投入した結果なので、想定どおりです。最終的なCPIは0.96、金額にして計画比+328万円(+3.7%)でした。
■ 結合テストと受入テスト:品質の数字
納期を守るために人を集中投入したプロジェクトでは、品質が落ちていないかを別途確認する必要があります。新規開発規模52KStepに対する検出件数は次のとおりです。
工程 | 検出件数 | 不具合密度(件/KStep) | 社内基準 | 判定 |
|---|---|---|---|---|
結合テスト | 68件 | 1.31 | 1.00以上 | 基準内 |
受入テスト | 9件 | 0.17 | 0.25以下 | 基準内 |
稼働後1か月 | 2件 | 0.04 | 0.10以下 | 基準内 |
結合テストの基準が「1.00以上」になっている点に注目してください。これは少なすぎたら疑うという基準です。結合テストで不具合が出ないのは、品質が良いからではなく、テストが甘いからであることが多いためです。この案件では1.31件/KStepが出たので、テストは効いていると判断しました。
受入テストで出た9件のうち、7件は画面表示の文言や並び順に関するもので、2件が修了判定のロジックに関するものでした。後者2件は、連携I/F仕様を6月に先に決めたときに、修了判定をどちら側で行うかの記述があいまいだったことが原因です。先に決めたことの副作用が、ここで出たことになります。
■ 結果(QCD)
観点 | 合格ライン | 実績 | 判定 |
|---|---|---|---|
Q(品質) | 受入テスト 0.25件/KStep 以下 | 0.17件/KStep(9件/52KStep) | 達成 |
C(コスト) | 承認枠 9,600万円 以内 | 9,184万円(枠の95.7%、計画比+3.7%) | 達成 |
D(納期) | 2026年3月2日 稼働 | 2026年3月2日 稼働 | 達成 |
コストは計画の8,856万円に対して9,184万円、328万円の超過でした。これは9月以降に計画を上回る人数を投入したぶんです。動かせないDを守るために、動かせる幅のあったCを使った、という結果になります。どれを守り、どれを差し出すかを先に決めておいたので、この超過は事後報告ではなく事前の合意で処理できました。
■ 管理帳票の実物
この案件で実際に回していた課題・リスク・TODOの中身です。件数は多くありません。多く起票することより、載っているものが毎週動いていることのほうが大事だと考えていたためです。
課題管理表
ID | 内容 | 影響(日数) | 期限 | 状態 |
|---|---|---|---|---|
I-014 | 設計要員2名の着任が6月→7月・8月にずれる見込み | クリティカルパス +26日 | 2025/6/13 | 完了 |
I-018 | 連携I/F仕様を「どこまで先に決めるか」が未定義 | 上記26日を解消できるかが決まる | 2025/6/20 | 完了 |
I-021 | 学習基盤SaaS側の仕様回答が2週間待ち | 連携設計 +8日(CP外) | 2025/7/4 | 完了 |
I-027 | 受講データの旧形式が3種類あると判明 | データ移行 +4日 | 2025/10/17 | 完了 |
I-033 | 受入テストの講師側テスターが確保できない | 受入テスト +5日 | 2026/1/16 | 完了 |
影響の欄に必ず日数を書くようにしていました。「重要」「大」と書くより、「+26日」と書いたほうが、読んだ人が動きます。
リスク管理表
ID | リスク | 発生度 | 影響 | 監視する数字 | 対応 |
|---|---|---|---|---|---|
R-03 | 設計要員が計画どおり集まらない | 高 | CP +20日以上 | 月初時点の着任確定人数 | 連携I/F仕様を先に確定し、学習基盤側をCPから外す |
R-07 | 学習基盤SaaSの仕様変更 | 中 | 連携開発 +10日 | SaaS側のリリース予告 | 連携部を1モジュールに閉じ、変更点を局所化する |
R-11 | 受講者データの移行不備 | 中 | 稼働延期 | リハーサルでの不一致件数 | 本番同等データで3回リハーサルを行う |
R-15 | 講座マスタ180件の登録が稼働日に間に合わない | 低 | 稼働 +3日 | 週次の登録済講座数 | 12月から先行登録を開始する |
R-03は、6月の組み替えで対応欄を書き換えたリスクです。当初は「要員の追加調達を依頼する」と書いてありました。これは相手任せの対応で、自分では結果をコントロールできません。組み替え後は、自分たちの判断だけで実行できる対応に置き換わっています。
TODO
内容 | 担当 | 期限 | 状態 |
|---|---|---|---|
連携I/F項目一覧のドラフト作成 | ベンダーPL | 2025/6/18 | 完了 |
設計要員の着任確定日をベンダー営業に確認 | PM | 2025/6/11 | 完了 |
組み替え後WBSのベースライン再設定 | PM | 2025/6/27 | 完了 |
移行リハーサル1回目の環境準備 | インフラ担当 | 2025/11/7 | 完了 |
講座マスタ先行登録80講座の完了 | 講座運営リーダー | 2025/12/19 | 完了 |
■ 振り返りと、自分の現場で使うなら
このプロジェクトで効いたのは、次の4つでした。
遅れを日数に換算してから相談する:「要員が足りません」ではなく「18営業日足りません」。数字にすると、相手も判断できる
問いを「人をどう集めるか」から「どの作業に当てないと響くか」に変える:後者なら、自分たちだけで答えを出せる
依存関係の前提を1つずつ疑う:「設計が終わらないと連携は決まらない」は、本当に全部が必要なのかを確かめる
計画を変えたら帳票も変える:WBSのベースライン、マイルストーン、リスクの対応欄まで直して初めて、変更が定着する
逆に、うまくいかなかった点もあります。連携I/F仕様を急いで決めたことで、修了判定をどちら側で行うかの記述があいまいになり、受入テストで2件の不具合になりました。先に決めるときほど、決めた内容の穴を誰かに読み返してもらうべきでした。
最後に、明日から使える形にまとめます。スケジュールが厳しくなったとき、まず1枚の紙にこう書いてみてください。
いま遅れているのは、何営業日ぶんか
その遅れは、クリティカルパス上の作業で起きているか
クリティカルパス上でないなら、放っておいてよい(他に手を打つ)
クリティカルパス上なら、その作業の「待っている理由」を書き出す
待っている理由のうち、本当に全部が必要かを1つずつ確かめる
この5行で、かなりの場面が整理できます。作業を減らさなくても、順番を変えるだけで間に合うことは、思っているより多いです。