俺流!概算用工数算出の方法


はじめに

「概算で良いから工数を出してー」と頼まれる事が最近増えてきて概算用の算出方法を自分の中で持っておこうと思ってここに備忘録として記録しておくことにしました。

てか、こんな厄介な頼み方しないで欲しいw
何が厄介なのかって「概算で良いから工数を出して欲しい」は言い換えると
「時間を掛けずに、正確でなくて良いが乖離があまりない工数を出して欲しい」
と言う意味になりませんか?(あれ?俺だけ?w)

注意:
工数の出し方は完全に我流ですので、参考にならないかも
ちゃんとした工数算出を知りたい方はファンクションポイント法とかで調べてください。

まず何をするべきか?

さぁ、工数を出すぞー!って意気込んでも何をするのか迷う事があると思います。
悩まない人は読み飛ばしてくださいw

まず、工数を算出するためにやるべきこと、、、
それはどんな機能があるかを洗い出す事です!
いやいや、そんなの当たり前じゃんって声が聞こえてきますが無視します。
だってこれ俺得用の記事だしw

でもね、この機能の洗い出しって意外と難しいんですよ?
何が難しいって洗い出す粒度なんですよ。
そう、「概算で良いから」の一言があるからね。

粒度が粗過ぎると洗い出す時間はそこまで掛からないが、作業量が見えづらくなっちゃう。
逆に細か過ぎると作業量は見やすくなるが、洗い出すのに時間が掛かってしゃーない。

じゃ、どれくらいの粒度にすればいいの!?って話。

洗い出す機能の粒度

こっからが完全に我流ですね。
粒度に関しては基本的にそんな細かくないです。
むしろ粗い方ですねw

例えば何かの記事一覧ページを作るときは
◇レイアウトを作成する必要があるな
-> HTML、CSSを書く必要があるな
-> アニメーションを付ける必要があるな
◇記事情報を取得する必要あるな
-> APIで記事情報を取得しよう
-> APIの使い方を調査しなきゃ
◇ページャーを付ける必要があるな
-> APIでページ数の情報を取得しよう
-> APIの使い方を調査しなきゃ
このぐらいの洗い出しで概算としては十分。
今回のケースでのポイントはAPIの使用方法の調査まではしないってところ。
APIの使用方法の調査ってその調査自体でそこそこ時間の掛かる作業になる事が予想されるから調査を含めた工数を出す方が概算としては適していると考えられる。

まぁ今の会社だとこのくらいの粒度で許されてるってだけかもしれないけどw
後は洗い出した機能に作業時間を乗っけるだけ!
その作業時間を乗っけるのが大変なんだって声が聞こえる!
しゃーない教えてあげよう!

作業時間を乗っける

前回の例を引き続き利用させてもらいます。

■記事一覧ページの作成
◇レイアウトを作成する必要があるな
-> HTML、CSSを書く必要があるな
-> アニメーションを付ける必要があるな
◇記事情報を取得する必要あるな
-> APIで記事情報を取得しよう
-> APIの使い方を調査しなきゃ
◇ページャーを付ける必要があるな
-> APIでページ数の情報を取得しよう
-> APIの使い方を調査しなきゃ

簡単に作業時間を乗っけられそうなものから乗っけていきましょう。
◇HTML、CSSの作成
-> 特殊なレイアウトじゃなかったら6時間で出来そう!
-> アニメーションもそこまで凝ったものじゃないから2時間で出来そう!
◇記事情報取得APIの仕様調査
-> 多分、半日もあれば仕様を理解できそうだから4時間!
◇ページ数取得APIの仕様調査
->記事情報取得APIの仕様調査で大まかな流れを理解してるから1時間!

合計で13時間だ!やった1.5日で完成する!
1.5人日くらいです!って報告しよう!

と思ったそこのあなた!
罠に掛かりましたねw
前回洗い出した機能は粒度が粗めなのでこの状態だと恐らく工数が足りなくなります。
じゃやっぱ最初から粒度を細かくしなきゃじゃん。。。って思ったあなた!
それでは工数を出すまでに時間が掛かってしまい本末転倒です。
じゃどうすればいいんだよ!と怒り気味なそこのあなた!
魔法の言葉を与えましょうそれは5割増です!

先ほど算出した13時間を5割増にするとそれっぽい数字になります。

13h x 1.5 = 19.5h ≒ 2.5人日

そして、だいたいそのくらいの作業時間で完了するはずです。

まとめ

おおよその機能の洗い出しを行ってそれぞれに時間を乗っけて5割増にする!
たったこれだけで「時間を掛けずに、乖離があまりない工数」を算出することができるでしょう!

最後に

実際にやってみて恐ろしく乖離がある場合は最初の時間を乗っけるところが甘いので次回から気を付けましょうw