【雑記】WBSがうまく機能していないと考えたので、現状を振り返ってみた

はじめに(その1)

本エントリーは、個人の意見であり、属している企業の意見ではありません。

はじめに(その2)

よくシステム開発をする際にスケジュールを決めるため
見積もりした上でWBS(Work Breakdown Structure)を書くことが大半だと思います。

自分もまだ書かないプロジェクトに参画したことはないです。

しかし、最近、このWBSがうまく機能していない(または不毛)気がしたので
状況の整理がてらちょっと書いていきます。

そもそもWBSとは?

WBS(Work Breakdown Structure:作業分解構成図)は、プロジェクト全体を細かな作業(Work)に分解(Breakdown)した構成図(Structure)です。 プロジェクト全体でやるべき作業を洗い出す際にとても役立ちますので、「プロジェクト成功の鍵はWBSにあり」と心しておいてください。 http://www.sint.co.jp/products/obpm/serial/serial_umeda07.html

なるほど、確かに言っていることは間違ってはいない。
さらに言うと正解な感じがします。

なぜ、機能していないと思ったか

各々が携わっているプロジェクトにもよりますが
自分が今携わっているシステムはリリース周期が短いものばかりです。

周期は短いものの見積りはしっかりとやります。

  • 新機能だから、このぐらいかかりそうだ。
  • 改修だから他の箇所の影響も考慮しないといけない。
  • 画面のデザインが必要だから、デザイナーにお願いしないといけない。
  • 重要な機能だからテストは厚くやろう。
  • etc...

そして「人日」というものに落とし込んでいくのですが
ここが難しい所なのです。
誰にも邪魔されず、黙々と作業できれば「人日」でも良いでしょうが
システム開発はチーム開発と言っても過言ではないため、人日換算では
必ずズレが発生してしまいます。
現に自分も他システムの質問が間に入ってきたりすると、予定していた
時間よりもかなりズレている感覚があります。

逆に意外と簡単に終わりそうで、予定していた「人日」よりも
早く終る可能性もあります。

結局、見積りで出したものは予想や想像でしかなく、あくまで「目安」です。
語弊があるかもしれませんが、ただ「安心感」を求めているに過ぎないと
思ってしまっています。

WBSは不要なものなのか?

なるべく書かず、代用のプラクティスでどうにかしようと思っています。
しかし、チーム開発なので各メンバーの作業割当や進捗状況などをリーダーが
確認することも大事な仕事なので、視覚化することに関しては
素晴らしいツールだとも言えます。

代用のプラクティスとはどんなもの?

これも、プロジェクトによって違いますが、
これはやった方がいいだろうと思うものをあげます。

  • 朝会(スタンドアップミーティング)
  • 人日ではなく、ポイントで見積もる(相対見積り+プランニングポーカー)
  • リリース週を2週間単位などにして固定化
  • 週1でシステム開発に関わるすべての人を集めてのミーティング
  • プロジェクトのアサインを挙手制にする(リーダーからアサインしない)

朝会(スタンドアップミーティング)

これはどんなシステム開発でもやれて、ハードルが低いのではないでしょうか。
1週間分をまとめて聞くよりも早くキャッチアップでき、お互いのやっていることや
進捗がすぐにわかる素晴らしいものです。

人日ではなく、ポイントで見積もる(相対見積り+プランニングポーカー)

これが1番導入するのに苦労しそうな部分ですが、後々になってくると
人日よりより正確なものが出せるのではないかと考えています。

しかし、導入や実践、継続に関するいい例をなかなか見れていないので
ぜひ継続されている方がいましたら、意見を聞きたい状況です。

リリース週を2週間単位などにして固定化

今のシステム開発は見せられるものを見せて、すぐにフィードバックを
得られるような開発ができるようになりました。
それを最大限利用して、2週間単位などにして、開発の日数を固定化すれば
うまくいくのでは?と考えています。早く終わった場合、次の施策をうったり
勉強したりすればいいと考えます。

週1でシステム開発に関わるすべての人を集めてのミーティング

朝会とは違う点は「リーダーなども含めてのミーティング」というところでしょうか。
朝会は開発メンバー同士の進捗会であって、全体となるとまた違った視点となります。

さらにリーダーは忙しい身なので、毎日の朝会となると出席できる確立は
減ってしまうので、週1で定例を開いた方が良いです。

プロジェクトのアサインを挙手制にする(リーダーからアサインしない)

実はまだこれは実践したことがないのですが、やってみたいことの1つです。
「仕事を振られる」というのに慣れてしまうと「待ち状態」となってしまうことが
多いと考えています。
これが身についてしまうと、自分から動けない人になってしまうので
「不安だけども、やってやる!」という人にぜひやってもらいたいと思います。

ちなみにできないことに対して、無理にアサインは絶対にしないはずです。
そもそもプロジェクトが失敗したら元も子もないので。

まとめ

自分で読み返してみると、全体的に「WBSはいらない!書くだけ無駄!」という
意見になってしまっていますが、今の開発のWBSの「書き方が悪い」という面があるかも
しれないですし、難しいところです。

目指すところは「より良いシステム開発にしていく」なので
いろいろと模索しながら、やっていきます。