118
Help us understand the problem. What are the problem?

posted at

updated at

【新人SE講座】 第1回『WBSがないのは死亡フラグ』

主に新人システムエンジニア向けに、業務で必要になる知識やテクニックを解説していきます。
第1回のテーマはプロジェクト管理の基本である「WBS」です。
(評判がよければ第2回もやります。。。)

まとめ

WBSはタスク管理の基本。プロジェクトの関係者と協力して円滑に作業を進めるためのもの。

タスク管理ツールを使う前に、仕事のゴールを細分化してタスクに落とし込んでいく必要がある。

WBSの原則 1.すべてのアウトプットを洗い出し、最上位に定義する。 2.下位タスクに細分化するときは、上位タスクの達成に必要なすべてのタスクを洗い出す。 3.タスクは完了条件を明確にする。 4.1つのタスクは担当者が1人になるまで細分化する。 5.タスクは進捗がわかる程度まで細分化する。 6.作業進捗はパーセントではなくタスクの完了数で管理する。 7.WBSは関係者でレビューして認識のズレをなくす。

WBSは状況に応じて適宜修正する。 (最初から完璧なWBSを作ろうとしたり、最初の計画に固執しないこと)

登場人物

先輩。中堅SIerでシステムエンジニア歴10年目。
新人の伊藤さん。本社のキラキラオフィスを見て就職を決めたが、配属先は事業部の古臭いビルだった。
新人研修で初めてプログラムを書いた。

WBSって何

新人ちゃんが参加しているプロジェクトがどうもうまくいっていないようです。
先輩は上司から、新人ちゃんにアドバイスするように頼まれました。
なんかうまくいってないって聞いたけど、どんな感じ?
協力会社の田中さんと2人で作業してるんですが、なかなか思ったように作業が進まなくて…
作業が進まない原因は何か思い当たることある?
作業の全体像がつかめてないんですよね…あと、田中さんの担当だと思ってた作業が自分のだったりして、それで結果的に進捗が遅れてたりしました…
タスク管理とか進捗管理に問題がありそうだね。
まず、二人の作業ってどうやって管理してるの?
話し合って決めてます。特に管理とかはしてないです。
そうなのか…(リーダーはいったい何をやってたんだ?)
じゃあまずは、必要な作業がわかるようにWBSから作ろうか。
WBS…って何ですか?
WorkBreakdownStractureの略だね。日本語で言うと作業細分化構成図かな。
簡単にいうと、タスクを洗い出して、一覧にしたものだよ。
もしかして、いつも、えらいおじさん達が難しい顔して見てるエクセルのことですかね?
…なんか、昭和っぽいですね。もっとこう、オシャレなツールとかないんですか?
進捗遅れてるくせに余裕だな。
WBSは確かに50年以上前からある考え方だけど、まだまだ現役だし、重要だよ。
はぁ。そういえば本社の同期から聞きましたよ、本社ではtrelloとかいう今風のツールでタスク管理してるって。私もオシャレなツールが使いたいです。
どんなツールを使うとしても、タスクを定義するのは使う側の人間だよ。
まずは、仕事をどうやってタスク落とし込んでいくかを学んでいこうね。
いずれオシャレツールを使うために今は耐えます。
ちなみにリーダーから作業の進捗が遅いって注意されてるんですが、作業進めるよりWBS?作るのを優先しちゃって大丈夫ですかね?
大丈夫だよ。WBSなしで作業するほうがよっぽどヤバイからね。
WBSなしのプロジェクトとか初めての首都高でカーナビなしで運転するようなものだよ。
それはやばい
まぁそんなわけだからWBS作ってみよう。リーダーには俺から言っておくよ。
サーバに過去のプロジェクトのWBSがあると思うから、それを参考に作ってみて。
りょ

WBSの原則

(30分後…)
先輩、とりあえずつくってみました。例1.PNG
どれどれ…うーん…これ、よくあるダメWBSだね。
参考にした元のWBSがよくなかったかな。
がーん。
まぁ、学びながら修正していこう。
WBSは作る上での原則があるんだ。
1.すべてのアウトプットを洗い出し、最上位に定義する。
2.下位タスクに細分化するときは、上位タスクの達成に必要なすべてのタスクを洗い出す。
3.タスクは完了条件を明確にする。
4.1つのタスクは担当者が1人になるまで細分化する。
5.タスクは進捗がわかる程度まで細分化する。
6.作業進捗はパーセントではなくタスクの完了数で管理する。
7.WBSは関係者でレビューして認識のズレをなくす。
重要なものから確認していこうか。
まずは「①すべてのアウトプットを洗い出し、最上位に定義する」。
新人ちゃん、今回のプロジェクトで作成するアウトプットのリストある?
リーダからもらったメールにリストがありました。
意外とプロジェクトの最終アウトプットが抜けてたりするんだよね。
最近でも聞くよ、納期直前に試験エビデンス作るの忘れてたのに気づいたとか。
さすがにそんな初歩的なミスしないですよ。
まぁ、そういうミスを防ぐためにも、WBSの最上位は必ずアウトプットにするんだ。今回だとこんな感じかな。
●詳細設計書
●プロジェクト・ソースコード
●試験規格書
●試験成績書
作るものリストって感じですね。
そうだね。そして次は、アウトプットを作るために必要なタスクに細分化するんだけど、そのとき注意しないといけないのは「②下位タスクに細分化するときは、上位タスクの達成に必要なすべてのタスクを洗い出す。」。
これは、下位のタスクをすべて実施すれば、上位のアウトプットが完成する状態にするってことね。
当たり前のことに聞こえますね。
その当たり前が意外と難しいんだよ。
じゃあまず「詳細設計書」について、下位タスクの洗い出しをやってみようか。
えー詳細設計書作成に必要な作業…こんな感じですかね。
●一覧表示処理の詳細設計
●ユーザ登録処理の詳細設計
●データ登録処理の詳細設計
詳細設計書のレビューはしないの?
やるって聞いてます。
じゃあそれもWBSに書かないと。
えっそんなことまで書くんですか?
「細分化するときは上位の達成に必要なすべてのタスクを洗い出す。」だよ。
例えばアウトプットがソースプロジェクトの場合、開発環境構築とかビルドバッチ作成とかも、タスクとしてWBSに書いておいたほうがいいね。
へーなるほど。
でもどこまで細かく細分化するか悩ましいですね。
そうだね。タスクをどこまで細かくするかは、プロジェクトの期間とか作業内容応じて変わるね。

「タスクは進捗がわかる程度まで細分化する」に従うと、今回は毎週進捗報告があるなら、少なくとも1つのタスクが1週間以内で終わる量に細分化しようね。
「〇〇機能の全画面実装 3週間」で1タスクとかはダメってことですね。
そうだね。その場合は個別の「〇〇画面実装」程度まで細分化して進捗がわかるようにしようね。
タスクをどこまで細分化するかは結構個人の趣味がわかれるね。
たとえば「1タスクが15分以下になるように細分化しろ」って過激派もいるよ。
ヒェ…どんなにスクロールしても終わらないWBSができあがっちゃう。
まぁWBSばっかり作っててもアウトプットはできないから、ほどほどにね。
「1つのタスクは担当者が1人になるまで細分化する。」
「タスクは進捗がわかる程度まで細分化する。」
ができてれば最低限いいと思うよ。
了解です。
「ちょっと疲れたからTiktok見る」は詳細設計書を作るのに必要なタスクですよね、書いておきます。
要らないだろ。
か弱い私のメンタルを維持するには、ネズミが手作り罠にかかってる動画が必要なんですよ!
なにそれこわ…

タスクの完了条件を明確にする

次に大事なのは「タスクの完了条件を明確にする。」だね。
WBSでタスクにしたときは、何をもってそのタスクを完了とするかが決まっている必要があるよ。
下位のタスクの完了条件を決めるには、上位のタスクの完了条件が必要だから、一番最初は最上位のアウトプットの完成条件を決める必要があるよ。
完成条件は、リーダーがOKって言ったら完成です。
そーゆー曖昧な条件をやめようって話ね。先に完成イメージを合意してないと後で苦労するよ。
そしてWBSの全タスクが完了したら、アウトプットがすべて完成するのが正しいWBSだね。
理想はわかるけど、新人のぺーぺーには荷が重すぎるような。
まぁ最初から完璧なWBSを作ろうとしないで、作業をやりながらWBSを修正していってもいいんだよ。
そうなんですか?
てっきり最初にしっかり全部計画しないといけないものかと。
最初から全部完璧に計画しようとしても無理だからね。

むしろ、後半の作業は最初はざっくりで書いておいて、状況にあわせて詳細化するほうがうまくいくよ。作業すればするほどプロジェクトへの理解度が上がって、より正確なWBSが書けるようになるからね。
あとは、全部一人で書かないで、タスクの細分化は詳しい人に頼んだりしてもいいし。
そうなんですね。私の書いたWBSに作業漏れがあって、進捗が1日でも遅れたら周りから詰められるのかとびくびくしてました。
心理的安全性に問題があるなぁ…
WBSは予定の基準を作ったり、周りの人と分担して作業するために作るものだよ。WBSの内容は適宜見直して修正しようね。

反面教師としては、「俺のWBSは正しいんだ!作業がうまくいっていないのはお前らの作業が遅いからだ!WBSのとおりに作業が進むよう努力しろ!」って言って、かたくなにWBSを修正しなかった人が過去にいるとかいないとか。
うわぁ…
WBSは、周囲と協力して作業を進めるために作るものだってことを忘れないようにね。
あと進捗遅れに対しては、WBSはただその遅れを管理できるだけ。
どれだけWBSを編集しても進捗遅れは解消しないのだ…
?当たり前ですよね?
そう、本来は当たり前のことなんだよ…(遠い目)

進捗管理について

あとは「進捗はパーセントではなくタスクの完了数で判断する。」も大事だね。
パーセントにしちゃうとどうしても主観的な表現になっちゃうから、タスクは未着手/着手/完了ぐらいで管理するのがいいと思うよ。
いっつも雰囲気のパーセントで報告しちゃってました。
毎週進捗90%って報告するやつね。
よく勘違いされるんだけど、よくあるWBSの右側のほうに書いてある日付と横棒はガントチャートで、WBSとは別物なんだ。
そうなんですか?
WBSは、純粋にタスクを細分化したものだよ。
作業進捗をどう管理するかは人によるけど、個人的にはガントチャートよりも、作業の予定と実績を日付で記載するほうが好みかな。
そのほうが関数とか条件付き書式も設定しやすいし。

WBS完成?

先輩のアドバイスのおかげでなんとかWBSが完成しました。例2.PNG
うん、いい感じだね。
これなら作業の全体像もわかるし、田中さんとの作業分担で迷うこともなくなりそうです!
それはよかったね。

今後のタスク管理はこのままExcelでやってもいいし、TrelloやRedmineなんかのツールを使ってもいいと思うよ。その辺はリーダや田中さんと相談して決めてね。
はーい。
あとは最後に「⑦WBSは関係者でレビューする」。
タスクの認識にずれがないか、一応みんなにWBSをレビューしてもらおうね。
了解です、レビュー依頼出しときます。
まぁ毎週ミーティングしてるし、そんな認識ずれてることないと思いますけど。


(翌日...)


先輩…課長にWBSをレビューしてもらったら…アウトプットの認識がずれてて…実は操作マニュアルも作らないといけない、でも期限は変わらないって…
:scream:

参考文献

  • 『なぜ、システム開発は必ずモメるのか?』 細川義洋/著 ISBN:9784534051158

WBSの書き方は、会社とか職場によって結構違うと思います。
上記はあくまで一例ということで。

「俺の思う最強のWBSはこうだぜ」の意見があればコメントまでお願いします。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
118
Help us understand the problem. What are the problem?