📚

【PJ運営】素早くプロジェクトの体制図を作りたい

2022/06/12に公開

1. はじめに

この記事は、プロジェクト(以降PJ)の体制図(部門の場合は組織図)が必要な方向けの情報です。
テキストファイルから、さくっとPJ体制図を作成します。

  • 【利用者像】:
    • 組織規模10名以上の部門の管理職の方
    • 5名以上の複数チームをお持ちのPJマネージャー/PJリーダーの方
    • 複数プロジェクトの管理が必要なPMOの方
  • 【利用シーン】:
    • プロジェクト立上げ時の体制づくり
    • 工程変更、要員変更時のとき

2. 出来上がりイメージ

体制図作成は、ブロック図生成ツール blockdiag を利用します。
出来上がりのアウトプットイメージは、以下です。

3. 作り方

3.1. 必要なもの

  • Python環境(必須):
  • テキストエディタ(必須): UTF-8,LFコードを処理できるもの
  • 要員リスト(必須): 要員名・役割が書かれたもの
  • Officeツール(任意): プレゼンテーション用(PowerPoint,Excel等)

3.2. 準備

  • (1) Python環境に blockdiag を導入します。
$ pip install blockdiag
... 略
$ blockdiag --version
blockdiag 3.0.0
$ apt -y update && apt -y install vim file && echo $?
0
  • (2) 正しく導入出来ていることを確認します。
$ vi sample.diag  ←  エディタでサンプルテキストを書きます。
{
   A -> B -> C;
        B -> D;
}
:q!  ←テキストを保存します。
$ blockdiag sample.diag  ←ブロック図に変換します。
$ file sample.png ← PNGファイルが出来上がったことを確認します。
sample.png: PNG image data, 640 x 200, 8-bit/color RGBA, non-interlaced

3.3. 調理

  • (1) 要員リストをインプットに、PJ遂行に必要な体制図を書きます。上位の方を最初に記載し、その後、グルーピングしたチーム毎に記述していきます。
    【特記事項】:
    • チーム間で、メンバーが被る場合は、名前に(兼)を追加します。
    • ダブルコーティションやセミコロンに注意しましょう。
{
   orientation = portrait

   "高橋(PM)" -> "鈴木(TL)", "佐藤(TL)" ;

   group {
      label="FrontEndチーム";
      color = lightgreen;

      "鈴木(TL)" -> "高木", "佐々木", "青木";
   }

   group {
      label="BackEndチーム";
      color=khaki;
      "佐藤(TL)" -> "遠藤";
      "佐藤(TL)" -> "近藤";
   }

}
  • (2) 記入が終わったらブロック図へと変換します。
$ blockdiag pj-A.diag  ← PNGファイルを出力する場合
$ file pj-A.png
pj-A.png: PNG image data, 1024 x 280, 8-bit/color RGBA, non-interlaced
$ blockdiag pj-A.diag -T svg   ← SVGファイルを出力する場合
$ file pj-A.svg
pj-A.svg: XML 1.0 document text
  • (3) エラーが出たら、修正後、再変換を行います。
ERROR: [Errno 2] No such file or directory: 'xxxx.diag'
原因:ファイル名誤り
対策: 正しいファイル名を記入する
ERROR: Got unexpected token at line 4 column 6
原因:トークンがない。あるいは ”の記載もれ
対策: エラーメッセージに基づき、修正を行う
ERROR: UnicodeEncodeError caught (check your font settings)
原因:フォント設定が足りない
対策:
対策: 日本語フォントIPAを指定する
apt-get update && apt install -y fonts-ipafont && echo $?
ERROR: unknown format: PDF
原因:blockdiag のPDF出力に必要なパッケージが未導入
対策:pdfパッケージを導入する
pip install "blockdiag[pdf]" && echo $?
  • 出力したファイルのサイズを比べてみます。SVG<PNG<PDF<JPEGの順ですね。(jpgはImageMagick -qualityデフォルトで変換)
ls -al PJ*
-rwxrwxrwx 1 1000 1000    345 Jun 12 10:16 PJ-A.diag
-rwxrwxrwx 1 1000 1000  27349 Jun 12 06:42 PJ-A.jpg
-rwxrwxrwx 1 1000 1000  19401 Jun 12 11:59 PJ-A.pdf
-rwxrwxrwx 1 1000 1000  16460 Jun 12 11:07 PJ-A.png
-rwxrwxrwx 1 1000 1000   6584 Jun 12 11:06 PJ-A.svg

4. 活用方法

出来上がったPNGやSVGファイルはPowerPoint に挿入することが出来ます。
SVGの方が図を拡大したときの仕上がりがきれいですが、Mac 版のOffice 2016だと表示できない、といった問題もありますので、画像ファイルの選択は環境にあわせましょう。

なお、50名を超えてくると、効率的かつ瞬時に作成することがより重要になるかと思います。
特に部門で複数のプロジェクトを抱える場合、要員リストをインプットにバッチ実行することも必要になってくるでしょう。今後の課題ですね。

5. 参考

この記事は、以下の曲を聴きながら、作成しました。気分を上げたい方はどうぞ。

  1. Le Freak(Chic)
  2. Play That Fankey Music(WildCherry)
  3. The Hustle(Van McCoy)
  4. Cerebration(Kool & The Gang)
  5. We Are Family(Sister Sledge)
  6. Got to be real(Cheryl Lynn)
  7. Best Of My Love(The Emotions)
  8. September(EARTH, WIND & FIRE)
  9. Manic Monday(The Bangles)
  10. Purple Rain(PRINCE)

確認に使ったdocker-composerファイルをのせておきます。WSL環境で試行済み。
ご参考までに。

version: '2'
services:
  dev-python:
    image: python:slim-buster
    container_name: 'dev-python'
    tty: true
    volumes:
      - /mnt/c/Users/user/Desktop/mytools/dev-python:/usr/local/src
# usage:
#   docker-compose down && docker-compose run dev-python /bin/bash

コンソール画面への表示、他の書式への変換トライ中です。
しっくりしたものが出来ていませんが。。。

(1) コンソール出力 その1
$ apt install -y imagemagick jp2a potrace
$ convert sample.png -quality 100 sample.jpg
$ jp2a sample.jpg

(2) コンソール出力 その2
$ apt install -y imagemagick i2a
$ i2a sample.jpg

(3) PNGからSVGへの変換
$ apt install -y imagemagick potrace
$ convert file.png file.pnm 
$ potrace file.pnm -s -o file.svg

ここまで読んでいただいた方、ありがとうございます!!

では、また。

Discussion