昨日の記事の番外編である。
システム構築予算の見積り方について説明する。
一口に見積もり手法といってもいくつも種類があるし、メリデメも分かれるところではあるが、今回は”ボトムアップ法”と呼ばれる手法をターゲットにする。
この手法だと見積もりに時間は要するが、新規システムを作る場合にも適用できるので見積もり方法の基礎として理解しておくとよい。
大きく7つのステップに分けられる。
- 難易度別工数テーブルの作成
- 機能一覧(難易度付き)の作成
- 機能一覧(難易度付き)に難易度別工数テーブルを掛け、総工数を算出
- 総工数を各フェーズに按分し、要員の山積みを行う
- インフラ・アーキ関連の工数はタスクベースで要員を積む
- 全体の工期に対して管理工数、レビュー工数、会議工数を積む
- バッファを積む
1.難易度別工数テーブルの作成
機能種別(画面、バッチ、インターフェース、etc…)ごとにA,B,Cの3段階くらいの難易度ランクを設定し、各難易度ランクごとの想定機能を仮置きする。たとえば単票参照画面はC.単票更新画面はB、一覧更新画面はA、など。
それらの難易度ランクに対しておおよそ何人月、という値を設定する。要件定義〜総合テスト完了までのトータル工数である。
それらの標準的な枠組みに収まりきらないものはSとして、工数は個別に見積もるものとする、などの工夫もあって良い。
2.機能一覧(難易度付き)の作成
画面やバッチ、インターフェース機能を全て一覧に記載する。各画面ごとの開発難易度は、難易度別工数テーブルのルールにしたがってつける。
3.機能一覧(難易度付き)に難易度別工数テーブルを掛け、総工数を算出
ここは単なる1と2の掛け算である。これで作り物にかかるミニマムの工数が出る。
4.総工数を各フェーズに按分し、要員の山積みを行う
フェーズ別の工数按分比率はググったら目安(要件定義が全体の〜%で、みたいなやつ)が出てくると思うので、その比率を参考に各フェーズの工数を按分する。
その上で、各フェーズにどんな人を何人置くか(PM,チームリーダー、メンバーをそれぞれ何人)を配置してみる。工数的にはx.x人月、のように小数となる場合もあるが、要員を積み上げる段階で切り上げを行ったらするので、3の総工数より多くなるのが普通だ。
5.インフラ・アーキ関連の工数はタスクベースで要員を積む
インフラやアーキテクチャ検討(共通コンポーネント開発などもここに含む)については、アプリを動かすために必要な要素を洗い出して、それを大体いつ作るものとして、何人を数ヶ月貼り付ける、みたいに考える。
6.全体の工期に対して管理工数、レビュー工数、会議工数を積む
全体の工期が出たら、管理工数やレビュー工数、会議工数を積む。管理工数とレビュー工数は、リーダー層の要員を構築期間中にべったり貼り付けるイメージである。
もう少し内容はブラッシュアップしたいが、今日はこれまで。
コメント