Day 002 — PM-計画: WBS基礎

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

🎬 シナリオ

MOps(Marketing Ops/販促システム)チームで「友達紹介キャンペーン機能」の開発が決まった。あなたはエンジニア3年目としてこのプロジェクトの担当エンジニア兼進行管理役に任命された。体制はエンジニア2名(あなたともう1名)・デザイナー1名・QA1名で、6週間後のリリースを目指す。

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

要件:

  • 会員は自分専用の紹介コード付きURLを発行できる
  • 友達がそのURLから新規会員登録すると、紹介関係が記録される
  • 被紹介者が初回購入を完了した時点で、紹介者・被紹介者の双方にクーポン(1,000円分)が自動付与される
  • 同一人物が複数アカウントを作って自己紹介する不正利用を検知・ブロックする仕組みが必要
  • 紹介実績(紹介人数・獲得クーポン数)を会員がマイページで確認できる

📝 課題

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

🔍 ヒント(段階的開示)

取り組む前のヒント
  • まず大きなフェーズ(要件定義/設計/実装/テスト/リリース準備)に分け、そこから機能単位・技術要素単位に分解していく
  • 「実装する」だけでなく「紹介コード発行APIの実装」のように具体的な粒度まで割ること
  • 不正利用防止のロジックは要件としては地味に見えるが、設計・実装・テストいずれにも影響する重要要素なので独立した作業パッケージとして扱う
  • QAやドキュメント整備、クーポン付与の会計・経理連携確認など、機能実装以外の作業も忘れずに含める
  • 100%ルール(プロジェクトのスコープを漏れなく分解できているか)を意識する

📚 背景知識・用語解説

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

💡
100%ルール: WBSの各階層で、子要素を全部足すと親要素の100%をカバーしている必要があるという原則。友達紹介キャンペーンの例で言えば、「紹介コード発行」「紹介記録」「クーポン自動付与」「不正利用防止」「実績確認画面」という要件を機能実装だけで満たしたつもりでも、不正利用防止のような「地味だが必須の非機能要素」を見落とすと100%ルール違反になります。

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

WBSとタスクリストの違い: タスクリストは思いついた順に並ぶ「To-Doの羅列」になりがちですが、WBSはフェーズ→機能→作業パッケージという階層構造を持ち、抜け漏れを構造的にチェックできる点が異なります。

模範解答

コードフェーズ / 作業パッケージ見積もり担当ロール
1.0要件定義
1.1キャンペーン条件(付与額・付与タイミング)のヒアリング・要件確定2日エンジニア/マーケ
1.2不正利用の想定パターン洗い出し(同一端末・同一決済手段での複数アカウント等)2日エンジニア
1.3クーポン自動付与の経理・会計処理への影響確認1日エンジニア/経理
2.0設計
2.1紹介コード発行・紹介関係記録のDB・API設計4日エンジニア
2.2不正利用検知ロジックの設計(判定基準・スコアリング方式)4日エンジニア
2.3クーポン自動付与バッチ処理の設計(初回購入完了イベントとの連携)3日エンジニア
2.4マイページ「紹介実績」画面のUI設計・ワイヤーフレーム3日デザイナー
3.0実装
3.1紹介コード発行API・専用URL生成の実装4日エンジニア
3.2新規登録フローへの紹介コード紐付け実装3日エンジニア
3.3不正利用検知ロジックの実装6日エンジニア
3.4初回購入完了トリガーによるクーポン自動付与バッチ実装5日エンジニア
3.5マイページ「紹介実績」画面の実装4日エンジニア/デザイナー
4.0テスト
4.1単体テスト・結合テスト4日エンジニア
4.2不正利用検知の突破テスト(意図的に不正パターンを試す)3日QA/エンジニア
4.3QAによる機能テスト・シナリオテスト(正常系・異常系)4日QA
5.0リリース準備
5.1クーポン付与ログ・不正検知結果の運用監視手順の整備2日エンジニア
5.2経理部門向け付与実績レポートの整備1日エンジニア
5.3段階的リリース(社内先行公開→10%→100%)計画2日エンジニア

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

💡 なぜこう作るのか

1
フェーズ(1.0〜5.0)を大分類にしたのは、進捗報告の際に「今どのフェーズにいるか」をチームリードやマーケ担当に一目で説明できるようにするため。
2
「不正利用の想定パターン洗い出し」(1.2)を要件定義フェーズで独立させたのは、不正利用防止という非機能要件が後工程(DB設計・検知ロジック設計)を大きく左右するため、実装着手前に必ず方針を固めておく必要があるから。
3
「クーポン自動付与の経理・会計処理への影響確認」(1.3)を早い段階に置いたのは、クーポンという金銭的価値を伴う機能では経理・会計側の承認や仕訳ルールが実装方式(即時付与かバッチ付与か等)に影響するため、後回しにすると設計のやり直しにつながるから。
4
QA関連の作業(4.2, 4.3)を実装終了後にまとめて置くのではなく、実装(3.0)と並行して見積もりに含めているのは、テストを最後にまとめて行うとスケジュール遅延の主因になりやすいため。
5
リリース準備(5.0)を独立したフェーズにしたのは、「実装が終わればリリースできる」という見落としがちな抜け(監視手順・経理レポート・段階リリース計画)を防ぐため。

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

失敗パターンなぜ問題か改善策
「不正利用防止」を実装(3.3)だけの一行で済ませる 設計・テストへの影響が大きい要素なのに見積もりが甘くなり、後工程で手戻りが発生する 要件定義・設計・テストそれぞれのフェーズに不正利用防止の作業パッケージを明示的に立てる
「実装」を1つの作業パッケージにまとめる 粒度が粗すぎて進捗が見えず、遅延に気づくのが遅れる 1〜2週間単位(機能・技術要素ごと)まで分解する
クーポンという金銭的価値を伴う機能で経理連携を書き忘れる 100%ルール違反。リリース直前に経理側の承認プロセスが未整備であることが発覚し、リリースが止まる 「お金が動く機能」では要件定義の段階で経理・会計への影響確認を作業パッケージとして必ず入れる
見積もりを楽観値だけで出す バッファがなく、少しの遅延で全体が破綻する 不確実性の高い作業パッケージ(不正利用検知ロジック等)は三点見積もり(PERT)でリスクを織り込む

🏆 実務での使いどころ

WBSはキックオフ後の最初の成果物として、PMだけでなくエンジニアも作成に関わることが多いです。特に「見積もりの根拠をチームリードや非エンジニアの関係者に説明する」場面で、WBSの粒度がそのまま説得力になります。エンジニアがWBS作成に主体的に関わると、後工程での「言った/言わない」の齟齬が減り、スケジュール遅延時にも「どの作業パッケージで遅れているか」を具体的に説明できます。今回のように金銭的価値(クーポン)を伴う機能では、経理・会計といった非エンジニア部門との連携作業をWBSに明示的に含められるかどうかが、エンジニアとしての視野の広さの評価につながります。

🚀 次のステップ

このWBSから、次はスケジュール線表(ガントチャート)に落とし込み、クリティカルパス(テーマ1-5)を分析してみましょう。どの作業パッケージが遅れると全体リリース日に直結するか、依存関係(例: 2.2の検知ロジック設計が終わらないと3.3の実装に着手できない)を整理してみてください。

🎯 自己評価

自分の回答

所要時間・気づき・メモ