クライアントの最大の懸念は、導入費用かもしれません。提示された見積額に納得した上で発注するわけですが、それは「他より安い」とか「予算内に収まる」などを基準に判断を下しただけかもしれません。
情報サービス業とは、ハードウェアにサービス(ソフトウェア)を乗せて、利益を得る産業です。サービスとは「開発スキル」であり、それが実利となります。ハードウェアについては、商品選択から始まり、設置された現物を前に購入した実感も湧きますが、ソフトウェアについては、適正か否かを判断できる知識がなければ、満足感は得られないかもしれません。ソフトウェアの価格算出要領を知っていれば後々、プロジェクトの評価判定に役立つかもしれません。
システムハウスは、見積額をどのように算出するのでしょうか?それは「開発規模の概算」を出すことに尽きます。開発規模が分かれば、見積額は簡単な方程式で求められます。
【 見積額 = ( (開発規模÷開発力) × 人月単価 ) + 固定費 】
- 開発規模(変数)
- プログラムの総ステップ(行)数
- 開発力(定数)
- 1ヶ月に開発(設計&プログラミング)できるステップ数
- 人月単価(定数)
- 1ヶ月あたりの単価
- 固定費(定数)
- ハードウェア代、保守管理費用など
変数は開発規模のみで、開発力や人月単価、固定費は定数です。
開発規模を見積もる
開発規模を見積もるにはまず、全てのUI(ユーザーインターフェース)を、「オンライン処理」か「バッチ処理」に分別します。
オンライン処理とは、画面との対話形式で随時処理をこなす機能で、バッチ処理とは、期間中(日次・週次・月次など)に溜め込んだデータを一気に処理する機能です。
オンライン処理は、画面ごとの表示項目数やデータチェックの有無で、比較的容易に数字が出せますし、設計者が変わっても違いは出にくいと思います。しかし、バッチ処理の見積りは、内部設計の方向性を決めないと求めづらいでしょう。経験に基づく個々人の能力に依存せざるをえません。大きく処理の流れを決定し、プログラムの本数とステップ数を概算していきます。
人月単価と開発力
「開発力」及び「人月単価」は定数である、と説明しました。いずれも、システムハウス個々が自由に決められる言い値です。
「開発力」については、「使用するプログラム言語の違い」「開発環境(設備・ストックされたプログラム資産)の優劣」によって差異は生まれるとは思いますが、大きくかけ離れることも無いでしょう。
しかし「人月単価」は、「高いスキルを持った企業」「ブランド力のある企業」などは強気な設定ができますし、「小規模な企業」「営業力の弱い企業」では低く抑えざるをえません。また、元請か下請か、立場が変わればその都度変わることもあるでしょう。人月単価を公にしているシステムハウスは少ないと思いますが、見積りに納得できなければ、オフレコで詳細を教えてくれるかもしれませんね。
ちなみに、ホストコンピュータを使った開発現場で、個人的に伝え聞いた話では、以下の範囲内に収まっていたと記憶しています。ご参考まで。
- マネージャー :80~150万円/月
- システムエンジニア :60~100万円/月
- プログラマー :40~ 80万円/月
プログラム1行の値段
よくある疑問に「プログラム1行の値段っていくら?」があります。上記計算式を元に表せば【 プログラム1行の値段 = 人月単価 ÷ 開発力 】で導き出されます。人月単価は固定だとは思いますが、開発力は、規模の大小によって設定を変えていると思います。
例えば、ホームページで動かすスクリプト(JavaScriptやPHPなど)やExcelで使うマクロなど。「要件は決まっている!仕様は伝えるので、とにかくプログラムを作って欲しい」なんてことありますよね。設計書やテストケースなどのドキュメントが不要であれば、開発力は確実に上がります。結果として1行当たりの単価はグッと安くなるはずです。
大規模開発では、最低でも「1千円/行」からだと思いますし、プログラム単体の納品であれば、「1百円/行」でも受注するシステムハウスは少なくないと思います。プログラム1行の値段は、求める付加によって大きな違いを生むことになります。