プロジェクトマネジメントガイド · スケジューリングと時間
プロジェクトマネジメントにおける先行と後続
プロジェクトマネジメントにおいて、先行アクティビティとは、別のアクティビティが開始または終了する前に開始または終了しなければならないアクティビティであり、後続アクティビティとはそれに依存するアクティビティです。スケジュール内のすべてのつながりは1つの先行と1つの後続を結んでおり、それらのつながりが作業の順序、クリティカルパス、遅れの波及範囲を決めます。
要点
- 先行アクティビティが先に来て後続アクティビティを制御し、後続アクティビティはその後に続いてそれに依存します。
- すべての依存関係にはちょうど1つの先行と1つの後続があり、ほとんどのアクティビティはその両方です。
- アクティビティに複数の先行がある場合、最も遅く終わるもの(ドライビング先行アクティビティ)がその開始日を決めます。
- 記録するのは直接の先行アクティビティだけにし、つながりのタイプとリードやラグも記録します。
- プロジェクトの開始と終了を除くすべてのアクティビティには、少なくとも1つの先行と1つの後続があるべきです。
- 適切な先行関係の論理があってこそ、クリティカルパス、フロート、遅れの予測が信頼できるものになります。
先行アクティビティと後続アクティビティとは?
A 先行アクティビティ とは、論理的に別のアクティビティより前に来て、そのアクティビティがいつ開始または終了できるかを制御するアクティビティです。 後続アクティビティ は、その後に来てそれに依存するアクティビティです。両者の関係が依存関係であり、先行アクティビティは常に矢印が出ていく側のアクティビティです。
簡単な例を挙げましょう。ハードウェアのセットアップが終わるまで、ノートPCにソフトウェアをインストールすることはできません。「ハードウェアをセットアップする」が先行アクティビティで、「ソフトウェアをインストールする」が後続アクティビティです。ハードウェアの到着が3日遅れれば、計画を変えない限り、ソフトウェアのインストールも3日遅れます。
PMIの用語では、 先行アクティビティ および 後続アクティビティという言葉が使われ、ほとんどのスケジュールでそれらを描くのに使われる手法はプレシデンス・ダイアグラム法(PDM)です。PDMでは、アクティビティを箱(ノード)、依存関係を矢印で表します。この定義からいくつかのことが導かれます:
- 各依存関係には、ちょうど1つの先行と1つの後続があります。
- ほとんどのアクティビティはその両方です。前の作業の後続であると同時に、後の作業の先行でもあります。
- 1つのアクティビティが、複数の先行と複数の後続を持つことがあります。
- 先行を持たないのは最初のアクティビティだけで、後続を持たないのは最後のアクティビティだけです。実際には、これらは通常、開始マイルストーンと終了マイルストーンです。参考: プロジェクトのマイルストーン.
先行と後続は、つながりの両端を表すものです。つながりそのものとそのタイプについては、当サイトの次のガイドで解説しています: タスクの依存関係.
先行と後続の比較一覧
| 先行 | 後続 | |
|---|---|---|
| 論理上の位置 | 先に来る | 後に来て、先行に依存する |
| 答える問い | この前に何が起こらなければならないか? | 何がこれを待っているか? |
| 遅れた場合 | すべての後続を後ろにずらしうる | 自身の後続だけを遅らせる |
| ガントチャートでは | 矢印の出発点となるバー | 矢印が指すバー |
| ネットワーク図では | 矢印が出ていくノード | 矢印が入ってくるノード |
| スケジューリングツールでは | 後続の「先行」列に表示される | 先行の「後続」列に表示される |
これらの言葉は相対的なものです。「ページを設計する」は「要求事項に合意する」の後続であると同時に、「ページを構築する」の先行でもあります。あるアクティビティを先行と呼ぶか後続と呼ぶかは、どのつながりを見ているかによって決まります。
先行の観点から見た4つの関係タイプ
先行アクティビティは、必ずしも後続アクティビティが始まる前に終わる必要はありません。論理的な関係には4つのタイプがあり、それぞれ先行のどちらの端が後続のどちらの端を制御するかを表しています。
| 種類 | ルール | 例 | 一般的な度合い |
|---|---|---|---|
| 終了-開始(FS) | 先行が終了するまで後続は開始できない | 基礎を打設してから壁を建てる | 圧倒的に最も一般的。ほとんどのツールの既定値 |
| 開始-開始(SS) | 先行が開始するまで後続は開始できない | 執筆が始まったら校正を開始する | 重なり合う作業によく使われる |
| 終了-終了(FF) | 先行が終了するまで後続は終了できない | 開発が終了するまでテストは終了できない | 同時に終わらなければならない並行作業によく使われる |
| 開始-終了(SF) | 先行が開始するまで後続は終了できない | 新システムが本番稼働するまで旧システムを稼働し続ける | まれ。通常は論理を見直すべきサイン |
これらのつながりにはいずれも ラグ (ペンキが乾くのを待つFS+3日のような意図的な待ち時間)や リード (FS-2日のような負のラグとして表記される重なり)を設定できます。リードとラグはつながりのタイミングを変えますが、どのアクティビティが先行であるかは変えません。
よく耳にする先行アクティビティの種類
直接の先行アクティビティと間接の先行アクティビティ
なお、 直接の先行アクティビティ は、そのアクティビティに直接つながっています。連なりのさらに前にあるアクティビティは間接の先行アクティビティで、そのアクティビティに影響を与えはしますが、間にあるつながりを通じてのみです。記録するのは直接の先行アクティビティだけにしましょう。あるアクティビティを前のすべてのアクティビティとつなぐと冗長なつながりが生まれ、スケジュールが読みにくく、変更しにくくなります。
ドライビング先行アクティビティと非ドライビング先行アクティビティ
アクティビティに複数の先行がある場合、ある時点でその開始日を制御しているのは通常そのうちの1つだけです。それが ドライビング先行アクティビティです。その他は非ドライビングで、より早く終わり、後続に影響するまでに多少のフロートがあります。
| ドライビング先行アクティビティ | 非ドライビング先行アクティビティ | |
|---|---|---|
| 後続への影響 | その最早開始日(または終了日)を決める | 現時点では影響なし |
| 1日遅れた場合 | 後続が1日遅れる | フロートを使い切るまでは何も起こらない |
| 重点を置くべきこと | 綿密に監視する。クリティカルパス上にあることが多い | 日付よりもフロートを注視する |
ドライビング先行アクティビティは、作業の進行に伴って変わることがあります。遅れている非ドライビングの先行アクティビティが、ドライビングのものを追い越して新たなドライバーになることもあります。
複数の先行と複数の後続
複数の先行を持つアクティビティは経路が合流する地点で、PMIはこれを パスの収束と呼んでいます。複数の後続を持つアクティビティは経路が分かれる地点で、 パスの分岐と呼ばれます。収束点は、後続がすべてのインプットのうち最も遅いものを待つため、どれか1つの経路の遅れがすべてを止めかねないという点でリスクがあります。分岐点は、1つのアクティビティの遅れがそこから出るすべての経路に広がるという点でリスクがあります。
強制的、任意、外部の先行アクティビティ
先行アクティビティは、つながりが存在する理由によっても異なります。強制的な(ハードロジックの)先行アクティビティは、物理的または契約上の必要性を反映したものです。任意の(ソフトロジックの)先行アクティビティは、変更可能な望ましい仕事の進め方を反映したもので、スケジュールを ファストトラッキング する必要があるときに最初に見直すべき箇所です。外部の先行アクティビティは、サプライヤーの納品や規制当局の承認など、プロジェクトの外にあるものです。これらの分類については次で解説しています: タスクの依存関係.
先行と後続を特定する手順
- アクティビティリストから始める。 次を使ってスコープを分解し、 WBS(ワーク・ブレークダウン・ストラクチャー) 各ワークパッケージをアクティビティに変換します。参考: プロジェクトのタスクとアクティビティ.
- アクティビティごとに1つの問いを立てる: これを始める前に何が終わって(または始まって)いなければならないか?その答えが先行アクティビティの候補です。
- 直接の先行アクティビティだけを残す。 AがBを、BがCを駆動するなら、AとCを別途つなぐ必要はありません。
- 関係のタイプを選ぶ。 作業が本当に重なる場合や同時に終わる必要がある場合を除き、終了-開始を使います。
- リードやラグは、本当の理由がある場合にのみ追加する(養生期間や通知期間など)。その理由も書き留めておきましょう。
- 後続を確認する。 各アクティビティについて、何がそれを待っているかを問います。何も依存していないアクティビティは、終了マイルストーンか、つながりの欠落のどちらかです。
- ネットワーク図を描くか生成して 、ループ、宙に浮いたアクティビティ、並行する経路を見つけます。参考: プロジェクトネットワーク図.
- 作業を行う人々と論理をレビューする。 どの依存関係が本物で、どれが単なる習慣かを知っているのは彼らです。
実例:Webサイト公開のスケジュール
小規模なチームが新しいWebサイトを公開します。下表は、各アクティビティの所要期間、直接の先行、後続を示しています。つながりはすべて終了-開始で、ラグはありません。
| ID | アクティビティ | 所要期間 | 先行アクティビティ | 後続アクティビティ |
|---|---|---|---|---|
| A | 要求事項に合意する | 3日 | なし(開始) | B, C |
| B | ページを設計する | 5日 | A | D |
| C | コンテンツを書く | 4日 | A | E |
| D | ページを構築する | 6日 | B | E |
| E | コンテンツを取り込む | 2日 | C, D | F |
| F | テストして公開する | 3日 | E | なし(終了) |
Aは後続が2つあるため分岐点(パスの分岐)です。Eは先行が2つあるため合流点(パスの収束)です。0日目から順に計算すると、最早日は次のようになります:
| ID | 最早開始日 | 最早終了日 | トータルフロート |
|---|---|---|---|
| A | 0日目 | 3日目 | 0 |
| B | 3日目 | 8日目 | 0 |
| C | 3日目 | 7日目 | 7日 |
| D | 8日目 | 14日目 | 0 |
| E | 14日目 | 16日目 | 0 |
| F | 16日目 | 19日目 | 0 |
Eは 両方の 先行が終わるまで開始できません。Cは7日目に終わりますが、Dは14日目まで終わらないため、 DがEのドライビング先行アクティビティ であり、Cは非ドライビングで7日間のフロートがあります。クリティカルパスはA、B、D、E、Fで、プロジェクトには19日かかります。
- もし Cが3日遅れた場合、Cは10日目に終わります。Eは引き続き14日目に開始するため、公開日は動きません。Cのフロートは4日に減ります。
- もし Dが3日遅れた場合、Eは17日目に開始し、公開は22日目にずれます。
- もし Cが9日遅れた場合、Cは16日目に終わり、Dを追い越してドライビング先行アクティビティになり、公開を2日(9日の遅れから7日のフロートを引いた分)遅らせます。
だからこそ、ドライビング先行アクティビティは綿密に監視し、その他についてはフロートを注視するのです。計算方法は次で段階的に解説しています: フォワードパスとバックワードパス.
ガントチャート、ネットワーク図、ツールにおける先行アクティビティの表示
ガントチャート
なお、 ガントチャートでは、依存関係は先行のバーから後続のバーへの矢印で描かれます。終了-開始のつながりでは、矢印は先行の終わりから後続の始まりへ向かいます。ほとんどの ガントチャートソフトウェアでは、先行を動かすと後続も自動的に一緒に動きます。
ネットワーク図
アクティビティ・オン・ノード(AON)形式の ネットワーク図では、各アクティビティが箱で表され、各矢印は先行から後続へ向かいます。ネットワーク図では収束点と分岐点が見やすいため、日々の管理をガントビューで行っている場合でも、論理の確認に役立ちます。 PERTチャート も、三点見積りを使って同じ考え方を用いています。
スケジューリングツールにおける先行アクティビティの表記
ほとんどのデスクトップ型スケジューリングツールでは、先行アクティビティの行ID、つながりのタイプ、リードやラグを列に入力して先行アクティビティを指定できます。Microsoftのドキュメントによると、Microsoft ProjectではIDだけを入力するとラグなしの終了-開始のつながりが作成され、正の数を付けるとラグが、負の数を付けるとリードが追加されます。複数の先行アクティビティは、リスト区切り文字(地域の設定に応じてカンマまたはセミコロン)で区切ります。
| 入門 | 意味 |
|---|---|
| 3 | このタスクの開始前にタスク3が終了していなければならない(FS、ラグなし) |
| 3FS+2d | タスク3の終了から2日後に開始する |
| 3SS | タスク3が開始したら開始できる |
| 3FF-1d | タスク3の終了の1日前より早くは終了できない |
| 2,5 | タスク2とタスク5の両方の終了を待つ |
Webサイトの例では、CとDが3行目と4行目なら、E(コンテンツを取り込む)には「3,4」と表示されます。 Wrike と Smartsheet などのクラウド型ツールでは、ガントビューでバー間をドラッグするか、先行アクティビティの列に入力することで同じつながりを作成でき、どちらも有料プランで依存関係とクリティカルパスのビューに対応しています。
論理をたどる
多くのツールでは、タスクの先行と後続を強調表示できます。たとえばMicrosoft Projectのタスクパス機能では、ガントチャート上で先行、ドライビング先行、後続、ドリブン後続を強調表示できます。マイルストーンが遅れたときは、そのドライビング先行アクティビティを逆にたどるのが、本当の原因を見つける最も速い方法であることが多いです。
先行アクティビティがクリティカルパスとフロートにとって重要な理由
なお、 クリティカルパス法 は、すべてが先行と後続のつながりの上に成り立っています。フォワードパスは最早日を先行から後続へ押し進め、バックワードパスは最遅日を後続から先行へ引き戻します。両者の差が フロートであり、フロートがゼロ(または最小)のアクティビティの連なりがクリティカルパスです。
これにはいくつかの実務的な影響があります:
- 後続のないアクティビティのフロートは誤解を招く。 そのフロートはプロジェクトの終了に対して測定されるため、実際には何かが依存していても、スケジュールに影響が現れるまでに大きく遅れられてしまいます。
- 先行のないアクティビティは初日に開始できる。 それが事実でない限り、スケジュールは現実的に可能な時期よりも前に作業が始まるように見せてしまいます。
- つながりの欠落はクリティカルパスを誤らせる。 論理が不完全だと、ツールが強調表示する経路が、実際に終了日を制御している経路ではない可能性があります。
- 資源の制約は先行関係ではない。 CPMは資源が無制限であることを前提としています。同じ人が両方を担当するために2つのアクティビティを同時に進められない場合は、論理的なつながりをでっち上げるのではなく、 資源平準化で対処します。
先行アクティビティでよくある間違い(とその対処法)
| 間違い | 問題になる理由 | 対処法 |
|---|---|---|
| オープンエンド(先行または後続がない) | 遅れが伝わらず、フロートと終了日が実際よりも良く見える | すべてのアクティビティをネットワークにつなぎ、終了マイルストーンで終わらせる |
| サマリータスクにつなぐ | 論理が追いにくくなり、ツールによっては予期しない計算をする | サマリー行ではなく、詳細なアクティビティ同士をつなぐ |
| 冗長なつながり | 本当のドライビングロジックを隠すノイズになる | 直接の先行アクティビティだけを残す |
| 循環論理(AがBの前、BがAの前) | スケジュールを計算できない。ほとんどのツールは受け付けない | アクティビティを分割するか順序を見直してループを断ち切る |
| つながりの代わりに日付制約を使う | 先行が遅れても日付が動かなくなる | 論理的なつながりを使い、制約は本当に固定された日付にだけ使う |
| 作業をラグで表現する | ラグに隠れた作業は追跡も資源の割り当てもできない | その作業を独立したアクティビティとしてモデル化する |
| SSやSFのつながりを使いすぎる | 論理を説明しにくく、壊れやすくなる | 既定はFSにし、重なる場合はアクティビティを分割する |
| 計画の見直し後も古いつながりが残っている | 誰も従っていない計画の日付をスケジュールが予測してしまう | スコープやアプローチが変わるたびにつながりを見直す |
同じ重なりのために長いラグ付きの開始-開始のつながりが繰り返し必要になる場合は、先行アクティビティを2つに分割し、後続を前半部分につなぐほうがわかりやすいことがよくあります。
スケジュールの論理の品質を確認する
大規模なプロジェクトでは、公表されているヘルスチェックに照らしてスケジュールの論理を検証することがよくあります。広く使われている例が米国国防契約管理局(DCMA)の14ポイント評価で、次のような論理チェックが含まれています:
| 必ず確認: | DCMAのしきい値 |
|---|---|
| 先行または後続が欠けている未完了のアクティビティ | 5%以下 |
| 終了-開始のつながり | 90%以上 |
| リード(負のラグ) | なし |
| ラグ付きのつながり | 5%以下 |
| 厳格な日付制約がある未完了のアクティビティ | 5%以下 |
これらのしきい値は防衛契約の文脈に由来するものですが、どのスケジュールにとっても有用な妥当性チェックになります。小規模なプロジェクト向けの当サイトのアドバイスはもっとシンプルです:
- 「先行」列または「後続」列が空のアクティビティを抽出し、1つずつ修正します。
- 初期のアクティビティを1つ1週間動かし、終了日が予想どおりに動くか確認します。
- クリティカルパスを最初から最後まで声に出して読み、不合理に聞こえるステップがあれば、そのつながりを確認します。
- 次を設定する前と、 プロジェクトのベースライン 大きな計画の見直しの後に、チェックを再実行します。
先行アクティビティを管理するためのベストプラクティス
- 日付を追加する前に論理を構築しましょう。日付は手入力せず、つながりに計算させます。
- すべてのアクティビティに明確な担当者を置き、先行アクティビティが遅れたときに説明責任を負う人がいるようにします。
- チーム間や外部の先行アクティビティについては、相手側の担当窓口を決めたうえで早めに合意します。
- 収束点(多くの先行を持つアクティビティ)をリスクとして扱い、監視します。
- 任意のつながりがそれぞれなぜ存在するのかを記録し、時間を取り戻すためにどれを変更できるかを把握しておきます。参考: スケジュール短縮.
- 開始マイルストーンと終了マイルストーンでネットワークを整理し、一連のアクティビティにまたがるサポート作業には次を使います: ハンモック活動 。
- 何か問題が起きたときだけでなく、定期的なスケジュールレビューの一環としてつながりを更新します。
ゼロからスケジュールを作成する場合、無料の プロジェクトスケジュールテンプレート, クリティカルパステンプレート と ガントチャートテンプレート にはすべて先行アクティビティの列があり、 WBSテンプレート を使えば先にアクティビティリストを作成できます。プロセス全体については、当サイトのガイドをお読みください: プロジェクトのスケジューリング.
このトピックの無料テンプレート
よくある質問
プロジェクトマネジメントにおける先行アクティビティとは何ですか?
先行アクティビティとは、別のアクティビティが開始または終了する前に開始または終了しなければならないアクティビティです。それに依存するアクティビティのタイミングを制御します。
プロジェクトマネジメントにおける後続アクティビティとは何ですか?
後続アクティビティとは、別のアクティビティ(先行アクティビティ)に依存し、スケジュール上でその後に来るアクティビティです。その開始日または終了日は先行アクティビティによって決まります。
先行アクティビティと後続アクティビティの違いは何ですか?
先行が先に来てタイミングを制御し、後続はその後に続いてそれに依存します。両者は同じ依存関係の両端であり、ほとんどのアクティビティは、あるつながりでは先行、別のつながりでは後続になります。
タスクは複数の先行アクティビティを持てますか?
はい。終了-開始のつながりでは、すべての先行が終わるまで開始できないため、最も遅く終わるもの、つまりドライビング先行アクティビティがその開始日を決めます。
タスクは複数の後続を持てますか?
はい。その場合、そのタスクが遅れるとすべての後続に影響が及ぶため、多くの後続を持つアクティビティには細心の注意を払う必要があります。
直前の先行アクティビティとは何ですか?
直接の先行アクティビティは、そのアクティビティに直接つながっているものです。連なりの中のさらに前のアクティビティは間接の先行アクティビティであり、改めてつなぐべきではありません。
ドライビング先行アクティビティとは何ですか?
その時点で後続の最早開始日または最早終了日を実際に決めている先行アクティビティです。それが遅れると、後続もすぐに遅れます。
MS Projectの3FS+2dとはどういう意味ですか?
タスク3が2日間のラグを伴う終了-開始の先行であることを意味します。つまり、このタスクはタスク3の終了から2日後に開始できます。「3」だけを入力すると、ラグなしの終了-開始という意味になります。
タスクに先行がない場合はどうなりますか?
スケジューリングツールは、そのタスクをプロジェクトの開始日に開始させます。最初のアクティビティならそれで問題ありませんが、それ以外の場合は、たいていつながりが欠けていることを意味します。
タスクに後続アクティビティがない場合はどうなりますか?
オープンエンドになるため、それが遅れても後の作業や終了日に影響が表れません。そのアウトプットを必要とするアクティビティか、終了マイルストーンにつなぎましょう。
先行アクティビティは依存関係と同じですか?
厳密には異なります。依存関係は2つのアクティビティ間のつながりであり、先行と後続はその両端にあるアクティビティです。参考: タスクの依存関係.
後続は先行が終わる前に開始できますか?
はい。つながりが開始-開始や終了-終了の場合、または終了-開始のつながりにリード(負のラグ)が適用されている場合です。このように作業を重ねると時間を節約できますが、手戻りのリスクが高まります。
先行アクティビティはフロートに影響しますか?
はい。フロートはアクティビティの日付を後続の日付と比較して計算されるため、つながりが欠けていたり誤っていたりすると、フロートも誤ったものになります。参考: フロートとスラック.
ネットワーク図では先行アクティビティはどのように表示されますか?
矢印で表示されます。矢印が出ていくノードが先行で、矢印が指すノードが後続です。参考: プロジェクトネットワーク図.