📖 テーマ設定
🔊 音声設定
1.2
1.0
1.0
▶️ 再生コントロール
🎵 BGM設定
0.3
🔔 効果音設定
0.3

プロジェクトマネジメント〜WBSとかんばん

概要

  • 日程: Day 9 / セッション 1
  • 時間: 9:30-10:00
  • 形式: 座学
  • ゴール: WBS(Work Breakdown Structure)によるタスク分解の手順と、かんばんの3状態(Todo/Doing/Done)によるタスク管理を説明できる
  • 学習形式: 対話型解説、デモンストレーション

導入(5分)

Day 8までで、みなさんは外部設計書と内部設計書を完成させました。設計図はそろいました。
明日からはいよいよ実装です。

ここで1つ問いかけです。
「実装、何から始めますか?」

「えーと、まずDBを作って……いや画面から……?」と迷ったら、それが今日のテーマです。
設計書があっても、作業の順番と分担が決まっていなければ、チームは動けません。

  • 誰が・何を・いつまでにやるのか
  • 今どこまで進んでいるのか
  • 間に合いそうか、間に合わなそうか

これを「見える化」する技術がプロジェクトマネジメントです。
今日は3つの道具、WBS・ガントチャート・かんばんを手に入れます。

実装期間はDay 10〜17の実働約8日。この限られた時間を乗り切る地図を、今日のうちに作ります。

本編(20分)

1. タスクの洗い出しとWBS〜大きな仕事は分けてから食べる

プロジェクトとは「期限までに目的を達成する活動」です。
そして人間は、大きすぎる仕事をそのままでは扱えません。

これは料理に例えると分かりやすいです。
「カレーを作る」と言われても、手は動きません。でも、

  • 材料を買う
  • 野菜を切る
  • 肉を炒める
  • 煮込む
  • 盛り付ける

と分ければ、すぐ動けます。しかも「野菜を切るのは私、肉を炒めるのはあなた」と分担もできます。

この「大きな仕事を、管理できる小さな単位に分解する」手法が WBS(Work Breakdown Structure:作業分解構成図) です。

WBSの手順はシンプルです。

  1. 成果物・大きな工程を最上位に置く(例: カレー完成)
  2. それを中分類に分ける(例: 買い出し / 調理 / 仕上げ)
  3. さらに「1人が数時間で終わる」程度の作業(タスク)まで分ける
  4. 漏れ・重複がないか確認する(Day 1で学んだ MECE の出番です)
flowchart TD A["カレーを作る"] --> B["買い出し"] A --> C["調理"] A --> D["仕上げ"] B --> B1["献立を決める"] B --> B2["材料を買う"] C --> C1["野菜を切る"] C --> C2["肉を炒める"] C --> C3["煮込む"] D --> D1["盛り付ける"] D --> D2["味見して調整する"]

「カレーを作る」はタスクとして大きすぎるので該当しません。「野菜を切る」は1人が30分で終えられるので、ちょうどよいタスクです。なぜなら、タスクは担当者を割り当てられ、終わったかどうか判定できる大きさである必要があるからです。

ここで少し考えてみてください。「旅行の準備」をWBSで分解すると、どんなタスクが出てくるでしょうか? 頭の中で3つ挙げてみましょう。次のセッションの予行演習になります。

ここがポイント

  • タスクの大きさの目安は「1人が数時間〜1日で完了できる」こと
  • 「実装する」のような巨大タスクは分解不足のサイン。進捗が何日も「作業中」のままになる
  • 分解したら必ずMECEチェック。「漏れ」は後で爆発し、「重複」は二度手間になる
  • WBSは作業の構造を表すもの。順番や日程はまだ決めない(それは次のガントチャートの仕事)

コラム

WBSの起源は1960年代、アメリカのアポロ計画やポラリス・ミサイル開発と言われています。「人類を月に送る」という史上最大級のあいまいな目標も、何十万ものタスクに分解されたからこそ実現しました。月面着陸も、元をたどれば「ネジを締める」レベルのタスクの集合だったわけです。みなさんの開発も同じ。「すごいシステムを作る」は、分解すれば「テーブルを1つ作る」から始まります。

2. ガントチャート〜タスクを時間軸に並べる

WBSでタスクが出そろったら、次は「いつやるか」です。
タスクを横棒で時間軸に並べた図を ガントチャート と呼びます。

gantt title カレーづくりのガントチャート(例) dateFormat HH:mm axisFormat %H:%M section 買い出し 献立を決める :a1, 10:00, 15m 材料を買う :a2, after a1, 40m section 調理 野菜を切る :b1, after a2, 20m 肉を炒める :b2, after a2, 15m 煮込む :b3, after b1, 40m section 仕上げ 盛り付ける :c1, after b3, 10m

ガントチャートを書くと、2つの大事なことが見えてきます。

  • 依存関係: 「材料を買う」前に「煮込む」ことはできない。前のタスクの成果物を使うタスクは、順番が固定される
  • クリティカルパス: 開始から完了までの「一番時間がかかる経路」。この経路上のタスクが遅れると、プロジェクト全体が遅れる

上の例では「献立→買い出し→野菜を切る→煮込む→盛り付け」がクリティカルパスです。「肉を炒める」が10分遅れても全体は遅れませんが、「煮込む」が10分遅れると夕食は10分遅れます。

ここで問いかけです。みなさんの開発で、絶対に最初にやらないと後が全部止まるタスクは何でしょうか? 思い浮かべてみてください(ヒント: データの置き場所がないと、登録機能は作れません)。

ここがポイント

  • ガントチャートは「WBSのタスク+時間軸+依存関係」でできている。WBSなしにいきなり書こうとすると漏れる
  • クリティカルパス上のタスクを最優先で着手する
  • 計画は必ずずれる。ずれたら直すのが正しい使い方。「計画通りに進める」より「ずれにすぐ気づく」ことが目的

コラム

ガントチャートの名前は、考案者ヘンリー・ガント(1861-1919)にちなんでいます。100年以上前、第一次世界大戦の造船管理で使われた手法が、今もそのままIT業界の現役ツールです。プログラミング言語は数年で流行が変わるのに、ガントチャートは1世紀生き残っている。「人間が時間と作業を理解する方法」は、技術が進んでも変わらないということですね。

3. かんばん〜「今」を見える化する

ガントチャートは「計画」を見るのに優れていますが、日々の「今、誰が何をしているか」を見るには重い道具です。
そこで日々の管理には かんばん を使います。

かんばんのルールは驚くほどシンプルです。
タスクを付箋(カード)にして、3つの列のどれかに貼るだけ。

状態 意味
Todo これからやるタスク
Doing 今やっているタスク
Done 終わったタスク
flowchart LR T["Todo
これからやる"] --|着手したら移動|--> D["Doing
作業中"] D --|終了条件を満たしたら移動|--> F["Done
完了"]

カードには次の4点を書きます。これが今日の演習の核になります。

  • 担当者: 誰がやるのか
  • 所要時間: どれくらいかかる見込みか
  • 成果物: 何ができたら終わりか
  • 終了条件: どういう状態になったら「Done」に動かしてよいか

「資料を準備する」は終了条件として該当しません。「発表用スライド10枚が完成し、リーダーのレビューを通過している」なら該当します。なぜなら、前者は人によって「終わった」の判断が変わるのに対し、後者は誰が見ても判定できるからです。

ここがポイント

  • Doingに置けるカードは1人1枚までが原則。あれもこれも同時にやると、全部が中途半端になる
  • 「90%できてます」が一番危険。かんばんの世界に90%はない。DoneかDoneでないか、だけ
  • Doneの判定基準=終了条件を、カードを書く時点で決めておく。後から決めると甘くなる

コラム

「かんばん」は日本語そのままで世界に通じる言葉です。起源はトヨタ自動車の生産方式。工場で部品箱に付けた「看板」で生産指示を伝えた仕組みを、2000年代にソフトウェア開発者が応用しました。今ではシリコンバレーのエンジニアも「Kanban」と呼びます。寿司、カラオケ、かんばん——海外で通じる日本語の仲間です。ちなみにトヨタ社内では「看板が外れる」ことが生産の合図でした。みなさんはカードを「動かす」ことが進捗の合図になります。

💬 AIに聞いてみよう

ここまでの内容で疑問があれば、AIに質問してみましょう。たとえば:

  • 「WBSとガントチャートとかんばんの関係を、運動会の準備に例えて説明して」
  • 「クリティカルパスって何? もっと簡単な例で教えて」
  • 「タスクの粒度がちょうどいいか、どうやって判断するの?」
  • 「実務のチームでは、かんばんにどんなツールを使っているの?」

まとめ(5分)

今回学んだことを一言でまとめると、**「大きな仕事はWBSで分解し、ガントチャートで時間に並べ、かんばんで日々動かす」**です。

  • WBS: 仕事を管理できる大きさに分解する(MECEに)
  • ガントチャート: タスクを時間軸に並べ、依存関係とクリティカルパスを見る
  • かんばん: Todo/Doing/Doneの3状態で「今」を見える化する
  • カードには担当者・所要時間・成果物・終了条件を書く

3つは別々の道具ではなく、WBS→ガントチャート→かんばんという流れでつながっています。

次のセッションでは、身近な疑似プロジェクト(発表会・宴会・海外旅行)を題材に、実際にかんばんを作ってみます。

🔄 振り返りチェック

以下の問いに答えられるか確認してみましょう:

  • WBSとは何か、何のために行うか説明できますか?
  • タスクのちょうどよい大きさの目安は?
  • ガントチャートで分かる「クリティカルパス」とは何ですか?
  • かんばんの3つの状態と、カードに書くべき4項目を言えますか?
  • 「終了条件を曖昧にしない」とは、具体的にどう書くことですか?

答えに自信がない場合は、該当部分を読み返すか、AIに質問してみてください。

補足資料

  • 参考リンク: PMBOKガイド(プロジェクトマネジメントの国際標準)の概要解説記事、Trello・GitHub Projectsなどのかんばんツール紹介ページ
  • 発展課題: 「WIP制限(Work In Progressの上限)」とは何か、なぜかんばんで重要なのかをAIに聞いてまとめてみましょう

学習ガイド

このセクションは、受講者が理解を深めることをサポートする参考情報です。

想定される質問と回答例

質問 ヒント
WBSはどこまで細かく分解すればいい? 「1人が数時間〜1日で終わり、完了を判定できる」が目安。それより細かいと管理コストが上回る
ガントチャートとかんばん、どちらか片方ではだめ? 役割が違う。ガントチャートは全体計画と依存関係、かんばんは日々の状態管理。両方使い、日々はかんばん中心に回す
計画がずれたらどうする? ずれるのが普通。気づいた時点でチームに報告し、ガントチャートを引き直す。Day 1のルール「変更は事前に報告して調整」を思い出す
タスクの所要時間が見積もれない 似た作業の経験から推測し、自信がなければ長めに置く。AIに「このタスクの一般的な作業時間は?」と相談するのも有効

つまずきやすいポイント

つまずきポイント ヒント
タスクが大きすぎて進捗が見えない 「〜を実装する」が3日以上Doingにあるのは分解不足。画面単位・機能単位にさらに割る
終了条件が「がんばる系」になる 「ちゃんとやる」「きれいにする」は終了条件ではない。「〜が完成している」「〜がレビューを通過している」と成果物の状態で書く
WBSに「漏れ」が出る 設計書(画面一覧・機能一覧)と突き合わせる。Day 5-8の成果物がWBSのチェックリストになる
Doingにカードが溜まる 1人1枚の原則に戻る。同時並行は速く見えて遅い
読み上げを開始します...

AIに質問する