「システム開発の提案における概算見積書の作り方」と題し、弊社で行っている概算見積書の作り方の記事となります。会社によって様々な算出方法があるかと思われますので、当方個人の備忘録として残します。
1.必要機能の洗い出し
お客様からヒアリングした情報を元にシステムに必要な機能一覧を作成します。
今回は、某サイトを参考に見積もりを作成していきます。
手順
- 分類の粒度を設定します
a. 大分類 = 操作する人物(ロール)
b. 中分類 = 画面(今回はこちらを省いています)
c. 小分類 = 機能 - 機能の項目に機能の詳細を記述
2.機能ごとにざっくりとした工数を考える
開発において一番工数が掛かるのは製造・単体になります。
製造・単体の工数を基準に要件定義・設計・結合テスト・総合テストの工数を洗い出します。
前提として、製造・単体の工数(人日)を基準として割合を設定する
- 要件定義では製造・単体の工数×0.2
- 設計では製造・単体の工数×0.5
- 結合テストでは製造・単体の工数×0.5
- 総合テストでは製造・単体の工数×0.1
このようにして、機能ごとに大まかな工数(人日)を算出することができます
概算見積もり時に機能単位の正確な工数を考慮することは難しいため、小(1日)・中(3日)・大(5日)・特大(10日)のようにあらかじめ設定しておく良いでしょう。
3.スケジュール全体に必要な工数(人月)を洗い出す
開発工程ごとの総工数を一ヶ月の稼働日数(20日)で割り、必要な工数(人月)を洗い出す
洗い出した開発工程ごとの工数(人月)
- 要件定義の総工数 = 30.8(人日) = 1.54(人月)
- 設計の総工数 = 77(人日) = 3.85(人月)
- 製造・単体の総工数 = 154(人日) = 7.7(人月)
- 結合テストの総工数 = 77(人日) = 3.85(人月)
- 総合テストの総工数 = 15.4(人日) = 0.77(人月)
- 全工程の総工数 = 354.2(人日) = 17.71(人月)
例えば、製造・単体テストの場合、下記のような計算となる
人日(154)/稼働日数(20日)=人月(7.7)
上記の工数(人月)を参考に山積みを作成する
4.山積みを作成する
(今回はアジャイル開発を想定しています)
お客さんの希望しているスケジュールに寄り添って、いつのタイミングでどのロールの人物が何人月アサインするかを当てはめていく
前提として、役割と工程は下記で設定しています
- PMとPLで要件定義・設計を担う
- PG(FE・BE)は製造・単体を担う
- テスターは結合テスト・総合テストを担う
手順
- 役割に必要なプロジェクトの役職を記載する
- 役割ごとに作業内容を記載する
- 必要な期間を1ヶ月単位で記載する
- 「3.スケジュール全体の必要な工数(人月)を洗い出す」で計算された総工数と山積みの工数合計がなるべく同じになるように工数を記載する
- 役割ごとに単価を記載する
売価の合計が概算見積の価格となります。
5.概算見積の価格
ここまでが「システム開発の提案における概算見積書の作り方」となります。
今回の方法の概算見積書の作成はあくまで一例ですので、他の見積書作成の仕方がありましたら、ご教示いただければと思います。
長文駄文失礼しました。