イチから全部作ってみよう(21)ソフトウェア開発の見積もりは「KKD」がカギに:山浦恒央の“くみこみ”な話(190)(2/3 ページ)
ソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」。第21回は、ソフトウェア開発における見積もり作業の全体像を説明する。カギは「KKD」にあり!
3.見積もりの手順
「見積もり」というと難解な作業のように感じます。実際は、顧客から要求を確認し、KKD(勘と経験と度胸)でおおよその開発期間と必要人員を見積もる作業です。このように、科学的根拠に乏しく、経験則に基づいて見積もるため、人によっては、KKD(根性、根性、ド根性)という人もいるほどです。
世の中で行われている一般的な見積もりの大ざっぱな手順は以下の通りです。
- (1)ヒアリングをする
- (2)作業量を見積もる
- (3)エンジニアの単価を設定する
- (4)見積もり金額を作成する
ここからは各手順を紹介します。
3.1(1)ヒアリングをする
まず、発注側から要望をヒアリングし、内容を把握します。
- (1)ECサイトを作りたい
- (ア)商品を登録したい
- (イ)商品を表示したい
- (ウ)商品を購入したい
3.2 (2)作業量を見積もる
各項目に対する作業量を見積もります(表1)。
開発項目 | 作業詳細 | 人数 | 期間 | 人月(人数 * 期間) |
---|---|---|---|---|
商品登録 | 商品データの作成/登録 | 2 | 2カ月 | 4人月 |
商品表示 | 商品の表示画面の作成 | 1 | 2カ月 | 2人月 |
商品購入 | 購入処理の作成 | 2 | 2カ月 | 4人月 |
表1 開発作業の見積例 |
表1は、大まかな作業量を見積もった例です。例えば、「商品登録」に関しては、商品データの作成とデータベースへの登録作業を考慮し、ソースコードの行数を大ざっぱに計算し、「1人1カ月で1000行」を基本に、少し余裕を持たせて20%程度水増しし、例えば、「2人で2カ月必要だよね」などと見積もります。このとき、作業量は「人月」という単位で表現します。
1人月とは、1人のエンジニアが1カ月でこなせる作業量と考えればOKです。作業量に換算すると、「ソースコードを1000行コーディングする作業」とお考えください。例えば、2人で1カ月働くと2人月、1人で2カ月働いても2人月となります。この例では、全体の作業量が合計で10人月かかることが分かりますね。※1)
※1)人と月は交換できるように見えますが、実際はできない場合がほとんどです。特に、開発期間を短縮するため、人員を増員しても「1人×10カ月」は「10人×1カ月」にはなりません。詳しくは、連載第4回「30年前の本がいまでも売れている理由」をご覧ください。
3.3 (3)エンジニアの単価を設定する
エンジニアの単価を決定します。1人当たりのソフトウェア開発エンジニアの単価はおよそ100万円です。読者の中には「100万円って高給では?」と思う方もいらっしゃるかもしれませんが、これは、本人の人件費に加えて、間接費(社会保険料、事務部門、管理部門)を含んだ金額です。※2)実際にソフトウェアを作らない社長や取締役、営業チーム、人事や総務部門のコストを支払い、オフィスの賃料、ネットワーク代、PCの費用もこの100万円から支払うので、自分の給料としてもらえるのはかなりの少額です。人件費は、あらゆるコストの中で、最も高価なのです。
※2)最終的に、この人の手取りは月額で20万〜30万円程度でしょう。決して、100万円まるっともらえるわけではありません。
3.4 (4)見積もり金額を作成する
以上を基にして、見積もり金額を計算し、利益率(30%)を載せると次のようになります。
- 見積もり金額=10人月×単価100万円=1000万円
- 利益を含めた請求金額=1000万円×(100+30%)=1300万円
- 期間=2人で5カ月
さらに、仕様変更などが発生した場合の予備費やツール購入費を含めてもよいでしょう。最終的に、この金額を発注側に提示し、内容が合意できれば見積もり作業は完了です。
Copyright © ITmedia, Inc. All Rights Reserved.