「工数」とは一体なんなのか考えてみた話
※ここに書くことは私見であり、所属する会社の見解は一切含まれないことを初めに記しておきます。
弊社では、サイト制作・スポット開発にかかる費用の見積もりを依頼された場合、まず工数を見積り、[かかる人日]×[単価]で費用を算出しています。(見積もりをするのは私のバディですが)
ですが、そもそも工数とは一体何なのか。
「バッファを含んでいるのでは?」
「実際は見積より早く終わっているのでは?」
などと言われることもあり、何と説明すれば良いのやら…と思うことがたまにあるので自分用に整理しました。
目次
工数=「期待されている成果物を完成させるためにかかる標準的な作業時間」
結論から言うと、工数は単なる「作業時間」ではなく、厳密に言えば「期待されている(求められている)成果物を完成させるためにかかる標準的な作業時間」だと思っています。
ポイントは3つ。
- 「期待される成果物」がベースであるということ
- 「標準的な」作業時間であるということ
- 「作業時間」であるということ
ポイント1. 「期待される成果物」がベースであるということ
まずポイントの1つ目は、「工数」がベースなのではなく「成果物」がベースだということです。
その成果物をより具体的に、設計レベルまで落とし込むのが要件定義です。
ゆえに、仮に要件定義段階や検収段階で「ついでにここも変えてほしい」といった要望が発生した場合、それは「期待されている成果物が変更になった」ことになるので、要件定義もし直さないといけないし何よりも開発工数が追加発生します。
追加要件が人日換算するほどでもない作業量で終わるのであれば工数追加はなしとしていますが、何はともあれ「追加になる」ということは頭の片隅に置いて依頼していただけるとありがたいかなと思っていたりします。
ポイント2. 「標準的な」作業時間であるということ
読んで字の如しですが、工数は開発者ごとの作業時間ではなく、標準的な作業時間で見積もります。
アサインできる開発担当者が、Aさん・Bさん・Cさんの3名いたとします。
「期待されている成果物X」があるとして、各人がかかる作業時間は下記であるとしましょう。
- Aさん:40時間(5人日)
- Bさん:32時間(4人日)
- Cさん:16時間(2人日)
当然ながら圧倒的に生産性が高いのはCさんですが、単純にその人日に工数単価をかけた場合、Cさんをアサインすると会社は損をしてしまいます。
ゆえに、(何を標準と定義するかは置いておいて)「概ね、成果物Xには4人日かかる」と見積担当が判断したのであれば、AさんがやろうがCさんがやろうが人日は4人日として算出するっていうのが誰も損をしない工数見積なんだろうなと思います。
ポイント3. 「作業時間」であるということ
「当たり前でしょ」と思われそうですが、工数に交渉時間や相談時間などは見込んでいないということです。
要件定義の工数は、あくまで「期待される成果物」を、設計レベルに落とし込むために行う工数だったりします。
ゆえにもし「自分たちで要件を固めるのが不安なので、相談したい(議論をする時間の余地がほしい)」のであれば、その旨を事前に伝えておいていただけるとありがたいです。
以上、工数に関する個人的な覚書でした。