はじめに
"WBS"というものは実際の現場では良く使われるものです。
でも現場によって意味が違っていたり、惰性で作っていてなぜ作っているのかよくわからなかったりもします。
ということで「WBSって何?何のために作るの?」を説明してみます。
Twitterでちょっと話があがったのでちゃんと説明したら焼肉くらいおごってもらえるかも?と思ったので投稿してみます。
WBSとは?
Wikipediaよりの抜粋
WBS : Work Breakdown Structure
プロジェクトを理解し管理する上で、プロジェクトの各工程を各担当者の作業レベルまで展開し木構造にまとめたものである。どのレベルまで展開するかはプロジェクトの全メンバーが作業内容を「具体的に〇〇をする」と理解出来るレベルまでに分解するのが理想であるが、最低でも作業担当者とプロジェクト管理者の理解が得られるレベルまでは必要である
簡単に図示するとこう。
つまり大きなカタマリのままでは理解しづらい最終ゴールを分解することでわかりやすくする手法です。
当たり前すぎて手法と言うほど大げさなものではないですがこれをWBSと言っています。
あれ?WBSってガントチャートのことじゃないの?と思った方もいるかもですがそれは後述。
WBSの W=WORK(ワーク) とは?
ここでちょっとだけ考えておかないといけないのはWBSのWである「WORK(ワーク)」とは何か?です。
ワークは別に日本語で言うところの「作業」だけを指しているのではなく「成果物」も指しています。
例えば上の例は「ECサイト → ログイン機能 → ID/PW入力」までは成果物の視点で分解した流れです。書いてませんが「設計書」とかそういうのがでてくることもあります。その後の「設計」「実装」「テスト」は作業よりで分解しています。
WBSの基本的な考え方は「すべての作業を積み上げると最終的な成果物が出来上がる」というものです。なので個人的なおすすめとしては「成果物」で分解できるところまで分解して最後にその最も細かく分解された成果物を作るための「作業」を付けるというのをおすすめします。
WBSとガントチャートの違いは?(ついでにOBSも)
WBSと言った時に担当者付きのスケジュールを思い浮かべる人も多いと思います。
実際現場ではそう使われることが多いですがこれはどういうことかというと、
- WBSは成果物を分解して作業レベルにまで分解したもの
- OBSはWBSの作業に対して担当者名を付与したもの
- ガントチャートはWBSの作業を横棒でスケジュールや進捗を可視化したもの
図にしてみるとこんな感じです。
WBSを作れば担当者を割り振るでしょうしスケジュールも加えるでしょうし、これらは一括りにして「ガントチャート」と呼ばれていたり「WBS」と呼ばれていたりします。
メリットとかデメリットとか
メリットは何といってもわかりやすいところです。
老若男女とわず業界問わずほぼ誰でも意味を理解してくれます。
ツールも特別選びません。Excelでも何でも作ることができます。
これだけでもものすごいメリットです。
デメリットは真面目にやろうとするととても大変ということです。
ツリー構造というのは原則1つのルートからすべてが木構造につながります。それを末端まで全作業を分解していくのはとても時間がかかります。
最初から完璧にクリアなプロジェクトなら良いですが、そうでもないなら使い捨てになることがわかっているのに最初からWBSを完璧に作り上げるのは無駄です。
まとめ
WBSは複雑なゴール(要件)を見通しが良くなるように分解して扱いやすい形にしましょう!ついでに可視化もしてみんなで共有できるようにしましょう!というものです。
使い方次第では自身の理解のためのツールとしてもチーム内外の共有のツールとしても有効なツールなので毛嫌いせず積極的に有効活用してみましょう。
Appendix. アジャイルとの相性とか
一般的には相性があまり良くないと言われます。
上のデメリットでも書きましたが、原則的にWBSというものはゴールを分解して全ての作業を見えるようになるまで細かく分解していく手法です。
現代のソフトウェア開発においてプロジェクトのスタート時点で最終的なゴールの姿が確定していて、変化なく最後まで行くことは極めてまれです(というかあり得ないです)。ついでに言うとソフトウェアのような複雑なものを正確に日単位で見積もってスケジュール化することも無理です。作業者のスキルもバラバラですのでやってみないと分からないことが多い分野です。
そう考えると、最初にWBSをきっちり作って、担当者をわりふって、ガントチャートを書く作業は無駄です。すぐに使い捨てになってしまうからです。考える時間も無駄ならそれを図にする時間も無駄です。
だがしかし!!
その相性の悪さの裏返しで、要件が確実に決まっていて見積もり可能な作業であればWBSほど有効な手段はありません。
それはつまり何かと言うとアジャイル(Scrum)で言うところのSprint Backlogが近いです。Sprint Backlogの作業は要件は絶対に変更されないしスケジュールもSprint内でやることが絶対です。
スケジュールはSprintしばりなので考える必要はない。OBSも自律型チームであれば気にする必要はない。けどSprint Backlogをしっかり達成するためには実作業レベルまでSprint Planningで落としこむ必要はあります。その時にはWBSのテクニックは絶対的に有効なものです。
ということでWBS!?ガントチャート!?と毛嫌いせず積極的に学んで使えるところは使ってみましょう!というメッセージでした。