WBSって何？

WBSなんて聞いたこともないという人に向けたWBSのいろは。
まぁググれば幾らでも解説は出てくるけれども。

#WBSとは
~~ワールドビジネスサテライトのこと。~~
Work Breakdown Structureの略。
**作業を細かい単位に分解すること。**

プロジェクトのスケジュール管理やタスク管理の基礎として使われる。
もちろん日々の個人作業の整理にも役立つ。

#WBSを作ろう
たとえば上司に「忘年会の企画やってよ」と無茶振りされたとする。

さてどうしたものか。
やらなきゃいけないことは色々ある。
とりあえず、書き出してみる。

```
・日程の検討
・お店の検討
・参加者へ連絡
・お金の話
```
こんなとこだ。
ちとザックリしすぎたので、更に細分化してみる。

```
【忘年を企画する】
　├─日程の検討
　│　└─1.希望日アンケート取る
　├─お店の検討
　│　├─2.お店をみつくろう
　│　└─3.お店を予約する
　├─参加者へ連絡
　│　├─4.開催案内
　│　└─5.直前再案内
　└─お金の話
　　　└─6.お金の徴収
```

こんなところだろうか。

「忘年会の企画をする」という無茶振りを、**6つの実現可能な作業に分解することが出来た！**
これがWBSである！

以上、WBSの説明終わり！

#WBSを作って終わりではない
WBSはただ作業を分解するだけ。
そんなのわざわざ横文字で「WBS」とか言わなくても無意識にやっとるわ！

実際のところ「WBSを作る」と言ったらWBSを作ることに加えて、
WBSを元にPERT図やガントチャートを作ったりするところまでを指す場合が多い。
（というか、人によってはWBS＝ガントチャートと誤解している人も居るのでは）

#WBSからPERT図を作る
馴染みは薄いが、案外役立つPERT図。
PERT図とは、WBSの作業を矢印で表現したアローダイアグラムのこと。
作業の前後依存関係を整理し、プロジェクトの実行に必要な日数や、スケジュール上のリスクとなり得る作業を洗い出せる。

##PERT図で作業の前後関係を整理する

さっそく先程作ったWBSからPERT図を作ってみよう。
実行順の制約に注意しつつ、作業を矢印で表現してみる。
ついでに、作業の所要日数も記入している。
![Screenshot 2020-01-21 at 08.43.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320097/88a64278-39da-9cae-91ab-80d6d56e75f8.png)
※作業を矢印で繋ぐのではなくて、マイルストーン（A~G）を作業=矢印で繋いでいる点に注意！

なお、PERT図を作る時、こういう矢印の繋ぎ方はしてはいけない決まりなので↓
![Screenshot 2020-01-21 at 09.16.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320097/075a6dfb-fee9-2b89-2735-684bab155e2e.png)
並行作業の場合は上図のように破線矢印のダミー作業（工数0）を使って表現する。

##PERT図で実行に必要な日数を整理する
作成した図に日数を書き込んでいく。
スタートを0日として、左から順にマイルストーン時点の経過日数を記入する。
この日数を**最早結合点時刻**と呼ぶ。
![Screenshot 2020-01-22 at 09.55.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320097/159492bf-d4c7-1d28-6435-626cdeadca80.png)
※２つの矢印が入ってきているマイルストーンは、大きい方の日数を採用する。

これで各マイルストーンに到達する最も早い日数がわかった。
当たり前だが**ENDの最早結合点時刻が、プロジェクト完了に必要な最低日数**になる。
今回は最短7日かかることがわかった。

##PERT図で余裕日数とクリティカルパスを整理する
次は、いつまでにそのマイルストーンに到達していないといけないか、を書き込む。
終わりは「7」と決まったので、そこから左に向かって日数を埋めていく。
この日数を**最遅結合点時刻**という。
![Screenshot 2020-01-22 at 09.57.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320097/15d73e66-1b3f-b7b9-c07f-78d303a33173.png)
最遅結合点時刻は、**その日までに前作業が完了していないとプロジェクトが遅延する**日、と言える。
また最早結合点時刻と最遅結合点時刻の差を**余裕日数**と言う。

余裕日数が「0」のマイルストーンを結ぶ線を**クリティカルパス**という。
クリティカルパス上にある作業は、**作業の遅延が即プロジェクトの遅延につながる**ので、スケジュール管理上特に注意を要する。
![Screenshot 2020-01-23 at 08.01.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320097/1016d0bd-2c5c-91ea-f65d-4d9bcc995dae.png)

#WBSからガントチャートを作る
WBSと言えば、お待ちかねのガントチャート。
ガントチャートは、縦軸に作業、横軸に日付、を表現した表（グラフ）の事。
ガントチャートはスケジュール管理や進捗管理に適している。

##ガントチャートでスケジュールを立てる
まず下表のようにWBSを表に埋めていき、PERT図で検討した日数などを参考に**開始終了の予定日を決めていく**。
ついでに担当を割り振ることができれば、割り振っておく。(作業人を手配しておく)
![Screenshot 2020-01-24 at 07.54.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320097/59b75d13-eb4e-4ca3-2ea0-440427ab74fe.png)
※クリティカルパスの作業には念のため長めの期間を当てている

予定日が決まったら、**横棒で日程を見える化**する。
これでガントチャートで進捗管理する準備が整った。
![Screenshot 2020-01-24 at 08.01.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320097/3763e79c-0c4f-4f47-8e35-d6087c2d1e8a.png)
※大日程の場合は、日付を月単位や四半期単位で表現したりもする、経営会議とかでよく見るやつ

##ガントチャートで進捗管理する。
実際にプロジェクトが進捗してきたら、実績の日付や工数、進捗率を記入していく。
また日付部分にも**実績の横棒を追加**して進捗具合を表現する。
また、当日時点での進捗の前倒し／遅延を赤の縦線（**イナズマ線**と言う）で表現する。
![Screenshot 2020-01-24 at 08.07.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320097/17e55416-24b2-006c-7224-208014a83494.png)
※月曜の朝時点の例

##ガントチャートとRedmine
ガントチャートは、昔はEXCELのマクロで作ったりしていたが、
今はRedmineに必要な項目を登録してやると自動で作ってくれる。
便利な時代になった。

#WBSを作る時のポイント
###WBSに分解する粒度
担当者が切り替わる単位や、スケジュール管理でマイルストーンとなる単位に分解するのが基本。
荒すぎると作業が漏れたり1人の担当者に当てられなくなるし、細かすぎるとスケジュール管理が煩雑になって管理できなくなる。

###作業か成果物か意識する
どういう事かと言うと・・・

```
【何かの開発プロジェクト】
　├─要件定義書
　├─外部設計書
　│　├─機能①
　│　├─機能②
　│　・・・
　├─内部設計書
　│　├─画面A
　│　├─画面B
　│　・・・
　├─製造&単体テスト

　・・・
```
```
【何かの開発プロジェクト】
　├─要件定義書 作成
　├─外部設計書 作成
　│　├─機能①
　│　├─機能②
　│　・・・
　├─内部設計書 作成
　│　├─画面A
　│　├─画面B
　│　・・・
　├─製造&単体テスト　実施
　・・・
```

の違いだ。
絵面は大差ないが、成果物でWBS化してしまうと作業漏れが起きやすくなるので注意したい。

なんの断りもなく「WBS」と言われたら「作業」の分解と思って差し支えない。
(成果物ベースのWBSも無いことはないが、スケジュール管理とは目的が違う)
なので、分解した作業の名前には必ず動詞や動作を表す語を含める癖をつけよう。