ソフトウェア開発の見積書を見るとよくでてくる「人月」という単位。
人月って何?人月についてもっと知りたいという方に、問題点も含め簡単な解説をコンテンツにしました。
また良く知られた見積もり手法として、ファンクションポイント法(FP法)というものがあります。
これについても簡単な解説を行っています。
人月(にんげつ)とは
|
この「人月」という単位はシステム案件の見積書を作成する際に利用する単位です。
意味的には、1人月=「一人の技術者が1ヶ月に出来る作業量」となります。
同様の言葉で「人日」というのがあります。
これも同様で1人日=「一人の技術者が1日に出来る作業量」という意味になります。
フェローシップの場合、1ヶ月=20日で計算しますので0.5人月=一人で半月(10日)あれば出来る仕事という見積もりが成り立つわけです。
|
人月
| 一人で対応した場合の工数 |
0.1
| 2日 |
0.5
| 半月 |
1.0
| 1ヶ月 |
3.0
| 3ヶ月 |
※一ヶ月を20日とした場合
|
人月による見積もり時の問題点
人月による工数算出の問題点としては、以下のようなことが考えられます。
(1).それなりの経験がないとどのくらい掛かるのかという日数が出しにくい
(2).一人の技術者といっても新人〜ベテランまでいるのでどのレベルの人を基準とするのか?
(3).1ヶ月の定義が明示的になっていないことがある(1ヶ月=30日なのか、20日なのか等)
(1)については、制度の問題は多少あるにしろ見積もりをするレベルなのでプログラミング経験は無いはずがないはずですが、過去の資産をどこまで活用できるようにしているのか?同等の開発を経験しノウハウを持っているのか?という企業努力的な部分で差異が生じるとは思います。
次に(2)ですが、これは大きな問題になり得ると考えます。会社によっても見積金額が異なるのはこの部分に差異が生じているという気がしています。新人の3日とベテランの3日は違いますからね。
最後の(3)ですが、明示的になっているかは別にして基準は持っているはずです。依頼側と開発側が同じ認識でさえ見ていれば問題ではありません。
ファンクションポイント法(FP法)とは
|
ソフトウェアの“機能”を基本にした工数の算出方法。
機能数・処理の複雑さなどを点数としてカウントしていき(この点数をファンクションポイントという)、このファンクションポイントを合計して規模や工数を見積もる方式のこと。
一般的には、外部入力・外部出力・外部照合・内部論理ファイル・外部インターフェイスの5種類に分けて入出力の数をカウントする。
このとき種類毎に難易度を3段階(容易・普通・複雑)で評価。
これらの性質上、ある程度システムの要件がしっかりしていないとファンクションポイントがカウントできない。
|
見積もりの誤差を少なくするための工夫
依頼側としては、できる限り「要件定義をしっかり行うこと」(漏れなく開発者に伝えること)。
またもう一つは「経験・ノウハウのある信頼できる業者に発注することです」。
こちらについてはコミュニケーションをとって”見る目”も養っておく必要があります。
開発側から見ると、過去の実績を参考にしながら、お客様の要望を漏れ無くヒアリングできるか?
またこの機能を実装すると”言わなくても必要となる作業”というのを考慮することも重要です。
機能を漏れなく・出来るだけコンパクトな作業単位にして・過去の経験をもとに見積もれるかどうかというのが誤差のない見積書を作成するコツだと考えます。
|
|
|