工数見積もりとは?
ご存知の方も多いかと思いますが、「見積もり」とはお金がいくらかかりそうですよ、という金額予想のことです。
「工数」とは、物品を作って売るとき、物品を作る為にかかった時間・労力のことです。
つまり、「工数見積もり」とは、物品を作る為にかかるであろう時間・労力の予想のことです。
システム開発における工数見積もり
「量産品」を販売する場合、見積もりは比較的シンプルです。モノによってある程度、作るのにかかる時間・労力が決まっているので、かなり正確に見積もりを出すことができます。
一方で、「オーダーメイド」で作る場合は、見積もりは難しくなります。初めて作る為、作るのにかかる時間・労力を予想することが難しいからです。
システム開発における工数見積もりは「オーダーメイド」型、且つ、作り上げるまで期間が長いです。そのため、時間・労力を正確に予測することは難しいですが、ある程度の根拠を持って予想の制度を高めていくための様々な手法が編み出されています。
過去の実績を参考にした「類推見積もり」やモノを作るまでに必要な作業ごとにそれぞれにかかる時間・労力を推測する「ボトムアップ見積もり」等の手法があります。
ファンクションポイント法とは
ファンクションポイント法とは、開発したいシステムの「機能」ごとにかかる時間・労力をポイントで表して見積もる手法です。「FP法」とも呼ばれます。
具体的には、システムに取り入れたい機能を5タイプに分類し、各機能の難易度に応じて「高」「中」「低」でランク付けを行い、各ランクごとに集計していく手法です。
ファンクションポイント法のメリット
ファンクションポイント法のメリットは、システム開発で実現したい機能を基準にポイント形式で見積もる為、ITについて詳しくない人でも分かりやすい点です。
システム開発を依頼したお客様(ユーザー)がITについて詳しくない場合でも納得してもらいやすいです。
見積もりの流れ
ファンクションポイント法における見積もりの流れは以下の通りです。
②機能のタイプ分け
③機能タイプごとのランク付け(主観による)
④ランクごとの規模の算出、補正
機能の5タイプ
機能の5タイプは以下の通りです。
- 内部論理ファイル
- 内部インターフェースファイル
- 外部入力
- 外部出力
- 外部照会
それぞれのイメージはこんな感じです↓
- 内部論理ファイル ⇒ システム内で作成・保有しているデータ
- 外部インターフェースファイル ⇒ システムが見に行く別システムのデータ
- 外部入力 ⇒ データ入力
- 外部出力 ⇒ データ出力
- 外部照会 ⇒ システム外への問い合わせ
システムに取り入れたい機能を上記の5タイプにそれぞれ分類します。
ファンクションポイント法のイメージ
ファンクションポイント法のイメージを考えてみます。
例えば、あなたが小学生だとしましょう。夏休みの宿題にかかる時間をファンクションポイント法で見積もってみます。
あくまで例えなので機能ではないですが、内容を基準にイメージしていきます。
①機能の洗い出し
夏休みの宿題を洗い出します。今回は以下とします。
- 漢字ドリル1冊
- 計算ドリル1冊
- 国語・算数・理科・社会プリント各5枚
- 自由研究
- 読書感想文2枚
②機能のタイプ分け
勉強内容をタイプ分けします。
- ドリル系:漢字ドリル1冊、計算ドリル1冊
- プリント系:国語・算数・理科・社会プリント各5枚
- その他:自由研究1つ、読書感想文2枚
③機能タイプごとのランク付け(主観による)
各タイプの中で難易度をランク付けします。
- ドリル系:「高」⇒0、「中」⇒1冊(計算ドリル)、「低」⇒1冊(漢字ドリル)
- プリント系:「高」⇒0、「中」⇒25(4教科×5枚)、「低」⇒0
- その他:「高」⇒1(自由研究)、「中」⇒2(読書感想文)、「低」⇒0
④ランクごとの規模の算出、補正
難易度ごとにかかる時間を定めて算出します。
今回は以下と見積もります。
ドリル系(1冊あたり):「高」⇒30時間、「中」⇒15時間、「低」⇒8時間
プリント系(1枚あたり):「高」⇒2時間、「中」⇒1時間、「低」⇒0.5時間
その他:「高」⇒10時間、「中」⇒5時間、「低」⇒3時間
③④の工程から夏休みの宿題にかかる時間を算出すると、、
ドリル系:30時間×0(高)+15時間×1(中)+8時間×1(低)=23時間
プリント系:2時間×0(高)+1時間×25(中)+0.5時間×0(低)=25時間
その他:10時間×1(高)+5時間×2(中)+3時間×0(低)=20時間
合計:23時間(ドリル系)+25時間(プリント系)+20時間(その他)=68時間
夏休みの宿題に68時間かかると見積もれた!といった具合です。
今回の例では、最初から時間で算出していますが、実際のシステム開発ではポイントで算出するため、最後に算出した合計ポイントに補正をかけて時間や値段に換算していきます。