プロジェクトのフェーズ
立ち上げ:プロジェクトを発足し、関係者に伝える
計画:目標を決め、達成のための具体的な計画を作る
承認:計画をキーパーソンに承認してもらう
実行・コントロール:PMは進捗をモニターし、メンバーを支援する
終結:事後を振り返る
ワーク・パッケージを洗い出し、WBSを書く¶
プロジェクトを完了するために必要なすべての作業をツリーで階層的に表した図を WBS (Work Breakdown Structure) という。
作業を分解した最小単位をワーク・パッケージと呼ぶ。
import base64
from IPython.display import Image, display
def mm_ink(graphbytes):
"""Mermaid形式のグラフ(バイト列)から、画像生成用のURLを返す。"""
base64_bytes = base64.b64encode(graphbytes)
base64_string = base64_bytes.decode("utf-8")
return "https://mermaid.ink/img/" + base64_string
def mm_display(graphbytes):
"""Mermaid形式のグラフ(バイト列)を受け取り、画像として表示する。"""
display(Image(url=mm_ink(graphbytes)))
def mm(graph):
"""Mermaid形式のグラフ文字列を受け取り、画像として表示する。"""
graphbytes = graph.encode("utf-8") # ← 日本語対応
mm_display(graphbytes)
mm("""
graph TB
A["Project"]
A1["Task 1"]
A2["Task 2"]
A --> A1
A --> A2
A1 --> A11["Work Package 1-1"]
A1 --> A12["Work Package 1-2"]
A2 --> A21["Work Package 2-1"]
A2 --> A22["Work Package 2-2"]
""")
✅️ WSB作成時のポイント¶
作業の洗い出しに抜け・漏れがない(MECEである)ことが重要。
そのために参考になるルールがいくつかある
100%ルールがMECEであることに関わるので最も重要。ここで抜け漏れがあると、「Work packagesを全部済ませたのに成果物ができてない」という問題が出てしまう。
ネットワーク図を書く¶
WBSは作業間の依存関係を書かない。
ネットワーク図は作業間の依存関係・流れを描いた図。
import base64
from IPython.display import Image, display
def mm_ink(graphbytes):
"""Mermaid形式のグラフ(バイト列)から、画像生成用のURLを返す。"""
base64_bytes = base64.b64encode(graphbytes)
base64_string = base64_bytes.decode("utf-8")
return "https://mermaid.ink/img/" + base64_string
def mm_display(graphbytes):
"""Mermaid形式のグラフ(バイト列)を受け取り、画像として表示する。"""
display(Image(url=mm_ink(graphbytes)))
def mm(graph):
"""Mermaid形式のグラフ文字列を受け取り、画像として表示する。"""
graphbytes = graph.encode("utf-8") # ← 日本語対応
mm_display(graphbytes)
mm("""
graph LR
start(["開始"])
A1["A1"]
B1["B1"]
B2["B2"]
C1["C1"]
C2["C2"]
C3["C3"]
D1["D1"]
D2["D2"]
D3["D3"]
E1["E1"]
e(["終了"])
start --> A1
A1 --> B1
A1 --> D1
B1 --> B2
B1 --> C1
C1 --> C2
C2 --> C3
D1 --> D2
D2 --> D3
D3 --> C3
C3 --> e
A1 --> E1
E1 --> e
B2 --> e
""")
クリティカル・パスを把握する¶
クリティカル・パス は、プロジェクトにおける最も長い所要時間の経路のこと。
例:下の図のように、A1 → A2 の合計3時間の経路と B1 → B2 の合計6時間の経路がある場合、クリティカルパスは B1 → B2 である。
import base64
from IPython.display import Image, display
def mm_ink(graphbytes):
"""Mermaid形式のグラフ(バイト列)から、画像生成用のURLを返す。"""
base64_bytes = base64.b64encode(graphbytes)
base64_string = base64_bytes.decode("utf-8")
return "https://mermaid.ink/img/" + base64_string
def mm_display(graphbytes):
"""Mermaid形式のグラフ(バイト列)を受け取り、画像として表示する。"""
display(Image(url=mm_ink(graphbytes)))
def mm(graph):
"""Mermaid形式のグラフ文字列を受け取り、画像として表示する。"""
graphbytes = graph.encode("utf-8") # ← 日本語対応
mm_display(graphbytes)
mm("""
graph LR
S(["開始"])
A1["A1 (1 hour)"]
A2["A2 (2 hours)"]
B1["B1 (3 hours)"]
B2["B2 (3 hours)"]
E(["終了"])
S --> A1
A1 --> A2
A2 --> E
S --> B1
B1 --> B2
B2 --> E
""")
クリティカル・パスがプロジェクト全体の所要時間に大きな影響を与えるため、重点的に進捗をモニターして管理することが望ましい。
クリティカル・パスを短縮する方法
| 具体的方法 | 留意点 |
|---|
| 作業の依存関係にずれがあれば、作業を並行して行う。(ファスト・トラッキング) | 中間地点での成果物が充分に完成していること |
| 依存関係を組み直し、順番を変える。たとえば、前倒しを別にする(ファスト・トラッキング) | それに伴うリスクを容認できること |
| 作業をさらに細かく分解し、並行して行う(ファスト・トラッキング) | 変更を通知できること |
| フロートのある経路からクリティカル・パスへ資源を移す(クラッシング) | 移す要員にスキルがあり、時間制約がないこと |
| 障害を取り除く | 優先順位が高いこと |
| 時間外労働、シフト、要員の増加や外注出動(クラッシング) | 追加予算が承認されること |
| 別の方法や資源を使う「時間をお金で買う」 | 追加予算が承認されること |
| 品質を落とす | スポンサーの承認が得られること |
| スコープを削減する | スポンサーの承認が得られること |
中嶋秀隆. (2022). 改訂7版 PMプロジェクトマネジメント. 日本能率協会マネジメントセンター.