- 更新日 2024.07.30
- カテゴリー システム開発
ソフトウェア開発の見積もりの基礎知識|妥当性を判断するポイント
ソフトウェア開発の委託を考える際、見積もり金額に注目して開発会社を検討する方も多いかもしれません。しかし、「見積もりを見ても内訳がわからない」「各社で見積もり金額が異なる」といった問題にお悩みではないでしょうか。
精度の高い見積もりをしてもらうためには、どのような項目が見積もり内容に反映されているか知ることが重要。この記事では、ソフトウェア開発見積もりの手法や内訳、依頼するときのポイントやチェック項目を解説しています。見積もりの妥当性を判別できるようになるので、ぜひ最後まで読んで参考にしてください。
なお、ソフトウェア開発会社の探し方・選び方がわからない!という方はシステム幹事にお気軽にご相談ください。貴社の目的・予算にあった最適な会社を厳選してご紹介します。相談料・会社紹介料などは無料です。
ソフトウェア開発の見積もりで内容が重要な理由
外部にソフトウェア開発を委託する場合、正確な見積もり作成が成功の鍵です。
コストや工数、スケジュールなどが含まれた見積もりは、立てた計画をコントロールするための基準となります。そのため、見積もりの内容が正しくないと不測の事態に対応できず、、工期の遅れや品質の低下、費用の増加など悪影響が出る可能性があります。
どのようなソフトウェアを開発するのか、開発手法をどれにするかによって発注金額は変わりますが、見積もりの内容も大切です。安い開発会社を選びたくなるかもしれませんが、額面だけでなく内容も精査することがソフトウェア開発の外注で失敗しないためのポイントです。
ソフトウェア開発の見積もり手法7選
ソフトウェア開発では、プロジェクトごとに異なる特性にもとづき、適切な見積もり手法がとられます。ここでは、主要な7つの見積もり手法の特徴を解説します。
|
メリット |
デメリット |
トップダウン見積 |
スピーディーかつ 精度の高い見積もりが可能 |
類似案件に対応した実績がないと 使えない |
パラメトリック見積 |
担当者による差異が発生しにくい |
過去の情報が不十分だと 見積もりの精度が下がる |
ボトムアップ見積 |
作業工程の抜け漏れが発生しにくい |
要件や納期が変更しやすい 大規模案件に向いていない |
プライス・ツー・ウィン法 |
予算オーバーを防げる |
希望する機能を搭載できない 可能性がある |
ファンクションポイント法 |
誰が見積もっても 同じ計算結果になりやすい |
過去に事例がない機能は計算しづらい |
プログラムステップ法 |
計算の基準がわかりやすい |
ソースコードがない新規開発では 利用しにくい |
標準タスク法 |
見積もりの精度が高くなりやすい |
見積もりの計算に手間がかかる |
トップダウン見積
トップダウン見積(類推見積)は、過去に対応した類似案件をもとに費用を見積もる方法です。過去の事例を参照するため、すばやい見積もりが可能。また、工数や費用感のイメージもつきやすく、精度の高い見積もりを算出しやすいのも特徴です。
ただし、類似案件に対応したことがなければトップダウン見積では算出できません。はじめてのシステム開発には使えない手法です。
パラメトリック見積
パラメトリック見積(係数モデル)とは、過去のデータをもとに、プロジェクトのコストや作業時間を数値化して見積もる手法です。例えば、あるソフトウェアを開発するのに4ヶ月かかったとします。今回は人員が2倍になったので、半分の2ヶ月で開発できると推測できます。
数値化するため、担当者の感覚による差異が発生しにくいのがメリットです。しかし、過去のデータを参考にするため、情報が十分でないと見積もりの精度が下がる欠点があります。
ボトムアップ見積
ボトムアップ見積(工数積上げ)は、ソフトウェアの構成内容・要素を推定し、各工数を積み上げて費用を見積もる手法です。
各タスクまで分解して見積もるを取るため工程の抜け漏れが発生しにくく、精度の高い見積もりを出しやすいのが特徴。ただし、要件や納期が変更しやすい大規模案件では使いにくい手法です。
プライス・ツー・ウィン法
プライス・ツー・ウィン法は、クライアントの予算にあわせて費用を見積もる手法です。
相手の予算にあわせるため、予算オーバーを防ぎやすい特徴があります。ただし、論理的な根拠なく費用を見積もるため、搭載したい機能を実装できない可能性があることがデメリット。追加の開発により、当初の予算を結果的にオーバーする可能性もあります。
ファンクションポイント法
ファンクションポイント法は、ソフトウェアの機能数や複雑さにあわせてポイントを割り当て、合計ポイント数から開発工数を見積もる手法です。
計上するポイントの付け方が決まっているため、誰が見積もりをしても同じような結果になることが特徴です。ただし過去に事例がない機能を含む場合は、機能数や複雑さが正確に読めないことからポイントを付けることが難しいため、あまり向いていません。
プログラムステップ法
プログラムステップ法は、ソフトウェア開発で記述するソースコードの行数(ステップ数)をもとに開発にかかるコストを見積もる手法です。
基準がわかりやすく計算もしやすいというメリットがある一方で、開発するエンジニアによって同じ機能でも大きく行数が変わってしまうデメリットがあります。また、ソースコードがないと計算できないので、これまでにないようなソフトウェアの開発をする際には使えません。
標準タスク法
標準タスク法は、ソフトウェアの開発工程を細かい作業単位に分け、作業ごとの工数やコストを集計することで開発コストを見積もる手法です。
開発工程を細かく分けるため、必要な作業の見落としに気付けるというメリットもあります。一方で、作業ごとに工数を計算することから見積もりの精度を上げられる反面、計算の手間が増えてしまうことがデメリットです。
ソフトウェア開発費用の見積もり内訳
ここでは、ソフトウェア開発の見積もりに含まれる主要な項目を説明します。
見積もりの精度を確認するには、必要な項目が明記されているかチェックすることが重要。「ソフトウェア開発一式」といった不明瞭な見積もりをする会社は工数や費用が変わる可能性があるため、避けるのがおすすめです。
主な見積もり内訳は以下の10項目です。
- 要件定義費
- システム設計費
- UIデザイン費
- ソフトウェア開発費
- テスト費用
- 導入費
- 付帯作業費
- 購入費
- 進行管理費
- 保守・運用費
要件定義費
要件定義とは、課題を解決するためにシステム全体をどのようにするか仕様として落とし込む作業です。ソフトウェア開発の詳細を決めるために必要で、クライアントと時間をかけてすりあわせるため、費用が発生します。
システム設計費
システム設計費は、ソフトウェア開発に必要なサーバーをはじめとしたインフラ構築やプログラミング言語の選定、設計図の作成などにかかる費用です。下流工程に関わる部分のため、詳細に設計することで確実なソフトウェア開発につながります。
UIデザイン費
UI(ユーザーインターフェース)デザイン費は、操作のしやすさに直結するUI制作をデザイナーに依頼する費用。多くのユーザーがスムーズに使えるソフトウェアを開発するには、デザイン費を多めにとる必要があります。(※UIとは、ソフトウェアとユーザーをつなぐ接点のこと。ソフトウェアの場合は主にユーザーが直接目で見て操作する画面のこと)
ソフトウェア開発費
ソフトウェア開発費には、エンジニアの人件費や技術費が含まれます。エンジニアの人日単価に作業日数をかけて計算します。
テスト費用
テスト費用は、開発中のソフトウェアが想定通りに動作するかチェックするのにかかる人件費です。パーツごとのテストや複数のパーツを結合させるテストなど、さまざまなテストが必要。高品質なソフトウェア開発に、テスト環境構築は必須である点を押さえておきましょう。
導入費
導入費は、完成したソフトウェアを公開するために準備が必要な費用です。担当者やユーザー向けの操作マニュアルを準備したり、クライアント向けに講習会を開催したりして、スムーズな公開をめざします。導入支援は、開発会社がサポートしてくれるのが一般的です。
付帯作業費
付帯作業費には、インフラや開発環境の構築、テスト環境の整備、セキュリティ管理などが含まれます。間接的に発生する費用のため見落としがちですが、ソフトウェア開発に必須の項目です。初期コストとして発生するほか、保守や運用でも発生する可能性があります。
購入費
購入費は、ソフトウェア開発に必要なハードウェアやミドルウェア、パッケージなどを導入するための費用。既存パッケージを流用するのであればソフトウェアだけで済みますが、別途ハードウェアの購入が必要となる場合もあります。また、Webサーバーやデータベース管理システムなどのミドルウェアを購入しなければならない可能性もあります。
進行管理費
進行管理費は、ソフトウェア開発の各作業のスケジュールを管理したり調整したりするための費用です。ディレクション費やプロジェクト進行費と呼ばれることもあります。
大規模な開発プロジェクトになると多くのチームが開発に参加するため、進行管理が適切に行われないとトラブルが発生してしまいがちです。開発をスムーズに進めるために必要な費用と考えると良いでしょう。開発の規模が大きくなるほど進行管理費も高くなる傾向があります。
保守・運用費
保守・運用費は、開発したソフトウェアのメンテナンスや改修にかかる費用です。長期的に安定してソフトウェアを利用してもらうには、保守や運用が重要。開発会社のなかには、オプションとして保守プランを複数用意するところもあります。
ソフトウェア開発費用の見積もりに差が出る要因
同じ要望を伝えても、開発会社によって出される見積もり額は変わります。ここでは、見積もりの差異が生じる理由を解説します。
人件費
ソフトウェア開発会社によって、人件費は変わります。立地や会社規模など固定費の違いが反映されている場合があり、費用とクオリティが必ずしも一致しない可能性がある点を押さえておきましょう。
また、開発担当者のスキルやレベルによっても人件費は変動します。PL(プロジェクトリーダー)やPM(プロジェクトマネージャー)などマネジメントもできる担当者は、費用が高額になります。
そのほか、開発会社が開発の一部を人件費の安い地方や海外の拠点で行っていたり、協力会社に外注していたりする場合は人件費が安くなることがあります。
工数
工数の違いも、見積もりに影響を与える要因です。開発費は人件費×工数で算出されるため、工数がかかるほど見積もりが高くなります。そのため、開発スピードや業務理解にかかる時間が短いほど費用が低くなる可能性があります。
依頼したい業務内容に近い開発経験のある会社はノウハウを持っているため、工数を削減して費用を抑えられるケースがあります。開発会社を探すときは、実績に注目して探すようにしましょう。
ソフトウェア開発費用の見積もりチェック項目
ソフトウェア開発の見積もりの正確性を向上させるためにチェックすべき項目は主に以下の9つです。
- 見積もり要件が反映されているか
- リスクへの対処が含まれているか
- 管理工数が含まれているか
- 調査・分析の工数が考慮されているか
- 責任の所在が明確か
- 記載されている数字に妥当性はあるか
- 別途請求になっているものがないか
- 検収方法・条件はどうなっているか
- 作業範囲が明確化されているか
以下で詳細を解説します。
見積もり要件が反映されているか
まず、見積もり要件が具体的に反映されているか確認するために、次の5つの項目をチェックしましょう。
- 依頼の範囲・範囲外
- 使用技術
- 機能要件(ソフトウェアに必須の機能)
- 検収条件
- 開発期間・納期
ソフトウェア開発は、複数のタスクからなっています。タスクが1つずつ明確になっているかチェックしましょう。また、仕様通りに完成したかを判断するためには、検収が必須。見積もりの中に、ソフトウェアの検収方法や検収条件が入っているか確認します。
提案要望書を提出済みであれば、内容が反映されているか確認するのがおすすめです。
リスクへの対処が含まれているか
ソフトウェア開発中に想定されるリスクへの対処が含まれているかも、チェックが必要です。ソフトウェア開発では、修正やトラブル対応などが必要となります。リスクへの対処が重なると工数が増え、費用も発生します。あらかじめ修正費やトラブル対応費などが十分に含まれているか、確認しておきましょう。
管理工数が含まれているか
ソフトウェア開発をするエンジニアを取りまとめる管理工数が見積もりに含まれているかも確認しましょう。高品質なソフトウェアの開発には、エンジニアの進捗管理や品質管理が必要。工数管理ができていると精度の高いスケジューリングが期待できるので、ぜひともチェックしたい項目です。
調査・分析の工数が考慮されているか
ソフトウェア設計や開発だけでなく、調査や分析の工数も考慮されているか確認してください。要件定義を作成するには、事前調査や分析が重要。自社の課題解決につながるソフトウェア開発ができるかどうかにも関わるため、工数として計上されているかチェックが必要です。
責任の所在が明確か
見積もりの段階で責任の所在を明らかにしておくことも重要です。ソフトウェア開発では、何かしらのトラブルが発生する可能性があります。ソフトウェア開発では、何かしらのトラブルが発生します。トラブルが起きる前に、どこまでが開発会社の責任になるか明確にしておくと、トラブルが発生した際に事態の悪化を抑えられるでしょう。スムーズな開発のためにも、責任の所在は明確にしておくことが大切です。
記載されている数字に妥当性はあるか
見積書に数字が記載されていても、その数字が適切かどうかを確認しなければなりません。各項目が細かく分けられていて数字が記載されていると信用してしまいがちですが、数字に根拠がなければ意味がありません。
「その数字を記載している根拠は何か」を意識してチェックすると良いでしょう。
別途請求になっているものがないか
ソフトウェア開発の見積もりでは、開発や導入に必要なソフトウェアやハードウェア(機材)が別途見積もりになっていることがあります。そのため、見積書の中に別途見積もりになっている項目がないかを確認することが大切です。
検収方法・条件はどうなっているか
開発してもらったソフトウェアが要求通りに完成しているかを判断するために、検収条件を確認しましょう。
検収条件が曖昧なまま開発を発注してしまうと、必要な機能が足りないソフトウェアになっていなくても完成したことにされてしまい、修正してもらえない恐れがあります。
作業範囲が明確化されているか
ソフトウェア開発にはさまざまな工程があります。そのため、どの工程からどの工程までを請け負ってもらうのかを明確にしておくことが大切です。開発が終了してからもサポートを受けたい方は、忘れずに確認しましょう。
ソフトウェアの開発が開始されてから作業範囲を変更すると追加料金が発生したり、トラブルになったりするおそれがあるので注意が必要です。
ソフトウェア開発費用の見積もりを依頼するときのポイント
前提条件のすりあわせをする
ソフトウェア開発会社がどのような前提条件をもとに見積もりしているか、しっかりと確認しておきましょう。
エンジニアの頭の中にある、明文化されていない前提条件をもとに見積もりが提出される場合があります。前提条件の確認が不十分だと、開発会社との認識がズレてしまい、後々トラブルの原因になるかもしれません。前提条件を可視化してもらい、しっかりと把握することが重要です。
詳細な仕様について事前に話しあう
ソフトウェア開発を始める前に、使用するハードウェアやソフトウェアなど詳細な仕様について話しあう必要があります。開発会社との思い違いがあると、大きな問題になる可能性も。細かい部分かもしれませんが、できるだけトラブルのリスクを抑えるために確認しておきたい項目です。
複数の開発会社から相見積もりをとる
ソフトウェア開発会社に見積もりを依頼する場合、2社~3社程度のソフトウェア開発会社に見積もりを依頼しましょう。
複数の見積もりを依頼すると、費用相場や見積もりの妥当性を自社で判断できるようになります。ただし、見積もりを依頼した会社が多すぎると、選ぶ際の手間が増えてしまいます。
相見積もりをとると、安い見積書を見た際に追加で工数や費用が発生するかどうかもわかるようになるので、低品質なソフトウェア開発を避けられるメリットもあります。
見積もり依頼をするソフトウェア開発会社を2~3社まで絞ることが大変な場合は、システム幹事へお気軽にご相談ください。貴社の目的・予算にあった最適な会社を厳選してご紹介します。相談料・会社紹介料などは無料です。
不明点があれば質問する
見積書の中にわからない箇所があれば、担当者に質問することも大切なポイントです。
ソフトウェア開発の見積書には、業界特有の専門用語が多く使われていることがあります。そのため、相手はプロだからと全面的に信用して不明な箇所をそのまましてしまうと、実際は不要な機能も実装されて費用が余計にかかってしまうケースもありえます。
また、質問をしたことでお互いの認識のズレに気付き、後のトラブルを未然に防げることもあるでしょう。
不明な点があれば積極的に質問をして、見積書の内容に納得をした上で発注しましょう。
見積もり金額の安さだけで判断しない
一般的に、開発するエンジニアのスキルが高かったり経験が豊富だったりすると人件費は高くなります。そのため、見積もりが安すぎる会社は開発スキルが高くないこともありえます。
金額が安いからといって安易にその会社を選ばず、他社の見積もりと照らしあわせて「なぜ安くできるのか」を確認しましょう。安くできる理由に納得できるものがなければ、注意をした方が良いかもしれません。
ソフトウェア開発の見積もり金額がわかるシミュレーター
ソフトウェア開発やシステム開発費用の相場を知りたい方のために、開発料金のシミュレーターを用意しました。 システム・ソフトウェアの種類や運用保守の有無などを選択するだけで国内約6,000社のデータをもとに費用のシミュレーションができますので、ぜひご利用ください。
【まとめ】ソフトウェア開発費用の見積もり基礎知識を紹介しました
ソフトウェア開発見積もりの手法や内訳、見積もりの精度を高めるポイントを解説しました。高品質なソフトウェアを開発してもらうには、どのような作業工程が発生するか知っておくことが重要です。
見積もりの妥当性を判断するには、複数の開発会社に見積もりをするのがおすすめ。しかし、さまざまなソフトウェア開発会社の中から、自社にあった開発会社を探して見積もりを依頼するのは大変かもしれません。
システム幹事では、貴社の目的・予算にあった最適な会社を厳選してご紹介します。相談料・会社紹介料などは無料です。
この記事を書いた人