エンジニアの1日は8時間というトリックがコスト増を招く
作業工数の見積もりをする際にどのように工数を見積もっているでしょうか。工数は人月を単位として見積もる場合の流れをポストイットに書き出してみてください。
さて、書けましたか。
作業見積もり
作業を見積もるのですからこれから作業する将来の作業時間を見積もります。見積もりには様々な見積もり手法があります。FP法、COCOMOIIなどありますから見積もり対象が見積れる手法を選択して見積もります。わざわざ見積れる手法でと書いているはインフラの作業見積もりにはFP法は向かない場合もあるからです。
何れにしても、ある程度の精度で見積もりできる手法を選ばならないのは変わりません。
人月単位
お題は見積もり単位を人月で答える、というものです。さて人月は月あたりに占める人的リソースの使用量ですから、人月を1とした場合の人的リソースを誰もが共通的に同じ解釈をできる単位で交換する必要があります。
その単位は通常は時間です。時間を対価と交換するわけです。
月あたりの時間を単純化するために次ように定義します。
8時間/日にち
お題は単位が月間ですから、これを月の単位に変換したいところですがひと月あたり何日働くのかを決めなければなりません。労働基準法32条では1週間について40時間を上限にしていますから1週間では40時間です。
月の日にちが30日であれば4週間と2日になります。便宜上、1ヶ月を4週間とするとひと月当たりの作業時間は次のように求められます。
40時間*4週間=160時間
ひと月160時間が1人月。
160時間の意味
人月の単位は定義できましたし、作業工数も精度のある手法で求められたので、人月当たりの作業見積もりが導き出せますね。
含まれるものは何か
ところで、作業見積もりに含まれる作業は何が含まれいるのでしょうか。それを書き出してください。コーディングならコード書いて、デバッグして、でしょうか。仕様書なら執筆してレビューして、でしょうか。
その他には含まれていない、のでしょうか。
含まれないものは何か
では次のものは含まれているのでしょうか。
・上司との打ち合わせ
・休暇、病欠
・カンファレンス出席
・研修
1日8時間のワナ
通常これらの活動は160時間の中には含まれていません。そうなんですね。知っているよ、わかっているよという方がほとんどだと思うのですが、工数を見積もって人月に観山する際に1人月を160時間働けることを無意識に前提としていませんか。
そう、これがワナなんですね。そして160時間で見積もっているからそのぶん、含まれない活動や休暇が割り込んでくるとその分外にはみ出てしまうのです。
何が問題か
これを考慮せずに定常的に見積もりをしているとどうなるかを考えてみましょう。
含まれない活動や休暇は日中帯に割り込んできます。割り込まれた分だけ残業としてはみ出ます。残業は法的に25%増しですから割り込んで押し出された本来日中帯に作業をする工数は、25%増しでコストが増えるということなのです。
稼働率にもワナがある
こうした対策として稼働率を設け、割り込んでくる工数見積もりに含まれない活動や休暇を差し引いて100%稼働の100%を例えば80%や70%に下げて人月を計算する方法もあります。
まあやりすぎると間接費が増えて利益率が下がるのですけど。
何を含めるかを共通にしておく
見積もる工数に何を含め、何を含めないかの線引きを緩くてもしておかないと思わぬコスト増がおきてしまいます。