Day 016 — PM-計画: WBS基礎

2026-08-31 (Mon) 🟢 Junior PM-計画(計画・WBS) 成果物: WBS(作業分解構造)

🎬 シナリオ

MOps(Marketing Ops/販促システム)チームで「お気に入り商品の値下げ通知(プライスドロップアラート)機能」の開発が決まった。あなたはエンジニア3年目としてこのプロジェクトの担当エンジニア兼進行管理役に任命された。体制はエンジニア2名(あなたともう1名)・デザイナー1名・QA1名で、6週間後のリリースを目指す。

💬
チームリード「まずWBSを作って、キックオフミーティングでどこにどれくらい時間がかかるか説明できるようにしてほしい」

背景として、マーケ部門から「お気に入り登録された商品はセール時に再訪問・再購入されやすいが、値下げに気づかず機会損失になっているケースが多い」というデータが共有され、値下げ発生時に会員へ能動的に通知する機能が企画された。

要件:

  • 会員は既存のお気に入り登録機能で商品をお気に入りに追加できる(この機能自体は開発対象外)
  • お気に入り商品の価格が登録時の価格より下がったら、プッシュ通知・メールで会員に通知する
  • セール開始時など大量の値下げが同時発生すると通知が殺到し会員体験を損なうため、1会員あたり1日の通知数に上限を設け、上限を超える分は「本日の値下げまとめ」ダイジェスト形式に切り替える
  • 在庫調整で短期間に値下げ→値上げを繰り返す商品があり、そのたびに通知が飛ぶと会員の信頼を損なうため、同一商品について一定期間は再通知しないクールダウン期間を設ける
  • 会員はマイページで通知方法(プッシュ/メール/両方/オフ)を設定できる
  • 価格変動データは、物流・価格担当部門が運用する外部価格管理システムから日次バッチで取得する

📝 課題

あなたのタスク: 上記プロジェクトのWBSを、作業パッケージ単位(1〜2週間で完了できる粒度)まで分解して表形式で作成してください。

🔍 ヒント(段階的開示)

取り組む前のヒント
  • まず大きなフェーズ(要件定義/設計/実装/テスト/リリース準備)に分け、そこから機能単位・技術要素単位に分解していく
  • 「通知を実装する」だけでなく「通知殺到防止ロジック(上限・ダイジェスト切替・クールダウン)の実装」のように具体的な粒度まで割ること
  • 通知殺到防止(上限・ダイジェスト・クールダウン)は要件としては地味に見えるが、設計・実装・テストいずれにも影響する重要要素なので独立した作業パッケージとして扱う
  • 外部価格管理システムとの連携はプロジェクト外部に依存する要素なので、要件定義の早い段階で連携仕様を確認しておく
  • 「通知が来ない」「通知が来すぎる」という問い合わせが増えることを見越し、CS部門向けの対応準備も忘れずに含める(100%ルール)

📚 背景知識・用語解説

WBS(Work Breakdown Structure、作業分解構造)とは、プロジェクトのスコープ全体を、管理・見積もりが可能な単位まで階層的に分解したものです。単なるタスクリストと違い、「プロジェクトの成果物」を起点に分解していく点が特徴です。タスク(動詞ベース)ではなく成果物(名詞ベース)で考えると、「言われた作業だけ並べて肝心な成果物を作り忘れる」抜け漏れに気づきやすくなります。

💡
100%ルール: WBSの各階層で、子要素を全部足すと親要素の100%をカバーしている必要があるという原則。プライスドロップアラートの例で言えば、「価格変動検知」「通知送信」「通知設定画面」という機能面の要件を満たしただけでは、「通知殺到防止」「クールダウン」「CS対応準備」のような、地味だが要件に明記されている・または明記されていなくても運用上必須な要素を見落とすと100%ルール違反になります。

作業パッケージ(Work Package): WBSの最下層、実際にアサイン・見積もりの対象になる単位。目安として1〜2週間で完了できる粒度に分解します。これより粗いと「今どこまで進んでいるか」が見えず、遅延に気づくのが遅れます。逆に細かすぎると管理コスト(進捗確認・報告のオーバーヘッド)が増えて非効率になります。

外部依存を含むWBSの注意点: 今回のように「物流・価格担当部門の外部価格管理システム」というプロジェクト外部のシステムに依存する場合、そのシステムのバッチ頻度・データ項目仕様を確認する作業を要件定義フェーズの独立した作業パッケージとして立てておくべきです。仕様確認を後回しにすると、設計・実装段階で「想定していたデータ項目がない」といった手戻りが発生しやすくなります。

✅ 模範解答

コードフェーズ / 作業パッケージ見積もり担当ロール
1.0要件定義
1.1通知条件(値下げ幅の閾値有無、対象範囲)のヒアリング・要件確定2日エンジニア/マーケ
1.2通知殺到防止ルール(1日上限・ダイジェスト切替基準・クールダウン期間)の方針決定2日エンジニア
1.3外部価格管理システムとのデータ連携仕様(バッチ頻度・データ項目)の確認1日エンジニア/物流・価格担当
1.4メール配信基盤・プッシュ通知基盤の既存キャパシティ確認(配信数急増耐性)1日エンジニア/インフラ
2.0設計
2.1お気に入り商品価格変動検知バッチのDB・処理設計4日エンジニア
2.2通知殺到防止ロジック(上限カウント・ダイジェスト切替・クールダウン管理)の設計4日エンジニア
2.3プッシュ通知・メール配信の既存配信基盤への連携設計3日エンジニア
2.4マイページ通知設定画面のUI設計3日デザイナー
3.0実装
3.1外部価格管理システムからの日次バッチ取り込み実装4日エンジニア
3.2価格変動検知・値下げ判定ロジックの実装4日エンジニア
3.3通知殺到防止ロジック(上限カウント・ダイジェスト生成・クールダウン管理)の実装5日エンジニア
3.4プッシュ通知送信処理の実装3日エンジニア
3.5メール通知(通常・ダイジェスト両テンプレート)送信処理の実装3日エンジニア
3.6マイページ通知設定画面の実装3日エンジニア/デザイナー
4.0テスト
4.1単体テスト・結合テスト3日エンジニア
4.2大量値下げ同時発生を想定した通知殺到シナリオテスト3日QA/エンジニア
4.3短期間に値下げ・値上げを繰り返す商品でのクールダウン動作確認テスト2日QA/エンジニア
4.4QAによる機能テスト・シナリオテスト(正常系・異常系)4日QA
5.0リリース準備
5.1配信基盤の送信数急増に対する運用監視・アラート整備2日エンジニア
5.2CS部門向けFAQ・問い合わせ対応手順の整備(通知が来ない/来すぎる問い合わせ想定)1日エンジニア/CS
5.3段階的リリース(社内先行公開→一部会員→全体)計画2日エンジニア

合計見積もり: 約59人日(6週間・体制4名で並行作業する前提と整合)

💡 なぜこう作るのか

1
フェーズ(1.0〜5.0)を大分類にしたのは、進捗報告の際に「今どのフェーズにいるか」をチームリードやマーケ担当に一目で説明できるようにするため。
2
「通知殺到防止ルールの方針決定」(1.2)を要件定義フェーズで独立させたのは、上限・ダイジェスト切替・クールダウンという3つの防止策の判断基準が後工程(DB設計・ロジック設計)を大きく左右するため、実装着手前に必ず方針を固めておく必要があるから。
3
「外部価格管理システムとのデータ連携仕様の確認」(1.3)を早い段階に置いたのは、プロジェクト外部(物流・価格担当部門)のシステムに依存する要素は、仕様確認が遅れるほど設計のやり直しリスクが大きくなるため。
4
「メール配信基盤・プッシュ通知基盤の既存キャパシティ確認」(1.4)を要件定義に含めたのは、セール時に通知が一斉送信されると既存の配信基盤に想定外の負荷がかかる可能性があり、これは通知殺到防止ロジック(社内の設計)だけでは解決できない、配信基盤側(インフラ)の制約だから。
5
「通知殺到防止ロジック」(2.2・3.3)を独立した作業パッケージとして厚めに見積もったのは、上限カウント・ダイジェスト生成・クールダウン管理という3つの異なる仕組みを1つのロジックとして扱う必要があり、単純な通知送信より複雑度が高いため。
6
「CS部門向けFAQ・問い合わせ対応手順の整備」(5.2)をリリース準備に入れたのは、通知が来ない(クールダウン中・上限到達でダイジェストに回った)/来すぎる、といった問い合わせが必ず発生することを見越し、CS部門が説明に困らないよう事前に準備しておく必要があるため。

⚠️ よくある失敗パターン

失敗パターンなぜ問題か改善策
「通知を送る」を実装(3.4・3.5)だけの一行で済ませる 通知殺到防止(上限・ダイジェスト・クールダウン)という要件の核心部分が見積もりから抜け落ち、セール時に会員から苦情が殺到するリスクを見落とす 通知殺到防止ロジックを設計・実装それぞれで独立した作業パッケージとして必ず立てる
外部システム(外部価格管理システム)との連携仕様確認を実装フェーズまで後回しにする 想定していたデータ項目やバッチ頻度が実際と異なることが実装段階で発覚し、大きな手戻りが発生する 外部依存のある要素は要件定義フェーズで仕様確認を独立した作業パッケージとして先に済ませる
CS部門向けの対応準備をWBSに含めない リリース後に「通知が来ない」という問い合わせが殺到してもCS部門が説明できず、エンジニアへのエスカレーションが増えて本来の開発業務を圧迫する 会員向けの挙動が複雑な機能(通知の抑制・遅延がある機能)では、CS対応準備を独立した作業パッケージとしてリリース準備フェーズに必ず入れる
見積もりを楽観値だけで出す バッファがなく、少しの遅延で全体が破綻する 不確実性の高い作業パッケージ(通知殺到防止ロジック等)は三点見積もり(PERT)でリスクを織り込む

🏆 実務での使いどころ

WBSはキックオフ後の最初の成果物として、PMだけでなくエンジニアも作成に関わることが多いです。特に「見積もりの根拠をチームリードや非エンジニアの関係者に説明する」場面で、WBSの粒度がそのまま説得力になります。今回のように外部システム依存や、通知抑制のような「機能としては地味だが会員体験に直結する非機能要素」をWBSに明示的に含められるかどうかが、エンジニアとしての視野の広さの評価につながります。エンジニアがWBS作成に主体的に関わると、後工程での「言った/言わない」の齟齬が減り、スケジュール遅延時にも「どの作業パッケージで遅れているか」を具体的に説明できます。

🚀 次のステップ

このWBSから、次はテーマ1-2「見積もり手法(三点見積もり)」を使って、不確実性の高い作業パッケージ(3.3 通知殺到防止ロジックの実装など)を楽観値・悲観値・最頻値からPERT期待値で見積もり直してみましょう。単一の見積もり日数だけでは見えないリスクバッファの必要性が見えてくるはずです。

🎯 自己評価

自分の回答

所要時間・気づき・メモ