ネットワーク図とは:プロジェクトの活動をマッピングする方法

Turn this article into takeaways for your work.
Each assistant summarizes the article only for you and suggests best practices for your work.
ネットワーク図は、すべてのプロジェクト活動に順序上の位置を与え、どのタスクが次のタスクの開始前に完了していなければならないかを正確に示します。これがなければ、遅延を引き起こす連鎖反応を把握できないまま、単なる一覧表からスケジュールを組むことになります。
プロジェクトマネージャーはネットワーク図を使ってクリティカルパスを見つけ、タイムラインを圧縮し、スプレッドシート以上の情報を必要とするステークホルダーにスコープを伝えます。この図はガントチャートの代わりになるものではなく、両者は並行して使われ、それぞれが同じ計画の異なる側面を示します。
ネットワーク図とは
プロジェクトネットワーク図は、すべてのプロジェクト活動とその間の依存関係を視覚的な流れとして表現したものです。ノードは活動(またはマイルストーン)を表し、矢印はそれらの活動が発生すべき順序を表します。結果として、プロジェクトの開始から終了までの方向性を持つグラフが出来上がります。
ネットワーク図は、クリティカルパス法(CPM)とプログラム評価レビュー技法(PERT)という2つの主要なスケジューリング手法の土台です。どちらの手法も、期間の見積もりや確率の範囲を適用する前に、正しく順序付けられたネットワークが存在することを前提としています。
主要な事実
- マッキンゼーによると、期限通りに完了するプロジェクトはわずか47%であり、スケジュール管理はプロジェクトマネジメントにおいて最も根強い課題の一つとなっています。
- ITプロジェクトの6件に1件は70%以上のスケジュール超過を経験しており、その多くは依存関係の連鎖が十分にマッピングされていなかったことが原因です。
- ネットワーク図を用いたCPMのような明確なスケジューリング手法を積極的に活用しているプロジェクトは、リスト形式の追跡だけに頼るプロジェクトを一貫して上回る成果を上げています。(PMI、Pulse of the Profession)
AONとAOA:2種類のネットワーク図
プロジェクトネットワーク図の描き方には2つの形式があります。自分が見ているのがどちらの形式か、そして自分のツールがどちらを生成するのかを知っておくことが重要です。読み方が異なるためです。
**アクティビティ・オン・ノード(AON)**は、各活動をノード(ボックス)の中に配置します。ノード間の矢印は依存関係のみを示し、矢印そのものには「これがあれの前に来る」という以上の意味はありません。AONは、最新のプロジェクト管理ソフトウェアや、今日ほとんどの実務者が用いるクリティカルパス法で使われる形式です。
**アクティビティ・オン・アロー(AOA)**は、活動をボックスではなく矢印上に配置します。ノード(円)はイベント、つまり活動の開始または終了を表します。AOAはより古い形式で、PERTチャートと密接に関連しており、土木工学の分野では今でも時折使われています。
| 特徴 | アクティビティ・オン・ノード(AON) | アクティビティ・オン・アロー(AOA) |
|---|---|---|
| 活動の位置 | ノード(ボックス)の中 | 矢印の上 |
| ノードの意味 | 活動やタスク | イベント(開始/終了地点) |
| ダミー活動の必要性 | 不要 | 場合による(実際の活動なしに依存関係を示すため) |
| 主な用途 | CPM、最新のPMソフトウェア | PERT、土木・建設工学 |
| 可読性 | 多くのチームにとって読みやすい | 一目で読み取るのは難しい |
| ソフトウェアツールでの標準 | はい | まれ |
今日の多くのプロジェクトにとって、AONが適切な選択肢です。読みやすく、ダミー活動も不要で、MS Project、Asana、Smartsheetといったツールが自動生成する形式でもあります。
見積もりが不確実な、リサーチ主体のプロジェクト向けにPERTチャートを作成する場合、古い資料の中でAOA記法を目にすることがあるかもしれませんが、AONでも十分機能します。
ネットワーク図の記号と用語
ネットワーク図を作成する前に、基本となる記号とスケジューリング用語に慣れておきましょう。これらはフォワードパスとバックワードパスのすべての計算に登場します。
| 記号・用語 | 意味 |
|---|---|
| ノード(長方形) | 一つの活動またはタスク |
| 矢印 | 依存関係(始点側の活動が終点側の活動より先に完了していなければならないことを示す) |
| 開始ノード | プロジェクトの最初の活動(または単一の「開始」マイルストーン) |
| 終了ノード | プロジェクトの最後の活動(または単一の「完了」マイルストーン) |
| FS(Finish-to-Start) | タスクAが完了するまでタスクBは開始できない。最も一般的な依存関係のタイプ |
| SS(Start-to-Start) | タスクAが開始するまでタスクBは開始できない |
| FF(Finish-to-Finish) | タスクAが完了するまでタスクBは完了できない |
| SF(Start-to-Finish) | タスクAが開始するまでタスクBは完了できない。まれなタイプ |
| ES(Early Start) | 活動を開始できる最も早い日付 |
| EF(Early Finish) | 活動を終了できる最も早い日付(ES + 期間) |
| LS(Late Start) | プロジェクトを遅らせずに活動を開始できる最も遅い日付 |
| LF(Late Finish) | プロジェクトを遅らせずに活動を終了できる最も遅い日付 |
| フロート/スラック | プロジェクトの完了日に影響を与えずに活動が遅れてもよい時間(LF - EFまたはLS - ES) |
| クリティカルパス | ネットワーク内で最も長い経路。その上のすべての活動でフロートがゼロになる |
フロートは、どれだけ余裕があるかを教えてくれる数値です。フロートがゼロの活動はクリティカルパス上にあり、そこでの遅延はそのままプロジェクトの遅延になります。
ネットワーク図の作り方
ネットワーク図の作成は5つのステップからなるプロセスです。図の質は、描き始める前に集めた入力の質にすべてかかっています。
ステップ1:すべての活動をリストアップする
作業分解構成図(WBS)から始めましょう。成果物を生み出すすべてのワークパッケージが、ネットワーク上の一つの活動になります。各活動に短いラベル(A、B、CやWBS 1.1.1のようなコード)を付けましょう。当たり前に見えるからといって活動を省略してはいけません。ノードの抜け漏れは誤った依存関係の連鎖を生み出します。
ステップ2:依存関係を定義する
各活動について、次の3つの問いを立てましょう。
- この活動が始まる前に何が完了していなければならないか
- 同時に開始できるものは何か
- この活動が完了するまで開始できないものは何か
それぞれの関係について、依存関係のタイプ(FS、SS、FF、SF)を記録しましょう。実際のプロジェクトの多くは80〜90%がFinish-to-Startですが、複雑なエンジニアリングやソフトウェア開発では、並行するStart-to-Startの連鎖が頻繁に見られます。
ステップ3:活動を順序付ける
依存関係に基づいて、活動を左から右に並べます。先行するものがない活動は左端(プロジェクトの開始)に、後続するものがない活動は右端(プロジェクトの終了)に配置します。それらをつなぐ矢印を描きましょう。開始ノードと終了ノードを除き、すべての活動には少なくとも1本の入ってくる矢印と1本の出ていく矢印が必要です。
循環依存がないことを確認してください。もし活動Aが活動Cに依存し、Cが再びAに依存しているなら、スケジューリングを不可能にするループが存在することになります。
ステップ4:期間の見積もりを追加する
各活動の推定期間を、ノードの中または横に書き込みましょう。期間が不確実な場合は、PERTの三点見積もり、楽観値(O)、最頻値(M)、悲観値(P)を使います。PERTの計算式は加重平均を与えます:(O + 4M + P) / 6。
見積もりの信頼性が高い単純なプロジェクトでは、活動ごとに単一の確定的な期間で十分です。
ステップ5:クリティカルパスを計算する
フォワードパスを実行して各活動の早期開始日と早期終了日を求めます。次にバックワードパスを実行して、最遅開始日と最遅終了日を求めます。各活動のフロートを計算しましょう。すべてのフロート値がゼロになる経路がクリティカルパスであり、その合計期間がプロジェクトの最短完了時間です。
この出力をベースラインスケジュールに結びつける方法については、プロジェクトプランニングを参照してください。
ネットワーク図の例
6つの活動からなる、シンプルなソフトウェアリリースプロジェクトを見てみましょう。
| 活動 | 説明 | 期間(日) | 先行活動 |
|---|---|---|---|
| A | 要件を定義する | 3 | なし |
| B | アーキテクチャを設計する | 5 | A |
| C | コアモジュールを開発する | 8 | B |
| D | UIを開発する | 6 | B |
| E | 統合テスト | 4 | C、D |
| F | 本番環境へデプロイ | 2 | E |
フォワードパス(早期開始/早期終了):
- A:ES=0、EF=3
- B:ES=3、EF=8
- C:ES=8、EF=16
- D:ES=8、EF=14
- E:ES=16(Cによって決まる)、EF=20
- F:ES=20、EF=22
プロジェクト期間:22日。
バックワードパス(最遅開始/最遅終了、Fの EF=22から逆算):
- F:LF=22、LS=20
- E:LF=20、LS=16
- C:LF=16、LS=8
- D:LF=20、LS=14(Dのフロートは6日:LS 14 - ES 8 = 6)
- B:LF=8、LS=3
- A:LF=3、LS=0
フロートの計算:
| 活動 | ES | EF | LS | LF | フロート | クリティカルパス上か |
|---|---|---|---|---|---|---|
| A | 0 | 3 | 0 | 3 | 0 | はい |
| B | 3 | 8 | 3 | 8 | 0 | はい |
| C | 8 | 16 | 8 | 16 | 0 | はい |
| D | 8 | 14 | 14 | 20 | 6 | いいえ |
| E | 16 | 20 | 16 | 20 | 0 | はい |
| F | 20 | 22 | 20 | 22 | 0 | はい |
クリティカルパス:A→B→C→E→F(22日)。 活動Dには6日のフロートがあり、リリースを遅らせることなくUI開発の開始を最大6日遅らせられることを意味します。
ネットワーク図とガントチャートの違い
これら2つのツールはそれぞれ異なる課題を解決するものであり、組み合わせて使うことで最も効果を発揮します。
| 観点 | ネットワーク図 | ガントチャート |
|---|---|---|
| 主な目的 | 活動の順序と依存関係を示す | タイムラインとリソース配分を示す |
| 視覚的な形式 | ノードと矢印によるフローグラフ | カレンダー上の水平バーチャート |
| 最適な用途 | クリティカルパスの特定、フロートの分析 | ステークホルダーへのスケジュール共有 |
| 依存関係の可視性 | 明示的(図の中核をなす) | 任意(依存関係の線は雑然としがち) |
| カレンダー上の日付 | 必須ではない | ビューの中心 |
| 対応可能なプロジェクト規模 | 小規模〜非常に大規模(複雑になりうる) | 小〜中規模(大規模だと視覚的に雑然とする) |
| 作成のタイミング | スケジールを確定する前 | ネットワークが検証された後 |
まずネットワーク図を作成しましょう。順序と期間が正しいと確信できたら、その内容をガントチャートに転記し、日々の追跡とステークホルダーへの報告に使います。ガントチャートは「いつ」を示し、ネットワーク図は「なぜ」を示します。
よくある間違い
依存関係の議論を省略する。 多くのチームは、スケジュールがすでに確定した後にネットワーク図を描くため、図が計画のためのツールではなく単なる装飾になってしまいます。期間を確定する前の、依存関係を定義する段階で活用しましょう。
すべての経路をクリティカルとして扱う。 複雑なネットワークを目にすると、チームはすべての活動を同じ緊急度で管理しようとすることがあります。フロートには存在理由があります。真のクリティカルパスに注意を集中させながら、クリティカルでない活動には多少の遅延を吸収させましょう。
合流点となる活動を見落とす。 複数の先行活動を持つ活動(上の例における活動Eなど)は合流点です。マネージャーは合流点でのリスクを過小評価しがちです。クリティカルな先行活動だけを注視し、他を見過ごしてしまうためです。どの先行活動が遅れても、合流点は遅れます。
誤った依存関係のタイプを使う。 実際には作業が重なっているのに、すべてをFinish-to-Startとして扱ってしまうと、スケジュールは必要以上に長くなります。SSやFFの依存関係を積極的に見直しましょう。そこにスケジュール圧縮の機会が隠れています。
図の更新を忘れる。 プロジェクト開始時に作成され、その後一切手を加えられていないネットワーク図は、役に立たないどころか有害です。誤った安心感を与えてしまいます。スコープが変わったとき、活動が追加されたとき、あるいは先行関係が誤っていたと判明したときには更新しましょう。
よくある質問
ネットワーク図とPERTチャートの違いは何ですか?
PERTチャートは、アクティビティ・オン・アロー(AOA)記法と、スケジュールの不確実性を扱うための三点期間見積もり(楽観値、最頻値、悲観値)を用いる、プロジェクトネットワーク図の特定の一種です。ネットワーク図はより広い概念であり、AONとAOAの両方の形式を含み、単一値見積もりでも三点見積もりでも使用できます。すべてのPERTチャートはネットワーク図ですが、すべてのネットワーク図がPERTチャートというわけではありません。
プロジェクトネットワーク図にはいくつの活動が必要ですか?
決まったルールはありませんが、50〜60を超える活動を含む図は1ページで読み取るのが難しくなります。大規模プロジェクトでは、マスターネットワークをフェーズやワークパッケージごとにサブネットワークへ分割し、それらを主要なマイルストーンでつなぎましょう。作業分解構成図は、この目的のために活動をグループ化する自然な方法です。
プロジェクトに複数のクリティカルパスが存在することはありますか?
はい。ネットワーク内の2つ以上の経路が同じ合計期間(いずれもプロジェクトの最短完了時間に等しい)を持つ場合、それらはすべてクリティカルです。複数のクリティカルパスが存在するということは、スケジュールリスクがより高いことを意味します。どちらの経路上の遅延も、プロジェクトの遅延につながります。
ネットワーク図を自動生成するソフトウェアには何がありますか?
MS Project、Primavera P6、Smartsheet、ProjectLibreはいずれも、タスクリストと依存関係データからネットワーク図を生成します。LucidchartやMiroは手動での描画をサポートしています。多くのプロジェクト管理プラットフォーム(Asana、Monday.com、Wrike)は、簡略化されたAONネットワークに近い依存関係ビューを表示します。
変更指示が追加されると、クリティカルパスはどうなりますか?
新しい活動は、ネットワーク全体のフロート値を変化させます。それまでクリティカルでなかった経路に期間を追加する変更指示は、その経路をクリティカルにしたり、まったく新しいクリティカルパスを生み出したりすることがあります。活動の追加・削除や依存関係の変更を伴うスコープ変更が発生した後は、必ずフォワードパスとバックワードパスを再計算しましょう。
関連記事
- クリティカルパス法:ネットワーク図からCPMを計算する方法
- PERTチャートとは:三点見積もりによる確率的スケジューリング
- ガントチャートとは:ネットワーク図の後に続くタイムラインビュー
- 作業分解構成図:ネットワークが依拠する活動リストの構築
- プロジェクトプランニング:ネットワークを完全なプロジェクトベースラインに結びつける
ネットワーク図は、プロジェクトスケジュールが実際に組み立てられる場所です。ガントチャートやステータスレポートはその後に作られるものですが、それらの文書を信頼できるものにする依存関係のロジックは、最初のタスクが始まる前に描くこのノードと矢印のマップの中にこそ息づいています。

Senior Operations & Growth Strategist