システム開発 見積


システム開発見積もりの正しい評価とは

システム開発 見積


企業によってことなる見積項目

システム開発見積の現状

システム開発費用の見積を巡って、言った言わない、そもそも範囲では無い、見積書に含まれていなかった、お互いに気が付かなかった等、トラブルの原因になりがちです。特に最近のwebシステム開発では様々な新しい技術や手法が取り入れられています。受注した企業も必死でコストダウンを図るために新しい技法を取り入れている現状があり、成果物の差異はトラブルに発展しがちです。従ってシステム開発発注時点において見積もり依頼は重要なプロセスであり、慎重に進めなければならない作業となります。同じシステムを開発するのにも、発注側企業が正しい見積もりの取り方や評価の方法を知っているかどうかで料金が変わってきます。安くても必要な項目が漏れていたために、契約変更などが発生し、開発工程に影響が起こり、本番稼働延期という原因にもなりかねません。 今回のお役立ちコラムではシステム開発料金の見積もりに関するさまざまな事例をお伝えするとともに解説を致します。これを読んでいる企業の皆様の見積もりの段階で判断を誤るリスクが軽減されるだけではなく、見積もりを提出する側のリスクも軽減されると思いますので、最後まで読んでやってください。

    システム開発 見積の項目

    弊社J&Cカンパニーではお客様に寄り添ったシステム開発を請け負っています。その経験から多くの事を学び、今現在でも進化し続けております。その結果、一言で正しい見積もりと言っても、正解はおそらくありません。その理由は、お客様の業界によって見積もり項目が違いルールも違います。また予算取りのような時期であれば、詳細なヒアリングも無く見積もりを依頼されるケースもあります。システム開発やソフトウエア開発は、製造業の確立された生産ラインのように大量ロットで生産性を上げているコスト管理とは違って、技術の進歩によるツールの選定、技術者の力量、リーダーの管理能力、お客様の規模や業務など、見積もり要素としての多くは人的要素の割合が高く、責任をとれる精度の高いシステム開発費用見積もりは、詳細な打合せを繰り返し、高度な分析力を発揮することで漏れの無い見積もりが提出できるものであります。それを前提にシステム開発見積項目を列挙します。

      システム開発 見積項目一覧

    • 要件定義費用

    • 基本設計費用

    • 外部設計費用

    • 機能設計費用

    • 内部設計費用

    • 詳細設計費用

    • プログラム設計費用

    • プログラミング費用

    • コーディング費用

    • 単体テスト費用

    • 結合テスト費用

    • 総合テスト費用

    • 運用テスト費用

    • 導入費用

    • 導入支援費用

    • 購入費

    • 宿泊交通費

    • 保守費用

    • クラウド利用費用

    • プロジェクト管理費用


    それでは詳しくそれぞれの費用項目を解説してきましょう。

  • 要件定義費用 RD=Requirement Definition

  • 要件定義とは、システム開発の最上流に位置する工程であり、ユーザーのシステムに対するニーズを明確にし、それを実現するために必要な機能をまとめて資料化し、ユーザーと合意形成を図る作業工程の費用です。

  • 基本設計費用 BD=Basic Design

  • 基本設計とは、システム全体を機能単位に分割し、それぞれの機能の内容や機能同士のつながりなどを決める作業工程の費用です。

  • 外部設計費用 ED=External Design

  • 外部設計とは、IT会社によっては基本設計と同じ意味でつかわれることもありますが、ユーザーから見える部分の仕様、例えば画面や帳票などを決定したり、ユーザインターフェイスデザインを設計したりと、ユーザーに向けた仕様を設計することです。また、この段階で下流工程も含めた費用見積もりを試算する場合もあります。

  • 機能設計費用 FD=Function Design

  • 機能設計とは、システムの機能ごとに仕様を定義する作業工程の費用です。IT会社によっては外部設計や内部設計の一部として位置づけられます。

  • 内部設計費用 ID=Internai Design

  • 内部設計とは、詳細設計に近いもので、システム内部の動作や機能、データベースとの接続処理方法など、お客様から見えにくい部分の設計作業工程の費用です。IT会社によっては詳細設計一部として位置づけられます。

  • 詳細設計費用 DD=Detail Design

  • 詳細設計とは、システム開発工程において、プログラム実装の前に、システムの内部構成を細かく決める作業工程の費用です。

  • プログラム設計費用 PD/PS=Program Design/Program Structure Design

  • プログラム設計とは、機能の実装の直前に各プログラムの動作などを詳細に決める作業工程の費用です。IT会社によってはフレームワークを決めるという言葉を使う場合もあります。

  • プログラミング費用 PG=Programing

  • プログラミングとは、コンピューターが理解できる言語を用い、実現したい機能を開発する作業工程の費用のことです。

  • コーディング費用 CD=Coding

  • コーディングとは、システムを動かすためのプログラムを書いたり、ユーザーから見える文字や画像をコードで入力したりする作業工程の費用のことです。IT会社によってはプログラミングに含めることが多いです。

  • 単体テスト費用 UT=Unit Test

  • 単体テストとは、システムを構成する個々の機能が正しく作動しているか確認する作業工程の費用のことです。IT会社によってはプログラミングに含まれるケースもあります。

  • 結合テスト費用 IT=Integration Test

  • 結合テストとは、システムの中で単体では作動するようになった要素をそれぞれ組み合わせたときに、正常に作動するか確認する作業工程の費用のことです。IT会社によってはテストという一行の項目で単体テストも含めて見積もりするケースがあります。

  • 総合テスト費用 PT=Product Test

  • 総合テストとは、構築したシステムが全体で必要な機能を全て満たしているか確認する作業工程の費用のことです。IT会社によってはテストという一行の項目で単体テスト、結合テストも含めて見積もりするケースがありますが、具体的に確認した方が良いでしょう。テストの内容については総合テストや運用テストは含まれていないケースもあります。

  • 運用テスト費用 OT=Operations Test

  • 運用テストとは、システム開発におけるテストのうち最後におこなわれるものであり、本番稼働同様に顧客が操作し動作結果を確認する作業工程費用のことです。

  • 導入費用

  • 導入とは、開発したシステムを実際に利用するために初期設定をする作業になります。具体的には権限設定、支店や支社別のロール権限、社員マスタ、所属マスタ、部品マスタ、取引先マスタ、会計コードマスタ、などのデータ整備などもお見積りするケースもあります。お客様で実施して頂くケースが多いですが、事前に確認すべき事項です。

  • 導入支援費用

  • 導入支援とは、開発したシステムを利用するために操作方法の説明会を開催したり、マニュアルを作成したりする支援作業費用のことです。お客様の方で実施されるケースもあります。その場合は当社はサブ担当として支援するのみというお見積りを提出いたします。この辺り方はお客様主体となっていただくことを推奨いたします。

  • 購入費用

  • 購入費とは、システム開発に必要な機材の購入などにかかる費用のことです。具体的にはMicrosoftのデータベースやツール購入費、テスト用で利用するmobileパソコンやタブレット端末、POS端末など。こちらについてはIT会社によっては、お客様側で別で購入を依頼している会社もあります。

  • 宿泊交通費用

  • システム開発の過程においては、何度も打ち合わせが発生します。 そのための宿泊費や交通費についてもシステム開発費用に含まれます。諸経費として全体の5%という基準の会社もあるようです。

  • 保守費用

  • 保守とは、稼働したシステムの障害や運用に関するとお問合せに対応する費用になります。日常の保守と土日含めた緊急時の保守など、お客様によっては様々な時間帯で保守の緊急性も違います。ハードウエアの故障の場合以外にソフトウエアのツールの問題発生(開発したものではなく)などは第三者に起因する事項ですので保守契約を締結することを前提にシステム会社を選定することを推奨いたします。

  • クラウド利用費用

  • 最近のシステム開発は企業内でサーバーを購入して企業内でシステム維持(バックアップなど)をする形態(オンプレミス)から、クラウド領域を利用してサーバーなどを購入しない方式(企業側はネット回線とブラウザのみ)が当たり前になりました。クラウド利用費用とは、そのクラウドを利用するための費用になります。AmazonのAWS、MicrosoftのAzure、sakuraサービスなど、日本国内で利用できる安価なクラウドサービスを是非利用されることを推奨いたします。

  • プロジェクト管理費用

  • プロジェクト管理とは、文字通り受注側と開発側の間に立ってプロジェクトの進行進捗が計画通りに進むように管理することです。システム開発規模によっても関係する体制は変わりますが、例えば、お客様5名、システム開発会社側が5名であれば10名のコントロールが必要になります。この管理者の実行力によってプロジェクトの成功の可否が問われると言っても過言ではありません。この部分を値引き要求などされないことをお勧めいたします。


      システム開発 見積金額の算出方法

      システム開発見積金額の算出方法は、会社によって様々ですが、代表的なものをご紹介いたします。どの会社もこの代表的なものを複数適応して見積もり試算をしているようです。

    • 2段階方式

    • この方法は大規模なシステム開発で利用されるケースで納期も半年から数年かかるプロジェクトの場合です。まず第一段階はお客様の要求事項をヒアリング実施して設計までを行う見積。第二段階目は実際に第一段階で施工実施後に、実装以降を見積もりするということになります。第一段階で仕様が確定していますから、第二段階での差異は大きく発生しない特徴があります。従って契約も最低2回以上締結、施工業者も第一段階と第二段階では別の会社になるケースが多いです。

    • FP法

    • FP法とはファンクションポイント法の略で、情報システムの提供機能から工数見積もりを行うために1979年に米国IBMのAllan Albrecht氏により考案されました。FP法は誰が見積もりの計測を行っても同じ結果が得られ、見積もり作業のばらつきを抑えることを目的としています。FP法ではシステムの機能を「ファンクション」と呼び、そのファンクションごとに点数を定めています。そのため誰が見積もりをしても、ファンクションの数を数えるだけでシステム規模の見積もりが同等に実施できるメリットを持っています。そのファンクションはシステムの実装形式による違いがなく、開発言語にも依存しません。システム開発の形式にも依存しないため、新規開発でもパッケージ利用でも同等の結果を得られます。FP法ではソフトウェア開発の生産性を測定するためのユーザー要件をファンクションとして定義し、カテゴリー化することで見積もりの平準化を行います。このFP法は継続してこの手法を取り入れていく事でメリットが大きくなります。しかしながらFP法のデメリットとしては、機能要件を低・中・高の複雑度の分類で算定するため、対象とするアプリケーション開発の工数とソフトウェア製造量と直接的に合致しない場合もあります。ソフトウェア開発は、工数を用いて成果物としてソフトウェアを納品します。ソフトウェアは完成していない段階で完成成果物を逆算して工数見積もりを行うため、初期段階では誤差が大きくなる傾向があります。技術革新が多い現在では、この手法を用いることが少なくなりました。

    • プログラムステップ法 LOC法

    • プログラムステップ法とは、プログラムのステップ数(行数)をもとにして、システムの開発費用を見積もる手法のことです。プログラムステップ法は、プログラムが既に存在していれば、容易に見積りを出すことができるという特徴がある。一方、プログラムが存在しない場合には、過去の開発事例を参考にするなどしてステップ数を割り出して見積もりします。デメリットとしてはプログラムステップ法では、プログラムの書き方やプログラマーの技量により、開発費用が左右されることがあります。

    • 過去の経験から推測して見積

    • 過去の経験から推測して見積とは、システム開発にかかる人件費コストを工数(何人の技術者が何日で作ることができるか)で見積もり料金を算出する方法のことです。メリットは、過去の似ているシステム開発事例を参考におこなわれるため、比較的正確な見積もりができることです。 その一方で過去に類似の開発事例がない場合は、担当者の知識や経験によって見積もりがされるため、信ぴょう性が欠けるというデメリットがあります。

    • 推測係数見積

    • 推測係数見積とは、過去の経験から推測して見積とよく似ています。同じようにシステム開発にかかる人件費コストを工数(何人の技術者が何日で作ることができるか)で見積もり料金を算出する方法のことですが、それに加えて難易度の係数をそれぞれの機能実現に掛けて工数を計算していきます。メリットは、見積もり料金を数学的かつ機械的に算出するため、担当者の知識や経験によって結果がブレにくいことです。 しかしながらデータの数を参考に見積もり料金を算出するため、柔軟性に欠けるというデメリットがあります。

    • 工数積上げ方式

    • 工数積上げとは、完成するシステムを想定し、その構成要素を洗い出して見積もり料金を算出する方法のことです。メリットは、工数を踏まえて計算するため漏れがなく、精度の高い見積もりが作成できることです。 デメリットとしては、大きな規模のシステム開発は完成までの工数が想定しにくいため、大きなプロジェクトには不向きだと言われています。

    • 予算から逆算する方式

    • 予めお客様の予算内で、システム開発する範囲を提示する方法です。メリットは、システム開発見積もりが当社から決められているので安心です。 デメリットは、予算によっては必要な機能が全て実装できなくなる可能性が高くなることです。新しいビジネスなどを開始するときの実証実験としてMVP開発には向いていると思われます。


      システム開発を依頼する前の条件とは

      システム開発費用見積の前提条件は、見積もり依頼をする前に必ず必要になります。発注側と請負側とで合意形成が必要です。見積もりをするためには内部情報を公開する必要もありますので、機密保持契約、NDAなども締結する必要があります。

    • 見積もり範囲

    • 見積もり対象外範囲(非機能要件)

    • 検収条件、支払い条件

    • 瑕疵担保期間

    • 利用技術

    • 開発プロセス範囲

    • 開発体制(お客様側、請負側両方)

    • プロジェクト期間、開発期間、納期など

    • システム化業務要件

    • プロジェクト推進方法、コミュニケーションルール

    • 開発環境、開発場所、ネットワーク環境

    • セキュリティ基準

    • テスト範囲、テスト手法、テストデータ

    • 成果物(ソース、設計書、システム構成図、その他)

    • 保守契約の有無


    前述しましたように、できるだけ詳細な事項を取り決めすることをお勧めしています。ざっくりとした概算見積を提出した後で、後悔することもあります。作業範囲は明確になっているか、本番稼働立ち合いは必要なのか、提出されて見積明細は細かく積算されているのかなど、チェックしましょう。


    いかがでしたでしょうか。システム開発投資は抑えて、ビジネスを加速化したいという経営者のお考えは理解できます。複数業者検討してコンペ等する余裕があれば、導入検討委員会などを社内プロジェクトとして公平に立ち上げても良いでしょう。しかしながら見積もり金額が安かろう、悪かろう、というお話も耳にします。システムやソフトウエアというものはビルや建物と同じです。目で見て見える部分も、触って操作する部分も重要ですが、中身の構造、設計が杜撰であれば、数年後に崩壊する可能性もあります。安心して暮らすことのできるビルや建物と同様に、建築図面、設計書もチェックして頂き、エンジニアの質や提案力、そして困った時は柔軟に相談にのってくれそうか。など長くサポートしていただけそうなシステム開発会社に巡り合えるためにも、お客様側も少し勉強してみてはいかがでしょうか。

    中国オフショア開発を利用してdx ソフトウェア開発、ウォーターフォール モデル,アジャイル開発,杭州,ai エンジニア