システム開発の追加費用はなぜ発生する?請求の妥当性と予算超過を防ぐ方法

システム開発を進めるなかで、開発会社から想定外の追加見積もりを提示されることがあります。

「当初の見積金額に含まれていると思っていた」「本当に支払う必要があるのか分からない」と戸惑う発注担当者も少なくありません。

ただし、追加費用が発生したからといって、すべてが不当な請求とは限りません。

当初の契約に含まれていない機能の追加や、合意後の仕様変更によって作業が増えた場合は、追加費用が必要になることがあります。

一方で、当初の仕様どおりに動かない不具合の修正や、開発会社側の設計ミスまで発注者が負担すべきとは限りません。

重要なのは、当初の契約範囲と追加された作業を切り分け、金額の根拠や合意の経緯を確認することです。

そこで今回は、システム開発で追加費用が発生する原因と請求の妥当性を見極める方法を、確認すべき順番で整理しました!

不要な支出を抑えながらプロジェクトを前へ進めるために、追加見積もりを受け取ったときの判断材料として役立ててください。

▼システム開発の流れに関する記事はこちら▼

目次

システム開発で追加費用が発生する仕組みを理解しましょう!

システム開発の追加費用とは、一般的に当初合意した作業範囲を超える対応に必要な費用を指します。

見積金額は、要件、機能、作業工程、開発期間、必要な人員などの前提条件をもとに算出されます。

そのため、開発開始後に前提条件が変われば、必要な工数やスケジュールも変わり、当初の金額では対応できなくなる場合があります。

特に、システム開発では、完成前の製品を見ながら要望を確認することが難しく、開発が進んでから認識の違いや要件の不足が判明しがちです。

追加費用の発生自体を問題視するのではなく、何が変わり、どの作業が増え、なぜその金額になるのかを確認する必要があります。

また、追加開発、仕様変更、不具合修正では、費用負担の考え方が異なります。

まずは、それぞれの違いを整理し、請求内容がどこに該当するのかを明らかにしましょう。

追加開発・仕様変更・不具合修正の違いを整理しましょう!

追加開発とは、当初の要件や仕様に含まれていなかった機能や作業を、新たに加えることです。

たとえば、当初は予定していなかった決済機能や管理画面を追加する場合は、追加開発に該当しやすくなります。

仕様変更は、すでに合意した画面、処理方法、入力項目、業務フローなどを途中で変更することです。

既存の設計やプログラムを作り直す必要があれば、変更箇所が小さく見えても追加工数が発生します。

一方、不具合修正は、合意した仕様どおりに動作しない箇所を直す作業です。

当初の仕様を満たすために必要な修正であれば、原則として追加開発とは分けて考える必要があります。

ただし、仕様書の表現が曖昧な場合は、不具合なのか新たな要望なのかを判断できないことがあります。

作業の名称だけで決めず、要件定義書や仕様書に記載された完成条件と、今回求める動作を比較することが重要です。

仕様変更や機能追加で作業範囲が広がるからです!

開発途中で利用部門や経営層から新しい要望が出ると、当初予定していなかった作業が増えます。

たとえば、入力項目を一つ追加する場合でも、画面だけを直せば終わるとは限りません。

データベースの変更、入力チェックの追加、帳票への反映、既存データとの整合性確認、テストなどが必要になることがあります。

そのため、発注者側には小さな変更に見えても、開発会社側では複数の担当者や工程に影響する場合があります。

また、納期を変えずに追加要望を実現しようとすると、人員の追加や作業時間の延長が必要となり、費用がさらに増える可能性があります。

「少しだけ変更してほしい」と依頼するときも、作業を始める前に追加工数、追加金額、納期、既存機能への影響を確認しましょう。

影響範囲を把握せずに口頭で依頼を重ねると、後から追加費用が積み上がり、予算超過につながります。

要件定義の曖昧さが後から認識のズレを生むからです!

要件定義では、システムで実現する機能や業務上の条件を具体的に決めます。

ところが、「使いやすい画面にする」「作業を自動化する」といった抽象的な要望だけでは、完成形を共通認識にできません。

発注者側が当然含まれていると考えていた処理を、開発会社側が見積もりの対象外と認識していることもあります。

利用者数、データ量、承認手順、例外処理、外部システムとの連携条件などが未確定のまま開発を始めると、後から必要な作業が判明します。

開発の初期段階であれば比較的小さな修正で済む内容でも、設計や実装が進んでから変更すると、作り直す範囲が広がります。

要件定義書では、機能名を並べるだけでなく、誰が、どのような場面で、何を行い、どの状態になれば完成なのかまで明確にすることが大切です。

未決事項を放置せず、決定期限と担当者を定めて管理することも、追加費用の予防につながります。

技術的な問題や外部環境の変化が後から判明するからです!

既存システムの改修や連携を伴う開発では、事前調査だけでは把握できない技術的な問題が見つかることがあります。

古いシステムの設計資料が残っていない場合や、実際のデータ構造が想定と異なる場合は、追加調査や設計の見直しが必要です。

データ移行では、表記の不統一、重複、欠損、文字化けなどが判明し、データを整える作業が増えることもあります。

外部サービスとの連携についても、提供される機能や通信方法、利用料金、セキュリティ条件が途中で変わる可能性があります。

さらに、法令改正や社内のセキュリティ基準の変更により、当初予定していなかった対応が必要になるケースもあります。

こうした問題を完全に予測することは困難ですが、事前調査の範囲や想定条件を見積書に明記しておけば、追加費用の理由を確認しやすくなります。

想定外の事態に備え、開発予算の一部を予備費として確保し、変更時の協議手順を決めておくことも重要です。

見積もり条件や契約形態が実態と合っていないからです!

見積書に作業範囲や前提条件が明記されていないと、追加費用を巡る認識の違いが起こりやすくなります。

「システム開発一式」としか記載されていない場合、どこまでが当初金額に含まれるのかを判断できません。

契約形態も費用の考え方に影響します。

請負契約では、合意した成果物を完成させることが中心となり、仕様が確定した開発に適しています。

準委任契約では、一定期間の作業や専門的な支援に対して費用を支払うため、要件が変わりやすい開発で用いられることがあります。

仕様が固まっていない案件を固定金額の請負契約だけで進めると、変更のたびに追加見積もりが発生しやすくなります。

また、初期見積もりが極端に安い場合は、テスト、管理、データ移行などの必要工程が除外されていないか確認が必要です。

比較するときは金額だけでなく、成果物、対象工程、除外事項、契約形態、仕様変更時の扱いまで確認しましょう。

提示された追加費用が妥当か、順番に確認しましょう!

追加見積もりを受け取ったときは、すぐに承認したり、根拠なく拒否したりすることは避けましょう。

最初に確認するのは、追加対象とされている作業が、当初の契約範囲に含まれていたかどうかです。

次に、変更が必要になった原因、増える作業、金額の内訳、納期への影響、承認の経緯を整理します。

資料を時系列で確認すれば、妥当な費用、説明が不足している費用、条件を交渉できる費用を切り分けやすくなります。

確認内容はメールや議事録に残し、担当者同士の記憶だけに頼らないことが重要です。

なお、契約条項の解釈や支払義務について意見が対立している場合は、社内の法務担当者やシステム開発契約に詳しい専門家への相談も検討しましょう。

契約書・見積書・要件定義書の範囲を照合しましょう!

まず、契約書に記載された業務範囲、成果物、納期、検収条件、仕様変更の手続きを確認します。

次に、見積書の作業項目だけでなく、前提条件、数量、対応回数、対象外事項、備考欄まで読み込みます。

要件定義書や仕様書では、追加対象とされている機能や処理が、当初から記載されていたかを確認しましょう。

たとえば、「データ移行」とだけ記載されていても、移行件数、対象項目、データ整備の有無によって作業範囲は変わります。

契約書、見積書、仕様書で記載内容が異なる場合は、どの資料を正式な合意内容として扱うのかも確認が必要です。

「必要に応じて対応する」といった曖昧な表現だけでは、費用負担を判断しにくくなります。

対象となる画面、機能、データ、作業工程、対応回数を具体化し、当初範囲と追加範囲を対比できる状態にしましょう。

「追加作業」と「本来行うべき修正」を切り分けましょう!

追加費用の妥当性を確認するには、作業が増えた原因を整理する必要があります。

発注後に新しい要望を加えたのであれば、追加開発として費用が必要になる可能性があります。

一方、合意した仕様どおりに動作しない場合は、本来の成果物を完成させるための不具合修正と考えられます。

また、開発会社側の見積もり漏れや設計上の誤りが原因であれば、すべてを発注者負担とすることが妥当とは限りません。

反対に、発注者側から必要な資料が提供されなかった場合や、確認回答が遅れた場合は、自社側の対応が追加工数に影響している可能性もあります。

重要なのは、どちらか一方を責めることではありません。

当初の合意内容、変更の発生時期、変更を求めた側、増えた作業との因果関係を事実に基づいて整理しましょう。

双方の事情を切り分けることで、負担範囲について建設的に協議しやすくなります。

追加金額の内訳と費用への影響を確認しましょう!

追加見積書には、作業項目、担当者、工数、単価、作業期間を可能な範囲で記載してもらいましょう。

設計、プログラム開発、テスト、プロジェクト管理、環境構築など、どの工程に費用が発生するのかを確認します。

金額が「追加対応一式」としか書かれていない場合は、判断できる単位に分けた説明を依頼することが大切です。

ただし、工数だけを減らせばよいとは限りません。

必要な設計確認やテストを削ると、品質低下や稼働後の不具合につながり、結果的に費用が増える可能性があります。

追加費用とあわせて、納期、品質、保守費用、運用負担への影響も確認しましょう。

また、一つの仕様変更が既存機能や外部連携に及ぼす影響についても、説明を求める必要があります。

金額の根拠と変更後に得られる成果を対応させることで、社内でも承認の必要性を説明しやすくなります。

メール・議事録・変更履歴から合意の経緯を確認しましょう!

追加作業の合意状況を確認するため、メール、チャット、議事録、課題管理表などを時系列に並べます。

誰が、いつ、どのような変更を依頼し、開発会社がどのように回答したのかを整理しましょう。

打ち合わせで追加費用や納期変更の説明があった場合は、その内容が議事録に残っているかを確認します。

口頭だけで依頼が進んでいた場合は、現時点で双方の認識を書面にまとめ直す必要があります。

また、変更を了承した担当者に、追加費用を承認する権限があったかどうかも重要です。

現場担当者の返答を正式承認として扱うのか、責任者の決裁が必要なのかを明確にしましょう。

承認前に作業が始まっていた場合は、開始した理由と事前にどのような説明があったのかを確認します。

今後は、変更内容、費用、納期への影響、承認者を一つの記録に残す運用を整えることが再発防止になります。

承認・交渉・保留の3つに分けて判断しましょう!

確認した追加費用は、承認、交渉、保留の三つに分けると判断しやすくなります。

根拠と金額が明確で、事業上必要な追加作業であれば、納期や成果物を確認したうえで承認します。

必要な機能であっても、金額や作業範囲に疑問が残る場合は、そのまま受け入れずに条件を交渉しましょう。

機能を分割する、実装方法を簡素化する、優先度の低い部分を次期開発へ回すといった方法があります。

説明資料や内訳が不足している場合は、回答期限を示したうえで判断を保留します。

ただし、保留によって作業や納期に影響が出る場合もあるため、その影響も確認が必要です。

合意後は口頭で済ませず、変更内容、追加金額、支払条件、納期、成果物を注文書や変更合意書などに残しましょう。

記録を残すことで、後の請求や検収時の認識違いを防ぎやすくなります。

予算超過を防ぐ仕組みを、発注前と開発中に整えましょう!

追加費用を完全になくすことは難しいものの、予算を管理できない状態は防げます。

大切なのは、変更を早期に発見し、費用や納期への影響を把握してから実施を決める仕組みを整えることです。

そのためには、要件定義、見積もり、契約、進捗確認、変更管理を別々に考えず、一つの流れとして設計する必要があります。

開発会社だけに管理を任せるのではなく、発注者側にも意思決定者と管理責任者を置きましょう。

予算だけを優先して必要な設計やテストを削ると、品質低下や再開発につながる可能性があります。

費用、納期、品質、事業効果のバランスを見ながら変更を判断できる体制を作ることが、予算超過を防ぐ基本です。

発注前に目的・必須機能・完成条件を明確にしましょう!

発注前には、どのようなシステムを作るかだけでなく、何のために作るのかを明確にします。

業務時間を短縮する、入力ミスを減らす、顧客対応を迅速化するなど、解決したい課題を具体化しましょう。

機能は、必ず必要なものと、余裕があれば実装したいものに分けます。

すべての要望を同じ優先度で扱うと、予算が不足したときに判断できなくなります。

画面イメージ、利用者、業務フロー、データ量、承認手順、例外処理も事前に整理することが重要です。

さらに、どの状態になれば完成と判断するのか、受け入れテストの条件も決めておきましょう。

社内の複数部門から要望が出る場合は、意見を集約する担当者と最終承認者を定めます。

目的、必須機能、完成条件、承認者を発注前に共有することで、開発途中の大幅な変更を減らせます。

見積もりは金額ではなく範囲と前提条件まで確認しましょう!

見積書を確認するときは、合計金額だけでなく、その金額で何をどこまで行うのかを確認しましょう。

機能別または工程別に作業内容が分かれていれば、金額の根拠を理解しやすくなります。

要件定義、設計、開発、テスト、データ移行、外部連携、操作説明、マニュアル、保守などの扱いを確認します。

あわせて、見積もりに含まれない作業や、発注者側が用意すべき資料・環境も整理しましょう。

概算見積もりなのか、仕様確定後の見積もりなのかも重要な確認事項です。

仕様変更が生じた場合の単価、再見積もりの時期、承認方法についても事前に決めておきます。

複数社の見積書を比較するときは、同じ作業範囲と条件で算出されているかを確認してください。

金額が安いかではなく、必要な作業が過不足なく含まれているかを判断することが、追加費用の予防につながります。

契約書に仕様変更の手順と費用ルールを定めましょう!

契約書には、仕様変更が発生した場合の手続きを具体的に定めておきます。

変更依頼を出せる担当者と、追加費用を承認できる責任者を明確にしましょう。

変更を実施する前に、変更内容、追加費用、納期、品質、既存機能への影響を提示するルールも必要です。

原則として、発注者側が書面で承認するまでは追加作業を始めない運用にします。

ただし、障害対応など緊急性が高い作業では、通常の承認を待てないことがあります。

その場合に備え、仮承認できる担当者、承認可能な金額、事後報告の期限を定めておきましょう。

発注者側が提供する資料や回答の期限、開発会社側が報告すべき事項も明記すると、遅延の責任範囲を整理しやすくなります。

変更時の協議と承認を契約上の手続きとして定めることで、口頭依頼による予算超過を防げます。

開発中は短い間隔で成果物と予算を確認しましょう!

開発中は、週次または隔週など短い間隔で進捗確認の場を設けましょう。

確認するのは、予定に対する進み具合だけではありません。

完成した画面や機能を実際に見ながら、想定した動作や業務の流れと合っているかを確かめます。

早い段階で認識の違いに気づけば、作り直す範囲を小さくできます。

定例会では、課題、未決事項、変更要望、残予算、追加費用の見込みも確認しましょう。

未決事項には担当者と回答期限を設定し、放置しないことが重要です。

予算消化率と完成している機能の割合を照らし合わせれば、資金不足の兆候も把握しやすくなります。

「順調」という報告だけで判断せず、成果物、工数、予算、リスクをセットで確認することが予算管理のポイントです。

機能の優先順位を決め、段階的に開発しましょう!

限られた予算で必要な成果を得るには、機能の優先順位を明確にする必要があります。

事業への効果、利用頻度、緊急度、開発費用などを基準に評価しましょう。

最初からすべての機能を完成させるのではなく、業務を開始するために必要な最小限の機能を先に開発する方法もあります。

低優先度の機能は第二段階以降へ回し、実際の利用状況を確認してから追加投資を判断します。

開発途中で新しい要望が出た場合は、機能を追加するだけでなく、代わりに別の機能を外す選択肢も検討しましょう。

追加する機能の効果が費用に見合うかを確認しなければ、予算だけが膨らむ可能性があります。

今すぐ必要な機能と、将来でも問題ない機能を分けることで、品質を保ちながら初期費用を抑えやすくなります。

変更管理表で「誰が・何を・いくらで」を記録しましょう!

仕様変更や追加要望は、変更管理表で一元管理しましょう。

変更内容、変更理由、依頼者、依頼日、対象機能を記録します。

さらに、追加工数、追加費用、納期への影響、既存機能への影響も記載してください。

承認者、承認日、対応状況を明確にすれば、未承認の変更が作業に入ることを防げます。

関連するメール、議事録、見積書、仕様書の更新箇所もひも付けておくと、後から経緯を確認しやすくなります。

変更一件あたりの金額が小さくても、積み重なると大きな予算超過につながります。

定例会で変更管理表を確認し、追加費用の累計と残予算を共有しましょう。

誰が、何を、なぜ変更し、いくら増え、誰が承認したのかを追跡できる状態が、追加費用を管理する土台になります。

まとめ

システム開発の追加費用は、仕様変更、機能追加、要件定義の曖昧さ、技術的な問題、契約条件の不一致などによって発生します。

追加見積もりを受け取ったときは、金額だけを見て承認や拒否を決めるべきではありません。

契約書、見積書、要件定義書、仕様書を照合し、追加対象の作業が当初範囲に含まれていたかを確認しましょう。

そのうえで、追加開発なのか、不具合修正なのか、作業が増えた原因はどこにあるのかを整理します。

金額の内訳、納期や品質への影響、変更を承認した記録も重要な判断材料です。

追加費用を防ぐには、発注前に目的と完成条件を明確にし、契約書に変更手続きを定める必要があります。

開発中も成果物と予算を短い間隔で確認し、変更管理表で追加要望を一元管理しましょう。

まずは提示された追加見積もりを当初の契約内容と照合し、不明な作業、金額、合意事項を一覧にしたうえで開発会社と話し合うことが大切です。

QA業務効率化ならPractiTest

テスト管理の効率化についてお悩みではありませんか?そんなときはテスト資産の一元管理をすることで工数を20%削減できる総合テスト管理ツール「PractiTest」がおすすめです!

PractiTest(プラクティテスト)に関する
お問い合わせ

トライアルアカウントお申し込みや、製品デモの依頼、
機能についての問い合わせなどお気軽にお問い合わせください。

この記事の監修

Dr.T。テストエンジニア。
PractiTestエバンジェリスト。
大学卒業後、外車純正Navi開発のテストエンジニアとしてキャリアをスタート。DTVチューナ開発会社、第三者検証会社等、数々のプロダクトの検証業務に従事。
2017年株式会社モンテカンポへ入社し、マネージメント業務の傍ら、自らもテストエンジニアとしテストコンサルやPractiTestの導入サポートなどを担当している。

記事制作:川上サトシ(マーケター、合同会社ぎあはーと代表)