プロジェクトの計画

スケジュール・ベースライン – アクティビティを整理してマスタスケジュールを作成する

概要

スケジュール・ベースラインとは、プロジェクトの活動スケジュールのことであり、プロジェクトの進行状況を管理するために使用します。

いわゆる「マスタスケジュール」のことです。

マスタスケジュールは、プロジェクトの開始と終了、マイルストーン(中間目標地点)、そして作業工程に期間を設定します。
プロジェクト全体の進み方を俯瞰し、作業の順序や期限設定、クリティカルパスを確認するときに利用します。
マスタスケジュールはプロジェクト計画時に作成しますが、計画変更する場合は必ず最新化してプロジェクト全体に共有する必要があります。

このマスタスケジュールをもとにWBSや詳細スケジュールを作成することになります。
しかしプロジェクト最初から全工程のWBSを作成することは難しいです。
プロジェクトが進む中で計画変更が発生したり、前工程の作業をベースに作成する計画もあるためです。
そのため、工程が進むごとに段階的にWBSを詳細化していきます。
これをローリングウェーブ法と言います。

マスタスケジュールを作る目的と運用については、別記事「スケジュール管理する5つの理由と運用方法」を参考にしてください。

ここではスケジュール作成の流れについて見ていきます。

マスタスケジュールの作成

アクティビティの定義

アクティビティとは、プロジェクトを完成させるための個々の作業やタスクのことです。
プロジェクトを進める中で、具体的にどのような作業が発生するか把握、管理できるように作業を細分化したものです。

スコープマネジメントでWBSを作成しているのであれば、そこで定義したタスクに近いのですが、厳密には別物です。
WBSのタスクは「何を達成する必要があるか」(つまり、成果物や目標)を定義し、アクティビティは「それをどのように達成するか」(つまり、具体的な作業や手順)を定義します。
システム開発を例にあげると、アクティビティが設計やコーディングなどの作業であり、WBSはより具体的な単位(例えば○○画面のコーディング)のようなタスクと言えます。

WBS
WBSはプロジェクトを管理しやすく分割する際に使用されるツールです。
WBSの各要素は「タスク」と呼ばれ、プロジェクトの範囲を構成する具体的な成果物や成果に焦点を当てています。
WBSは階層的な構造を持ち、上位レベルの要素からより詳細なサブタスクに分解されます。

アクティビティ
アクティビティは、それぞれのWBSタスクを達成するために必要な具体的な作業や手順を指します。
アクティビティは、タスクを実行するための具体的なステップやアクションを含み、通常、スケジュールの作成やリソース割り当ての基本単位として使用されます。

アクティビティの順序設定

アクティビティを洗い出したら、次は順序設定を行います。
順序設定の技法として「アローダイアグラム」「プレシデンスダイアグラム」などありますが、これらは作業の並び替えを可視化するために使用します。
それより注意すべきポイントは、アクティビティごとの優先順位設定です。
この順番を間違えると、プロジェクトの進め方が非効率になったり、戻り作業の発生といったトラブルにつながります。

システム開発における順序設定のポイントをお伝えします。

共通部分は最優先

設計や製造で使用する共通部分は、その工程の作業を進めるために必要となるものなので最優先で対応します。
可能であれば工程開始前に先行着手できるとよいです。

詳細設計を例に挙げると、プログラムの共通部品関連の設計書がなければ、その部品を使った設計ができません。
そのような事態にならないよう、スケジュールを計画します。

標準的な機能を最初に作る

似たような機能を複数作成する場合、標準的な機能を先行して開発します。
特に新規システムの開発では、どのように設計、製造するのか手探りで進める場合があるため、基本となるパターンの機能から設計、製造に着手することが望ましいです。
例えばWeb画面で「検索、一覧表示、詳細画面、登録画面」というパターンが複数ある場合、この一連の機能を先行することで、後続作業のひな型とすることができます。

マイルストーンから逆算

マイルストーンから逆算してスケジュール設定します。

マイルストーンは中間目標地点であり、そこに間に合うようにスケジュールを計画する必要があります。
このマイルストーンに到着するためには「いつまで」「何をすべきか」を整理し、正しく順序設定する必要があります。

例えばサーバを本番環境に設置するマイルストーンがある場合、機器手配やインフラ設計、構築作業、テスト作業があるとして、機器が届いていないのに構築作業を着手することはできません。
サーバ構築するための期間を逆算して、いつまでに機器手配が完了しているか設定していきます。

アクティビティの所要期間設定

アクティビティごとに所要期間(作業工数)を割り当てます。

その所要期間を算出するための見積もりですが、大きく4種類あります。

類推見積もり

過去プロジェクトなど過去データを利用したり、似た機能の実績工数をもとに見積もりを行います。
過去実績が多いと、それだけ見積もり精度は向上します。

パラメトリック見積もり

いわゆるパラメータを使用した見積もり方法です。
例えば1つの作業×回数のように計算することができる見積もり方法です。
ファンクションポイントも、このパラメトリック見積もりに該当します。

ファンクションポイントについてはこちらで解説しています。

3点見積もり

最頻値(最もありそうな規模)、悲観値(最大の規模)、楽観値(最小の規模)を利用した加重計算で算出します。

3点見積もり値=(最頻値×4+悲観値+楽観値)÷6

3点見積もりは、複数人が規模感を提示してきた場合に使用すると有効的です。

ボトムアップ見積もり

小さく細分化した作業工数を積み上げて算出する見積もりで、最も精度が高いのですが算出に時間がかかるのが難点です。
WBSが作成できる程度の精度を出せる状態であれば、ボトムアップ見積もりを行うことができます。
詳細見積を作成する場合、このボトムアップ見積もりを行う場合が多いです。

スケジュール作成

アクティビティ順序、および規模見積もりを行ったら、マイルストーンに合うようスケジュール作成します。
アクティビティごとに対応できるメンバを充てながら、効率よく作業を行えるように調整します。

要員山積み

プロジェクトには予算が定められており、参画するプロジェクトメンバも基本的に決まっています。
人は1か月のうち1人月分しか働けないですし、急に人を追加したり減らすこともできません。
そのため「誰が」「いつ」「どの作業を」を把握しながら計画を立てることは大切です。

作業予定を積み上げた結果、作業量が多ければ高負荷になります。
逆に工数が少なければ、そのメンバの手が空いてしまう状態になり、費用はかかるが成果がでない状態となります。

そのため、あらかじめ作業量の見積もりを行い、負荷状況が分散するように調整します。
もし分散できないほど作業量が多いのであれば、早い段階で要員追加など検討します。

平行作業

「全ての設計が完了してから製造に着手する」のように、作業や工程は分けてスケジュール作成するのが基本です。
とはいえ状況によっては平行して作業せざるを得ない場合があるのも確かです。
同時並行して作業することをファストトラッキングと言い、戻り作業が発生するリスクを受容して進めます。

その際、リスクが発生することを前提としたスケジュール設定します。

クリティカルチェーンマネジメント

詳細スケジュールを作成するときにオススメの手法が「クリティカルチェーンマネジメント(CCPM)」です。

通常は作業規模を算出するときにリスク対策のバッファを設定します。
逆にバッファを積んでいないスケジュールは、何か想定外が発生しても対処できないため危険です。
このバッファですがタスクごとに積むのではなく、バッファ全体をまとめて作業の後半に配置します。
各タスクはバッファがありませんが、リスク発生時は必要に応じてバッファから工数を取り崩していきます。

理由ですが作業者はリスク発生の有無にかかわらず、割り当てられた期間をフルに使う傾向にあります。
そうすると必要のないバッファまで消費されることになります。
CCPMではタスクごとではなくまとめてバッファ管理するので不必要なバッファの消費を抑止します。
また従来はタスクで設定した以上のリスクが発生すると全体遅延につながる可能性が高いのですが、CCPMではタスクに割り当てた以上のリスクが発生しても全体のバッファから調達することもできます。