システム開発の見積もりは、プロジェクトを成功させるための最初の重要なステップです。
複雑なシステム開発において、事前に見積もりをしっかりと行うことは、予算管理やスケジュール管理、そして開発チームとのスムーズな連携に欠かせません。
本記事ではシステム開発の見積もりについて、事前に知っておくべき基本的な知識や、見積もり時に注意すべきポイントを詳しく解説します。
システム開発の見積もりで事前に知っておきたいこと
システム開発の見積もりは、プロジェクト全体の予算やスケジュールを決定する上で非常に重要な要素です。正確な見積もりを行うためには、システム開発の工程や見積もりの方法、そして見積もり対象となる項目について理解しておく必要があります。
システム開発の見積もりの方法
システム開発の見積もりには、さまざまな方法があります。それぞれの方法には特徴があり、プロジェクトの規模や内容によって適切な方法が異なります。
システム開発の見積もりには、以下の方法があります。
【例】
ボトムアップ法 | システムの機能を作成するための工数を積み上げて算出する方法。 工数ごとで費用を算出するため精度が高い |
プログラムステップ法 | コーディングのボリュームをステップの単位で換算し、所要時間を乗算する方法。 コーディングの単位まで遡って見積もりをだすため精度が高い |
標準タスク法 | 各工程をタスクごとに細分化したWBSのけいかく表に基づき、工数を積み上げる方法。 工数単位とWBSの作成びより精度の高い算出が可能 |
パラメトリック法 | システムの要件と設計書を点数化し、見積もりを算出する方法。 計算式を用いるため属人化されず誰でも算出できる |
プライスツーウィン法 | クライアント側で先に予算を決めてもらい、収まる範囲の見積を作成する方法。 予算の超過でクライアントと揉めるリスが少ない |
ファンクションポイント法 | 「システムの外部入力・外部出力・外部参照・外部インターフェイス・内部論理ファイル」の 5つの参考にシステムの工数を算出して見積をだす方法。 IT知識に強くないクライアントでも見積の全容がわかりやすい |
類推法 | 過去の類似事例を基に算出する方法・短時間かつ正確な見積もりをだせる |
見積もりの提示においては、費用が妥当だと思ってもらうことが大切です。
システム開発の見積もりの工程
システム開発の見積もりは、「見積もり前提」と「見積もり活動」の2つの工程に分かれます。
【見積もり前提】
見積もり前提では、まず「ベースラインの設定」と「要件の洗い出し」を行います。ベースラインとは、システム開発の目標や範囲、そして前提となる条件などを明確にすることです。要件の洗い出しは、システムに求められる機能や性能、そして開発範囲などを詳細に調査し、具体的な要求事項をまとめる工程です。
【見積もり活動】
見積もり活動では、「規模の見積もり」「工数の見積もり」「工期の見積もり」の3つを算出します。規模の見積もりは、システムの機能やデータ量、そして開発規模を評価し、必要な開発リソースを算出する工程です。工数の見積もりは、開発に必要な作業時間や人員数を算出する工程です。工期の見積もりは、開発工程全体のスケジュールを決定し、納期を設定する工程です。
見積モデルを作成するときは、仕様と規模の不確実性がある場合は、ベースラインとは別に変動要因の設定も行います。
見積もり対象となる項目の内容
システム開発の見積もりには、以下のようにさまざまな項目が含まれます。
- システム調査費用
- 要件定義費用
- 設計費用
- デザイン費用
- ディレクション費用
- 開発費用
- 導入費用
- 導入支援費用
- 機材購入費用
- 保守費用
- 交通費
それぞれ、システム開発の工程や内容によって費用が大きく異なるため、事前にしっかりと理解しておく必要があります。
システム調査費用
システム調査費用とは、現行システムの仕様や問題点を調査し、新システムに実装する機能や改善点を行うための費用です。システム調査では、現行システムの分析、新システムの要件定義、ビジネスニーズの評価、そしてコンサルタントなどを行います。
システム調査費用は、依頼する開発会社を新しく変える場合にかかります。
要件定義費用
要件定義とは、システムに実装する機能やデザインを明確化し、計画として文書化する工程です。要件定義では、システムの機能や性能、そしてインターフェースなどを詳細に定義し、開発チームが共通認識を持つためのドキュメントを作成します。
要件定義費用は、事前の打ち合わせや調整など諸々のスケジュール調整にかかる費用ともいえます。ドキュメントの作成、要求定義の人件費、そして分析ツール費用などが含まれます。
設計費用
設計費用は、システムのインターフェースや実装機能の大枠を決定する基本設計と詳細設計の工程にかかる費用です。要件定義を基に担当のエンジニアが機能の詳細や、プログラム間の連携を記した設計書を作成します。
設計に手間のかかる規模が大きいシステムだと、開発工程の費用と道程度のコストが発生する場合もあります。
デザイン費用
デザイン費用は、ユーザーが使うUIおよびUXデザインの設計および開発にかかる費用です。デザイン費用は、ワイヤーフレーム、ロゴ(アイコン)、インターフェース関連の改善提案、プロトタイプ作成、ユーザーテストを中心に発生します。
会社によってはデザインのみの制作を受け付けているところもあります。
ディレクション費用
ディレクションとは、システム開発における進行管理や品質管理を行うことです。ディレクション費用は、プロジェクトマネージャーの人件費や進行管理に必要な諸費用が含まれます。
会社によってはプロジェクト管理費用や進行管理費用の項目を用いる場合もあります。
開発費用
開発費用は、プログラマーやエンジニアによるコーディングやテストの実施など、開発作業そのものにかかる費用です。主に人件費が半分以上を占めます。開発に必要な人員数と期間を「人月」「人日」といった単位で表し、人月の単価・期間・人数をかけ算して費用を算出します。
システムの内容や複雑さによって必要な人月は異なるため、規模の大きい開発ほど人月がかかります。
導入費用
導入費用は、完成したシステムをクライアントに移行するためにかかる諸費用です。旧システムのデータ取り込みやシステム連携を現場で行うため、人件費や導入に使うツールの費用など、細かい項目が発生します。
導入費用はシステム開発の最終段階にあたり、システムの移行が完了し安定稼働させるために必要です。
導入支援費用
導入支援費用は、システムの導入後、システムの概要や使い方の説明会を開く場合にかかる費用です。初期設定作業料や操作マニュアルの作成など、移行後のサポート全体の費用が含まれます。
サポートの充実度によって費用が異なります。また、他社の旧システムからの移行を前提とするならもっと費用がかかります。
機材購入費用
機材購入費用は、開発およびシステムの移行に新たな機材の購入が必要な場合にかかる費用です。ハードウェア・ソフトウェア・ライセンス費用など、開発に必要だと判断された機材やシステムを購入した場合は、その分が見積に加算されます。
機材の必要性は要件定義に則って判断されます。
保守費用
保守費用は、システムの導入後に実施する定期的なメンテナンスやアップデートなどアフターサービスにかかる費用です。システムは開発した後も運用を続けるため、基本的に実装後も安定して動作しているか、不具合が起きていないかチェックする必要があります。
開発総費用の15%〜20%程度が相場といわれています。
交通費
交通費は、システム開発にかかわる現場への移動や打ち合わせにかかる費用のことです。要件定義や要求定義で頻繁に打ち合わせを行うほど、交通費がかかります。
遠方の場合は宿泊費や食事代も含まれます。
システム開発を見積もりするときのポイント
システム開発の見積もりでは、費用だけでなく、開発内容やスケジュール、そして責任範囲なども事前にしっかりと確認しておく必要があります。トラブルを避けるためにも、見積もり時に注意すべきポイントを理解し、開発会社と連携してプロジェクトを進めていきましょう。
作業範囲が示されているか
見積書に記載されている作業範囲が、要件に則った機能が漏れなく記載されているか確認する必要があります。不要な機能を見積に含めていないか、不明瞭な作業工程が存在しないか確認する必要があります。
漏れがあると後に追加開発の費用を請求しなければならないため、トラブルが起こる可能性があります。要件定義、作業のスコープ、リスク評価、期限、開発プロセスを要チェックです。
修正費用やトラブル対応費用も含まれているか
予期せぬトラブルによる修正や追加の要望があった場合に備えた費用が含まれているかチェックする必要があります。修正内容によっては、大がかりな作業が発生する可能性もあるため、ある程度は見積に含めておきたいところです。
クライアントにはトラブルシューティングや仕様変更に伴うコストの増加について事前に協議しておくべきです。
管理工数が計上されているのか
コーディングや設計だけでなく、進捗管理やテスト、事前調査の実施にかかるコストも含めているか確認する必要があります。
一定規模以上のシステム開発には、プロジェクトマネージャーによる管理が欠かせません。スケジュール管理、予算管理、打ち合わせ費用など、マネジメント関連にかかる費用も見積りに含める必要があります。算出においてはリーダーシップ工数や、コミュニケーション工数など、管理工数を明確化し数字の妥当性をはかる必要があります。
見積もりの数字に不自然な箇所はないか
プロジェクト全体にかかる費用のなかには、コストの算出が難しい項目もあるため、見積を算出するうえでは専門家の意見や過去の実例から、妥当な数字を提示したいところです。
提示する金額には根拠が必要であるため、全体のタスクを明確化し、クライアントに求められた場合でも説明できるようにしておかなければなりません。見積の数字が算出できたら、クライアントに提示して合意をもらい、必要なら再度調整します。
責任範囲の確認をすること
トラブルが生じた場合の責任の所在を決めておかなければ、大きな問題に発展する可能性があります。プロジェクトマネージャーやクライアントなど、システム開発の関係者全員の役割と責任の所在を定義しておき、必要なら契約条件に明記します。
責任の所在で揉めないためには、コミュニケーションプロセスの明確化や情報共有が大切です。
複数の会社から見積もりを取ること
クライアント側が費用を抑えるなら、複数のベンダー企業から見積もりをもらい、おおよその相場観を養うのが大切です。複数社の見積は、競争による価格の引き下げや数字の妥当性の見極め、交渉の余地などメリットが多いです。
他社に比べ極端に安い費用だと、粗悪品の納品や追加コストの請求が頻繁に発生する可能性があるため、金額の安さだけでなく実績ある企業に依頼する必要があります。
まとめ
システム開発の見積もりは、プロジェクト全体の成功を左右する重要な要素です。見積もりを行う際には、システム開発の工程や見積もりの方法、そして見積もり対象となる項目についてしっかりと理解しておく必要があります。
また、作業範囲や修正費用、管理工数、責任範囲などを事前に確認し、複数の会社から見積もりを取ることで、より確実な見積もりを実現できます。
本記事で紹介した内容を参考に、システム開発の見積もりをしっかりと行い、プロジェクトを成功に導きましょう。