無気力生活 (ノ ´ω`)ノ ~゜

脱力系エンジニア。てきとーに生きてます。

見積もりのあれこれ

早いもので、社会人として生活を始めてから今年で5年目に突入します。
5年目となると、そろそろベテランかな?とかいう雰囲気になってきて、今までできなかった工数の見積もりの作業もやらされるようになるわけで。

やってみた感想ですが、
見積もりは本当に難しいです(´・ω・`)
よくマネージャーやリーダーの人はこれやってたなぁ〜と実感しました。
この作業やるなら一生平でいいです、マジで。

うちの会社では、いわゆるLOC法(Lines of Code)とか、FP法(Function Point)といった見積もり技法は使わず、作業項目を限界まで細分化して、それぞれに工数を設定するといったやり方を導入しています。
作業量を計って工数をを出すLOC法やFP法では、仕様変更に伴う手戻り作業が想定されていないため、開発途中でのスケジュール調整が効きにくいのが欠点です。
(LOC法では実際にコーディングした行数を、FP法では機能の個数とリスク係数で工数を決定しています)
今回は、手戻り作業とかスケジュール調整は置いといて、工数の分解について書きます。

日常生活に当てはめてみると分かりやすいかな?。

■FP法で計測した場合
夕飯をつくる       (素工数) (リスク係数)  (計)
・材料を買いに行く      0.5     1.1     0.55
・溜まってた洗物を済ませる  0.2     1.0     0.2
・材料を切る         0.1     1.0     0.1
・調理            0.4     1.0     0.40
・片付け           0.1     1.5     0.15
計              1.3            1.40
FP法では実際に行う作業についてのみの抽出であり、イレギュラーな事象についてはリスク係数で補うことになります。
機能単位での抽出のため、項目が大雑把過ぎて作業の詳細が良く分かりません。

■うちでやってる見積りで計測した場合
夕飯をつくる         (素工数) (リスク係数)  (計)
・材料を買いに行く       0.5             0.55
 →スーパーまでいく      0.1     1.2      0.12
  (渋滞・・・だと?)
 →材料を探す         0.15     1.0     0.15
 →買い忘れを回収      0.05     1.0     0.05
 →会計             0.1     1.1     0.11
 →荷物もって帰る       0.1     1.2     0.12
  (交通整理かかた\(^o^)/ )

・溜まってた洗物を済ませる  0.2            0.2
 →昨日の食器         0.1   1.0       0.1
 →油浮いてる鍋        0.1   1.0       0.1

・材料を切る         0.1            0.1
 →にんじん          0.03   1.0       0.03
 →たまねぎ          0.02   1.0       0.02
 →じゃがいも         0.03   1.0       0.03
 →牛すね           0.02   1.0       0.02

・調理する          0.4            0.4
 →材料を鍋にいれて煮込む   0.2   1.0       0.2
 →テキトーにスパイスぶちこむ 0.1   1.0       0.1
 →ぐつぐつする        0.1   1.0       0.1

・片付け           0.1            0.15
 →鍋洗う           0.1   1.5       0.15
  (なんてこった!焦げついてしまっている!)
計              1.3            1.40

小単位での工数は簡単に予想はできますよね?
大きすぎて見えにくいモノを最小単位まで分割すると、作業の工程が分かりやすくなると思います。


こう長々と書き綴ってはみましたが、自分もあんまり理解しきれてないです(;´Д`)
突込みなどありましたら、お手柔らかにお願いします。