ソフトウェア開発の見積りにおいては、多数の工程が必要なソフトウェア開発ならではの注意点があります。見積りの段階であいまいな契約をしてしまうと、あとでトラブルの原因となる可能性もあるでしょう。
本記事では、ソフトウェア開発の見積りで重要なポイントや、見積り検討の際に注意すべき点について詳細に解説します。
ソフトウェア開発「見積り」の重要性
システム開発にはさまざまな開発方法や作業工程があります。
よって、できるだけ作業に見合った金額を算出するためには、見積りの内容が重要になってくるのです。
システム開発では、同じシステム開発について見積りをしても、開発会社によって算出額が異なる場合もあります。金額の幅が大きくひらくことも珍しくありません。
これは、開発会社によって業務にかかわるエンジニアの人数やスキルレベルなどが異なることが理由です。
よって、見積りのやり方一つで請求額が大きく変わってしまうことが十分あり得ます。
システム開発においては、それだけ見積りの重要性が高いのです。
以下の項目で、「プロジェクト」と「経営」の両面から見積りの重要性についてみていきましょう。
ソフトウェア開発の内容や流れに関しては以下のページで詳しく解説しています。
プロジェクトにおける見積りの重要性
ソフトウェア開発のプロジェクトにおいては、コスト・工数・スケジュールの見積りが必須要素となります。なぜなら、これら3つの見積りの正確さがプロジェクトの結果を大きく左右するからです。
プロジェクトにおいて見積りは、単なる金額ではなく、最終目標を定め、それを達成するための戦略を立案し、必要に応じてコントロールするための土台となるものです。
ソフトウェア開発の数々の工程において、最初に見積りで具体的な金額を示すことで各工程の業務内容が見えてくる部分があります。
したがって、プロジェクト全体から見ても、見積りは最初の段階で重要な意味を持ちます。
経営における見積りの重要性の拡大
経営面においては、「ソフトウェアなくしてビジネスは成り立たない」との考えから、ソフトウェア開発の見積りが重要な意味を持ちます。なぜなら、IT技術が進んだ現代においては、ビジネスのあらゆる業務がコンピューター上で行われるようになっているからです。
また、ソフトウェア開発では、製品を予算内で開発し、期限内にリリースすることが市場の信頼性獲得にもつながります。
もし、見積りが不正確で予算内での開発が実現できない場合、市場や顧客の信頼を失い、大きな損失につながるでしょう。
また、昨今はコスト削減を歓迎する風潮もあるため、妥当なコストで開発することが求められます。
したがって、経営面では見積りの重要性がより拡大していると言えます。
ソフトウェア開発における見積り手法
ソフトウェア開発における見積りにはいくつかの手法があります。主な手法は以下の表のとおりです。
名称
|
メリット
|
デメリット
|
類推見積り(トップダウン)
|
正確性の高い見積りを素早く算出できる
|
類似事例がないと算出が困難
|
係数モデル(パラメトリック見積り)
|
知識や経験に左右されない算出が可能
|
データとサンプルが少ないと精度が落ちる
|
ボトムアップ(工数積上げ)
|
開発工程や工数ごとの見積りを出しやすい
|
大規模な開発案件には向かない
|
プライスツーウィン法
|
設定予算の過不足を防ぎやすい
|
予算額によっては品質に影響が出る
|
以下の項目では、上記4つの手法について概要や特徴を説明します。
類推見積り(トップダウン)
類推見積りは、過去の類似プロジェクトを参考にしながら現在の開発について見積りを出す方法です。
類似事例をもとにするため、他の手法よりも早く見積り額を算出しやすいメリットがあります。
また、類似事例で算出された数字をもとに計算することから、予想と結果の額にズレが生じにくいため、正確性が高い方法であるとも言えます。
一方で、初めて見積りを出す事例には利用できません。類推見積りは、あくまで類似事例がある場合にのみ使える手法です。
係数モデル(パラメトリック見積り)
係数モデルは、特定の数式モデルを使い、各工程を数値化して見積りを算出する方法です。
たとえば、「部品Aを1000個作る」工程の見積りを算出する場合、係数モデルでは過去のデータをもとに「部品Aを1個作るためにかかったコスト」を割り出し、そのコストに1000をかけて見積り額を計算します。
係数モデルは、数式を使う手法のため、担当者の知見や感情、経験に左右されない正確さがメリットです。
一方で、過去蓄積データが少ないと精度が低くなるという難点があります。
したがって、係数モデルは蓄積データやサンプル数が多い場合に用いるようにしましょう。
ボトムアップ(工数積上げ)
ボトムアップは、プロジェクトの完成物と構成要素を想定し、最終的にかかる金額を算出する方法です。
工数を明確にした上で見積りを出すため、金額の抜け漏れが発生しにくいメリットがあります。また、工数を細かく分けて算出するため、見積りと実際にかかった額とに差が出づらい点もメリットです。
一方、完成までの工数を洗い出すのが難しい大規模プロジェクトには使えない手法と言えます。
また、最初に大まかな見積りを出したい場合なども向いていない手法です。
プライスツーウィン法
プライスツーウィン法は、依頼者の予算に合わせて見積りを算出する手法です。
相手の予算がベースとなるため、予算内で収めたいケースなどで便利な方法です。
また、あらかじめ予算の枠を決めた上で開発を依頼するケースなどでプライスツーウィン法を用いれば、スムーズに互いが合意しやすい方法で見積りを出すことができます。
一方で、予算の枠内に収めなければならないため、希望する内容をすべて盛り込んだ開発が行えない場合があることがデメリットです。
希望する内容をすべて実現する形で開発を依頼した場合、予算の枠では収まらず、追加料金が発生する可能性もあります。
ソフトウェア開発の見積りに必要なデータ(入力情報)
ソフトウェア開発には多くの工程・工数があるため、見積りにおいてはどのようなデータが必要かを知っておく必要があります。
ソフトウェア開発の見積りに必要なデータは、以下のとおりです。
規模
|
・ファンクションポイント
・コード行数
・機能数、画面数、テーブル数
|
工数の変動要因
|
・プラットフォーム/環境
・ハードウェア、オペレーティングシステム
・言語、ツール、ユーティリティ
・開発環境
|
プロダクト
|
・アプリケーション種別
・複雑度、要求される信頼性
・ライフサイクル
|
人材
|
・能力と経験
・総労働時間
|
以上のように、ソフトウェア開発では工程ごとに具体的な作業を洗い出し、それぞれをベースに見積りを出す必要があります。
ソフトウェア開発の見積りの対象となる項目や内容

ソフトウェア開発に必要なデータの他に、見積りの対象となる項目や内容について押さえておく必要があります。
対象となる項目とその内容は以下のとおりです。
要件定義費用
|
「どのようなシステムがほしいのか」「システム導入によってどのような課題を解決したいのか」などの要望をまとめる作業で発生する費用
|
設計費用
|
インフラ整備や専門言語の検討など、設計環境を整えるために必要な費用
|
UIデザイン費用
|
ユーザーから見て見やすく使いやすいデザインにするために必要な費用
|
進行管理費用
|
作業スケジュールの管理や調整に必要な費用
|
開発費用
|
開発に携わるエンジニアの技術費や人件費
|
導入費用
|
初期設定をするのに必要な費用
|
導入支援費用
|
操作マニュアルの作成や操作方法の説明会を開催するための費用
|
購入費用
|
ソフトウェア購入やサーバー導入のための費用
|
旅費・交通費用
|
開発会社との打ち合わせにかかる費用
|
保守費用
|
完成したシステムのメンテナンスやバグの修正、機能の改修などに必要な費用
|
以上の項目について把握しておくと、「どの工程でどれだけのコストが発生するのか」がイメージしやすくなります。
ソフトウェア開発の見積りの相場
ソフトウェア開発の費用はプロジェクトによって変動するため、一概の相場を提示できるものではありません。当該プロジェクトの難易度や技術者の数によっても大きく変わります。
もっとも、ソフトウェア開発にかかる費用の約8割を人件費が占めると言われています。よって、技術者のレベル別単価の相場を押さえておくとよいでしょう。
目安の金額は以下のとおりです。
- 上級システムエンジニア:100〜160万円程度
- 初級システムエンジニア:60〜100万円程度
- 大手企業所属のプログラマー:50〜100万円程度
- 個人事業主プログラマー:40〜60万円程度
人件費の次にかかる費用が設備費です。「システム開発のための設備費用」(開発用のパソコンや作業スペースなど)と「システム運用のための設備費用」(システムを動かすためのサーバーなど)の二つがあることを覚えておきましょう。
ソフトウェア開発を見積り依頼する際の注意点
ソフトウェア開発の見積りの精度を高めるためには、依頼する際に注意すべきポイントがあります。
主な点は以下のとおりです。
- 見積り根拠が明確になっているか
- 作業範囲が明確になっているか
- 作業で発生する修正や再開発が含まれているか
- 管理工数が計上されているか
- 調査・分析に必要な工数が含まれているか
- 前提条件は明確になっているか
- 必要なハードウェア、ソフトウェア購入金額が含まれているか
- 責任範疇は明確になっているか
- 検収方法・検収条件は明確になっているか
以下では、各注意点について、具体的にどのようなことに気をつけるべきか解説します。
見積り根拠が明確になっているか
見積りをする際は「何をもとに見積りを出しているか」という根拠を明確にすることが大切です。
見積りの根拠は大まかに分けると次の5つがあります。
- 自分が過去に経験した同じ事象
- 自分が過去に経験した類似の事象
- 他人が過去に経験した同じ事象
- 他人が過去に経験した類似する事象
- 上記以外の予測
過去に類似の事例がある場合や、自身が類似の事例を経験したことがある場合は、それに基づいて見積りを出すようにすると、精度が高まるでしょう。
過去に類似事例がない時に初めて、完全な予測で見積りを出すことになります。
作業範囲が明確になっているか
ソフトウェア開発で見積りを行う際は、作業それぞれが明確に提示されているか確認するようにしましょう。
ソフトウェア開発は多くの作業によって完成するものなので、それぞれの作業が明確になっていなければ、実際の作業が始まってから予想外の出費や不足が生じる危険性があります。
見積りの精度をできるだけ正確なものにするためにも、「要件定義からリリースまで」「基本設計からリリース後の修正まで」など、どこからどこまでが依頼された作業範囲なのかを具体的に提示し、一つひとつの作業を明確にするよう心がけましょう。
作業で発生する修正や再開発が含まれているか
ソフトウェア開発では、リリース後に修正や再開発が必要になる場合もあります。
そうすると、当初予定していた工数よりも多くの工数が必要となり、その分追加で費用が発生することになります。
一見完璧に思える開発でも、実際に運用してみなければどのような不具合や障害があるかわかりません。
したがって、あとから想定外の追加費用が発生する事態を防ぐためにも、初めにある程度の修正や再開発の費用も込みで見積りを出すようにしましょう。
管理工数が計上されているか
ソフトウェア開発は、さまざまな工数やタスクによって成り立っています。
したがって、それらの作業がバラバラに作用しないよう、進捗管理や品質管理をしっかりと行うことが重要です。
したがって、見積りの段階から進捗管理や品質管理などの管理工数を明確にしておく必要があります。見積りで算出する費用にも、管理工数にかかる費用を計上しておかなければなりません。
見積りの際は必ず管理工数も計上されているかどうかを確認するようにしましょう。
調査・分析に必要な工数が含まれているか
ソフトウェア開発では、開発のための工数とともに、要件定義を作成するために必要な調査・分析に必要な費用も同じくらい重要です。
しっかりした事前調査と分析がなければ、依頼者の理想を実現するソフトウェア開発は難しくなります。
ソフトウェア開発では、開発にかかる工数が多いため、そこに意識が集中しがちですが、調査・分析もおろそかにしてはいけません。
したがって、見積りの段階から調査・分析に必要な費用も組み込まれているかを確認するようにしましょう。
前提条件は明確になっているか
事前調査や分析と同様に、ソフトウェア開発ではシステムの対象範囲や開発言語などの使用技術も重要です。
そのため、これらの前提条件が明確になっていないと、開発自体に支障をきたすおそれがあります。その結果、トラブル解決や修正のための追加費用が発生することになってしまうことになりかねません。
したがって、見積りの際は前提条件についても明確にし、追加費用発生による大幅な額の変更を防ぐためにも、しっかりと確認する必要があります。
必要なハードウェア、ソフトウェア購入金額が含まれているか
ソフトウェア開発では、開発のために必要なハードウェア、ソフトウェアを購入しなければならないケースもあります。
そのため、依頼するソフトウェア開発においてはどのような作業が必要で、それを行うにはどのようなソフトが必要なのかについて事前に決定する必要があります。
検討の結果、新たにハードウェアやソフトウェアの導入が必要なことがわかったら、それらの購入費やリース費を見積り金額に組み込むことを忘れないようにしましょう。
責任範疇は明確になっているか
ソフトウェア開発に限ったことではありませんが、いかなる契約においても責任の所在と範囲は明確にする必要があります。
責任の所在や範囲が不明確のまま契約を締結してしまうと、いざトラブルが起きた際に自社が不利益を被る危険性があります。また、追加費用が発生した場合などにトラブルに発展する可能性もあるでしょう。
したがって、見積りの段階で責任者は誰か、どの範囲まで責任があるのかについて明確にしておくことが重要です。
検収方法・検収条件は明確になっているか
開発したソフトウェアが仕様どおりに作動するかや、要件を満たしているかを判断するために、完成後の検収が必要です。
検収方法や条件が明確でないと、完成したか否かでトラブルになる危険性があります。
そのため、事前に検収方法や検収条件を決めておき、仮に条件を満たしていなかった場合の対応方法についても明確にしておく必要があります。
したがって、見積りの段階でソフトウェア開発が完了した際の検収方法や検収条件が含まれているかを確認しておきましょう。
ソフトウェア開発ならICへお任せください

ソフトウェア開発の見積りでお困りの際は、ぜひICへサポートをご依頼ください。
ICでは、さまざまな業界の企業に対し、ITソリューションやITサポートサービスを提供しています。
サポートには、当然見積りのサポートも含まれます。
ソフトウェア開発ならではの見積りの特徴や重要性をふまえながら、限りなく精度の高い見積りとなるようサポートすることが可能です。
また、ICはITソリューション事業で40年以上の実績があります。製造業から小売業まで、さまざまな業界・業種のサポート経験が豊富なため、ソフトウェア開発の見積りで陥りやすいポイントを熟知し、依頼主が誤った見積りで契約しないようサポートしていきます。
株式会社ICのソフトウェア開発の見積り方法
ここで、ICのソフトウェア開発の見積り方法の流れを紹介します。
大まかな流れは以下のとおりです。
- 開発要望のヒアリングを実施
- 要件の擦り合わせを実施し、作業内容を明確化
- 開発手法(ソフトウェア、ミドルウェア)の検討
- スケジュールや開発体制の検討
- 工数や品質維に問題ないか、有識者を交えて検討会を実施
ソフトウェア開発の見積りでは、上記のように多角的な面から見積りを検討することにより、できる限り精度の高い見積りとなるよう努力することが不可欠です。
また、見積り方法に関しては、依頼内容や依頼範囲によっても変わってくるため、実際の見積りに関してはご相談ください。
まとめ
ソフトウェア開発の見積りでは、ソフトウェア開発が多数の作業の集合体で完成されることを理解し、見積り額を算出することが重要です。
また、過去に類似の事例があったか、あるいは初めての事例なのかを基準に、当該開発に適した見積り額算出法を適用する必要があります。
さらに、見積りの段階では作業工程・工数や人件費のみならず、事前調査・分析、前提条件、責任の範囲など、検討しなければならない項目が数多くあります。
もし、「ソフトウェア開発の見積りが上手く行くかどうか不安」「できるだけ精度の高い見積り金額を算出したい」とお考えの担当者がいましたら、ICのサポートをご利用ください。
ICでは、クライアントが求める開発の目的や条件などを丁寧にヒアリングし、過去に蓄積した知見と照らし合わせながら、精度の高い見積りをサポートします。
また、見積りが問題なく行えれば、全体の業務の効率化にもつながります。
ソフトウェア開発の見積りでお困りごとがある場合は、どんな小さなことでもかまいませんので、ぜひICの担当者にお話をお聞かせください。