Googleスプレッドシートでプレシデンス・ダイアグラム法(PDM)を自動生成するアドオンを作ってみた

プロジェクトマネジメントの手法の一つにプレシデンス・ダイアグラム法(Precedence Diagram Method)というものがあります。これを使えば、各アクティビティごとの作業順序や依存関係が明らかになり、どのアクティビティが、絶対に遅れてはならないクリティカルパスなのか、逆に遅れてもよいフロート*を持つものなのか、を知ることができます。しかし、有効な手法である反面、一つひとつのアクティビティを依存関係に沿って繋ぎ、期間を計算をするのは骨が折れます。そこで、Googleスプレッドシートで自動生成をしてくれるアドオンを作成してみました。

*フロートとバッファはよく混同されますが別のものです。フロートとはスケジュールに影響なくアクティビティを遅らせられる期間を意味します。ちなみに、フロートが0のアクティビティを繋いだものがクリティカルパスです。

 

f:id:takuya0206:20180318011244g:plain

Precedence Diagram Maker

アクティビティをリストアップし、必要な情報を入力するだけで、自動でネットワーク図を生成してくれるアドオンです。WBS作成後など、やることが決まって「さあこれからスケジュールに落とし込むぞ」というときに活用するのが効果的です。

 

インストール

Precedence Diagram Maker - Google Sheets add-on

上記にPCからアクセスして、Googleアカウントにログインし、「インストール」をクリック。

 

Precedence Diagram Makerで出来ること

  • PDMのネットワーク図を自動生成
  • プロジェクト全体の必要総期間を自動計算
  • クリティカルパスを赤色で表示

 

仕様

アドオンメニュー
目次 動作結果
プレシデンス・ダイアグラムの作成 listシートを作成
サイドバーの表示 サイドバーを表示

 

サイドバー
目次 動作結果
Project Nameフォーム(任意) プロジェクト名を入力すればネットワーク図に反映される
実行 diagramシートを作成し、listシートの情報を元にネットワーク図を自動生成

 

listシート

f:id:takuya0206:20180315223523p:plain

目次 内容
アクティビティ一覧 アクティビティ名を入力(IDが自動付与される)
期間 数字を入力
先行ID

先行するアクティビティIDを入力。最初のアクティビティの場合は0に

先行アクティビティが複数ある場合はコンマ区切りで入力すること(例: 1,2)

関係性

アクティビティの依存関係を入力。FS (Finish to Start), SS (Start to Start), SF (Start to Finish), FF (Finish to Finish) のいずれかを選ぶこと

先行アクティビティが複数ある場合はコンマ区切りで入力すること(例: FS,SS)

リード / ラグ

数字を入力。リードタイムのときは負の数を、ラグタイムをのときは正の数に

先行アクティビティが複数ある場合はコンマ区切りで入力すること(例: -10,0)

 

diagramシート 

f:id:takuya0206:20180315225612p:plain

目次 内容
欄外 (ID)関係性_リード/ラグ)の順で先行アクティビティの情報を表示
一列目

赤色...クリティカルパス、灰色...一般のアクティビティ

アクティビティIDと必要期間を表示

二列目 最も早い開始日と終了日を表示
三列目 アクティビティ名を表示
四列目 最も遅い開始日と終了日を表示

 

お薦めの活用法

大雑把にですが、スケジューリングは次の順に進んでいきます。5番目のところで、このアドオンを用いて、全体の工期(クリティカルパスの期間の合計)を出すのがお薦めの活用法です。

  1. プロジェクト達成に必要なアクティビティを洗い出す
  2. 各アクティビティを担当するメンバー構成を考える
  3. 作業量と担当するメンバーから対応に必要な期間を出す
  4. 着手に必要なインプットと、完了時のアウトプットを整理し、アクティビティの依存関係を明らかにする
  5. 依存関係に基づいてアクティビティをつなぎ、全体の工期を計算する

 

制約

  • シート名を変更しない
  • 1行目より上に行の挿入をしない
  • 非表示の2行目を編集 / 削除しない
  • 各項目の間に列を挿入しない

 

以上です。ソースコードGithubに公開しているので興味がある人はどうぞ。また、追加して欲しい機能やバグなどあればこちらのフォームからご連絡ください。まあ正直なところ、今回のアドオンは用途が限定的なので、どれだけの人に役立つか不明なのですが。個人的には仕様に落とし込む過程で理論を深く理解することができたので、開発して良かったなと思います。もし「ちょうどこんなアドオンが欲しかったんだぜ!」という人がいれば、ぜひいつものあれをお願いします。

=> Amazon欲しいものリスト / PayPal