ソフトウェア開発費ってどれくらい?

ソフトウェア会社以外の人にとって、ソフトウェア開発ってどのように進んでいくのか?いくら位かかるものなのか?って全くわからないものだと思います。よく建築に例えられますが、建築だと設計図描いて、大工さんが柱や壁やと組み立ててと、作業の工程、材料、大変さ、要求される技術などがなんとなく想像できるのですが、プログラムってどのように作るのか知らない人が殆どで、習ったこともないのでその大変さについては全く想像が付きませんよね。近年では小中学生にプログラミング体験の授業などがあったりしますが、あれはあくまでも体験であって、私達プロが作成しているプログラムとは全く別のものです。

結論から言うと、ソフトウェアの開発費はピンキリあるという身も蓋もない回答になるのですが、それでは意味がないので、深掘りしていきたいと思います。

ソフトウェアの開発工程

ソフトウェアの開発工程をかなりざっくり分解すると以下のような感じです。

・企画する
・設計する
・制作する
・運営する
(バージョンアップする場合は最初に戻る)

工程自体はやはり建築業界に似ているように思えます。この各工程に作業する人が必要で、「人件費」という形でソフトウェア開発費に加算されていきます。

企画する

ソフトウェア開発を依頼したい場合、「こういう事業をやりいたい」とか「こういうソフトウェアで業務を効率化したい」というのはすでにお持ちかと思います。なのでこのステップは御社内で済んでいるはずですし、この先設計・開発契約に至るかどうかのヒアリング段階となりますので、費用は通常発生しません。事業提案までお願いしたいとなると、コンサルタント契約になってくるのかなと思いますし、中にはその後の開発まで発注前提でしたら無料でご相談という開発会社さんもいるかと思います。

設計する

だいたいやりたいことは企画書で定義し、事業計画もおおよそで立てて、一旦経営陣から次のステップへのGoサインが出たとします(見積もりや予算の話は後述)。今度はもっと詳細にソフトウェアをイメージしていく必要があります。サーバー構成はどうするか?どういう画面が存在するのか?その画面にはどういう処理が必要なのか?入力には制限はないか?ファイル出力は必要か?ユーザーが使うアプリだけではなくて、管理者が使うアプリも必要なのではないか?運用上の懸念点や制限事項は無いか?等々詳細に詰めていきます。要件定義と呼ばれているこの工程がこの後の工程全てを支配するほど重要な工程となっています。発注者と開発者で完成形について合意形成を行い、ここを通過して以降の大きな変更や追加は基本認められないとなります(コストの増加やスケジュールの遅延について合意できるならOK)。

要件定義が終わったら、今度はプログラマさんやテスターさん向けに仕様書という物を作成する必要があります。建築で言う設計図にあたるもので、プログラマさんやテスターさんにとって必要なすべての情報が書かれている必要があります。建築だと寸法が書かれていたりで、これが狂っていると建築作業ができませんよね?要件定義の段階では決めなかった通信タイミングやエラー処理、画面の表示パターン(データが0件の時はどうするかとか、アカウント権限ごとに表示が変わる場合はどうなるかとか)、セキュリティ関連の決め事等々抜け漏れが無いように詳細まで決めていきます。この仕様書に描かれていないことは実装されないか、動作が不定です。

仕様書を作成しながら、このソフトウェアを実装していくのに必要なタスクを洗い出していきます。弊社の場合ですと、「○時間以内にこの作業は完了してください」と時間まで指定します。この作業が終わると、どんなスキルをもった人がどのくらいの期間作業をすればソフトウェアが完成するのかが分かります。

制作する

仕様書(ソフトウェアの設計図)に従い、プログラミングをしていきます。プログラミングは、テキストの文章で書いていきます。「繰り返し以下の処理をしなさい」「もし〇〇の時はこの処理、そうでない時はあの処理をしなさい」というふうな英語に似た文章を組み合わせて、コンピュータに命令をしていくというイメージです。プログラミングが難しいのは、「コンピュータは言われたことしかできない」からです。もし命令があいまいだったり間違っていると、仕様書通りの動作をしません。これがいわゆる「バグ」で、プログラマは命令を書いては間違いを直すというのを何回も繰り返し、ソフトウェアの1機能を実装していきます。これら機能が「数百・数千」と集まって、1つのソフトウェアを構成します。

開発が終わると、納品前にテストを行います。どんなソフトウェアにも必ずバグが含まれています。バグが0個のソフトウェアはこの世には存在しません。例えば、aとbの入力を受け付けて、a+bの結果を表示するというプログラムがあったとします。では、aに「あいうえお」などのテキストを入力したらどうなるでしょうか?aが整数だと思っていたのに、小数を入力したらどうなるでしょうか?入力チェック機能で、想定外の入力はされないように仕様書に書かなければならないのですが、プログラムが複雑になればなるほど「バグ」の発生確率が上がりそうなのは分かっていただけたでしょうか?少なくともリリース後に重大なバグが発生しないように、プログラムのあらゆる箇所を検査して、テストした限りは問題がないことを確認した後に納品となります。

納品後は発注者側でも検品する必要があります。要件定義通りに完成しているか?バグはないか?などを検査します。が、バグについては専門的な知識と経験が無いとザルなチェックになるだけですので、開発者側のテストの際にプロのテスターを雇ってもらい、そのテストを信用するでも良いかと思います。信頼性を担保したい場合には発注者側でもテスターを雇い、再度テストを行う必要があります。

運営する

テストに問題がなければいよいよアプリをリリースとなるのですが、アプリはリリースして終わりではなく、運営していく必要があります。ユーザーの問い合わせ対応のためのカスタマーサポートへの情報共有、アプリをオペレーターが操作する場合には使い方のレッスンやオペレーションフローの確定、プレスリリースをする場合には広報部への周知、社員へのアプリの意義と目的についてのシェア、営業活動のための販促資料の作成などなど、単にアプリを作成する以上に運営もやることが多々あります。

プログラムはメンテナンスをする必要があります。サーバーが稼働しているか、不正アクセスの形跡はないか、あるいはサーバーの容量は足りているかなどを毎日チェックし記録をする、サーバーが乗っ取られないようにセキュリティプログラムを日々更新する、リリース後に発覚した問題を修正する、意図せず壊れてしまったDB内のデータを修正するなど日々お世話をしてあげないと、いつか取り返しのできない問題を起こしてしまう可能性があります。

ソフトウェアは使ってみると、もっとこうしたいという要望が必ず発生するものです。もっと効率よく・便利にするために、バージョンアップも考慮しなければなりません。その場合にはまた企画に戻って開発プロセスを繰り返すということで、ソフトウェアを進化させていきます。

以上が大体のソフトウェア開発プロセスになります。では、本題である開発費の話に、と行きたいところなのですが、まだまだ基礎知識を身に付ける必要があります。

ソフトウェア開発における人件費

材料費がとてもかかる建築と違って、プログラマが文章を作成すれば良いソフトウェアの開発費は主に「人件費」ということになります。あなたの会社で人1人を雇用するといくらかかりますか?

ソフトウェア業界の人件費は人材募集サイトを見ればおおよそ想像がつきます。

Indeedさんなどで「プログラマ」や「システムエンジニア」で検索してみると、もちろんピンキリあるのですが、月給20~80万位の幅で募集されており、実質としては若手は額面30~40万円、シニアは50~40万円程度が多いのかなと思います。プログラマのニーズは上がっているのに反して、プログラマは常に枯渇状態で、各社より良い給与・待遇提示で質が高く経験豊富なプログラマの転職を促しており、人気のゲーム業界では年収600万提示でもプログラマが確保できないという話も聞きました。

画面をデザインしてくれるデザイナさんはプログラマとだいたい同じ、要件定義や仕様書を作成するシステムエンジニア(SE)や、プロジェクト全体の管理を行うプロジェクトマネージャ(PM)となると、責任の重さに伴って給与もプログラマより高い(40~50万としておきましょう)というのが相場です。

これらの人を会社で雇うと、会社が負担する社会保険料、ボーナス、使用するソフトウェアライセンス費用、事務所の家賃・光熱費、福利厚生費、教育費等々が必要経費となり、これに会社の利益を上乗せした額が、外注した場合に請求される金額となります。相場感で言うと大体60~80万円が多いのですが、大手の会社やリーダークラスのエンジニアですと80~100万とか、私が聞いた最も高い価格ですと200万というのがありました。

この相場を外れるようなお値段の場合、オフショアで物価が安い地域で開発を行う会社とか、経験が浅くスキルが足りないエンジニアを送り込もうとしているとか、エンジニアを安く買いたたきすぎて離職率が高そうな会社という可能性があります。また、近年はSESというサービスを行う会社間でエンジニアの貸し借りがありますので、孫請け・ひ孫請けの給料が安いエンジニアに数社分の利益が上乗せされた結果通常の相場になっている可能性もありますので、スキルや経験年数の条件をハッキリ決めて発注した方が良いのですが、ソフトウェア開発の経験がない会社さんの場合は、外注先の社員だけで開発して欲しいとか、1社先の孫請け社員までだったらOKとか条件を付けた方が良いかと思います。

また、近年のITエンジニア不足を解消するために「未経験でもOK」と謳って広く人材を募集し、数ヶ月の勉強をさせたあと開発現場に送り込むという事も行われています。勉強期間が短いエンジニアと情報工学をやってきたエンジニアでは経験の差は否めませんので、若手や未経験者をどのくらい許容できるプロジェクトなのかと、予算のトレードオフはよくご検討された方が良いかと思います。

人件費が大体わかりましたので、後はどういう人にどのくらいの期間作業してもらえればソフトウェアが完成するのかということで大体の計算ができる事になるのですが、作業ボリュームの見積もりには注意があります。基礎知識その2です。

不確実性コーン

企画書が完成して経営陣にプレゼンをする時には、このプロジェクトを行うことで、いつごろ黒字転換して、どのくらい儲けることができるのか?という事業計画を説明しなければならないかと思います。その時に開発費が一体どのくらいかかるか知る必要があるというのはすごくよく分かります。できることならその見積もりが正確で、そのまま契約し、オンスケで開発を終了して差し上げたい所です。ですが、企画書時点での工数見積もりには罠があります。

日経クロステックさんの記事より、不確実性コーンの説明画像

日経クロステックさんのこちらの記事によると、ソフトウェア開発の各段階での工数見積もりと、実際にかかった工数とのズレについてグラフ化した「不確実性コーン」というものがあるそうです。

・初期コンセプト(承認前企画書)段階だと、その時に見積もった工数の25%の工数で終わるかもしれないし、400%の工数がかかるかもしれないと幅が大きいです。予算取りのために見積もりをお願いしますと開発会社にお願いしても、開発会社から見ると「何も決まっていない」に等しく、なんとなく過去の経験や勘から答えざるを得ません。そこには300~500万円と書かれているかもしれませんが、実際開発を行ってみると、1200~2000万円に膨れ上がるリスクをはらんでいます。

・承認されたプロダクト定義(承認後企画書)段階だと、経営陣に色々詰められたからか、40%~200%のズレとのこと。この段階でのお見積り依頼も多いかと思いますが、2倍ずれる可能性があります。ユーザーが触るアプリのことしか見えておらず、カスタマーサポートのための管理ツールも必要になったとか、アカウント権限の事を考えていなかったとか、レスポンシブ対応で様々な画面解像度に対応しなければならないことが契約後に言い渡されるとか、原因は様々かと思います。この段階ではまだ氷山の一角しか見えていないと思った方が良いです。

・要求の完了(他社の要件定義書レベル)、ユーザーインターフェース設計完了(弊社の要件定義書、他社の基本設計レベル)段階だと、60%~150%とズレが狭くなっていきますが、ここでもまだ1.5倍も差があります。3ヶ月で終わると思っていた開発が4.5ヶ月になるかもしれないということです。

・詳細設計の完了(弊社の仕様書、他社の詳細設計レベル)段階ですと、さすがにアプリの全容がはっきりしてきて、90%~110%に収まるようです。+10%は仕様の微調整だとか思わぬトラブルレベルであって、通常の開発としては許容範囲です。弊社の場合はこの段階でタスクを細分化し、タスクごとに1時間単位で目標時間を設定しますので、プログラマ何人が何日間作業をすれば終わるのかの根拠まで示すことができます(他社さんはやっていないかと思います)。また、開発中も目標時間通りに進んだ場合を100%の進捗として、仕様変更に備えて2~3ヶ月毎に1週間程度のバッファを取りつつ、110%の進捗率で進めるようにメンバーにお願いしていますので、この不確実性コーンの主張とも合っているようです。

見積もりはいつ行うべきか?

このように、企画段階でのお見積りは4倍もズレている可能性があり、受注側も過去の経験等から類推しつつもトラブルに備えて多めのバッファを乗せてお見積りするというのが通例です。弊社のおすすめとしては、企画が通ったらまずは設計(仕様書作成・詳細設計)までを発注することです。これによりソフトウェアの設計図が完成し、全体の工数は10%のズレに収まり、期間も大きくはズレないというところまで計画が可視化します。

弊社は設計のみ、または設計・開発を承りますという会社なのですが、設計・開発の場合でも、予算感把握のためにヒアリング段階で「ざっくりこの位の予算は覚悟しておいて欲しい」ということで概算お見積書はお出ししますが、それでそのまま契約をする訳ではなく、まずは設計フェーズのみの契約でソフトウェアの全貌を洗い出し、設計が終わったらタスクを詳細に分解して必要工数を計算し、不必要なバッファは削った最小のバッファで「実際の開発にはこの期間と金額になります」という、開発フェーズ向けお見積書をお出しします。その金額が高いということであれば、納品済みの仕様書を他の会社さんにお渡しして、より安い開発費の所に発注されるでも構いません(その場合、弊社との開発契約はありませんので、弊社が開発ディレクションを行うことはありませんし、テストも弊社では行いません)。詳細な仕様書ですので、弊社が居なくてもある程度はスムースに開発を進めることはできるかと思います。(開発中の仕様調整等は難しいのではないかと思いますが)

見積もりのタイミングによって工数にズレが結構あるという前提を理解していただいた上で、いよいよソフトウェア開発費の例を考えてみたいと思います。以下はあくまでも例で、実際には赤字じゃないのかと思えるほどお安い会社さんもあります。相場のちょっと高い方で覚悟しておけば、実際の見積もりでびっくりするようなことは無いだろう位の気持ちで見ていただければと思います。

簡単なWebページを作りたい(60万+運用費~)
特にコンテンツ更新のあまりない企業Webページなど

Webページにはお問い合わせ程度の機能しかなく、プログラムがほぼ必要ないという前提にします。エンジニアの単価は全て80万とします。

人数期間(ヶ月)見積もり(万円)
打ち合わせ・設計1人0.25~0.520~40
開発1人0.25~0.520~40
テスト1人0.2520

WordPress等の登場でサーバーさえ用意すればHTMLやCSSを知らずともWebページが作成できるようになっています。

まず、作りたいWebページのレイアウトや写真やテキストが企画段階で完成済みかどうかがキモになります。これが揃っているとWebデザイナはパーツを並べるだけですので、かなり早く作業が進められます。Webページ数にもよるのですが、サーバーの設置、SSLの取得・設定等も含めて、1~2週間ほどで開発は終わり、テストとお打ち合わせ等含めてもエンジニアを3週間ほど拘束する工数で作成可能かと思います。

弊社のWebページもWordPressを使用していて、レイアウトとかテキストは代表の私がその場で自由に決められるというスピード感の中で、コラム以外の部分は5日程で現在のレイアウトにリニューアルできました。

パーツが揃っていなかったり、Webページのレイアウトがイメージできていない場合には、デザイナとの打ち合わせに少し時間がかかると思いますので、必然的に拘束期間が長くなり、4~5週かかってしまう可能性があります。また、ページ数が多かったり、何度もリテイクとなるとその分拘束時間が延び、価格も高くなっていくかと思います。

サーバー使用料やHTTPS化のためのSSL発行・更新費用は運用費として請求されるかと思います。Webページの更新作業のお願いや、問題発生時のトラブル対応のために何かをお願いする場合は、さらに運用費に数千円~数万円/月上乗せされるかと思います。

既存Webページの改修の場合には、まず既存のWebページがどのように作られているのかなどの解析作業も必要になります。WordPress等で簡単に変更ができないページの場合は0からWebページを書いていく必要がありますので、拘束時間が延びていくかと思います。

WordPressなどのWebページ制作ツールが使えないようなWebページの場合にも、同様に0から作成する必要があるかと思いますので、Webデザイナの拘束時間が延びていいくかと思います。

機能付きWebページを作りたい(140万+運用費~)
毎日ニュースやコンテンツを発信するような企業Webページなど

Webアプリまではいかないものの、プログラムが必要になってくるような機能を含むWebページの場合はもう少し予算を確保した方が良いかと思います。イベントで1ヶ月だけ使用するWebページなど(応募フォーム程度ではなくて、アニメーションや簡単なゲームを含むだとか)。ここでは2週間以内に実装完了できる程度の機能数とします。

人数期間(ヶ月)見積もり(万円)
打ち合わせ・設計1人0.5~1.040~80
開発2人0.5~1.080~160
テスト2人0.2520

もちろんページ数・機能数・オブジェクト数などにも寄ってきますが、一人がHTMLを書いている間に1人がJavaプログラムを書くというイメージで、2週間~1ヶ月程度の拘束になるのではないでしょうか?

スマホアプリを作成したい(710万円+運用費~)
会員向けサービスをアプリで行いたいなど

だんだんお見積りが難しくなっていきます。一言で「スマホアプリ」と言っても様々で、サーバーと通信する必要があるかどうかと言う所がコスト面の大きな分岐点かと思います。おそらくユーザーに会員登録をしてもらってから利用してもらうアプリが殆どで(=会員データを保存するDBが必要で、個人情報の通信・保管について暗号化等が必要になってくる)、サーバーと通信せずスマホ単体で動くようなものは稀なのではないでしょうか?ここではサーバークライアントモデルで、比較的小さめのアプリ前提で考えてみます。

人数期間(ヶ月)見積もり(万円)
打ち合わせ・設計1人1.0~2.080~160
開発3人2.0~3.0480~720
テスト4人0.5~1.0150~300

サーバークライアントモデルになり、サーバー側エンジニアとスマホ側エンジニアが必要になってきます。また、この位の規模になると、開発の進捗管理やディレクション、関係各所とのやり取りが必要になってくるため、SE兼ディレクターが設計段階からテストの終わりまで付き合うという形にしてあります。

Unityなど1つのソースコードでAndroid版/iOS版同時に作成できるツールが世の中にはありますので、スマホ担当エンジニアは1人で良いかと思いますが、OSごとに一部実装やテストを分けなければならないケースも出てきますので、注意は必要です。

画面内の機能数にも寄ってくるかと思いますが、だいたい1画面作るのに2.5~5日(1ヶ月で6~8画面程)見ておけばよいかと思います。アニメーションや動画等画面が複雑になるに従って、素材の用意等でさらに時間が必要になってくるかと思います。カメラやコミュニケーション機能など、使いたい機能が増えるに従って必要なプログラマの人数や期間も増えていきます。サーバー側プログラム(DBへの追加・編集・削除・検索など)は1項目につき1日程度です。

このレベルになってくるとプログラマ自身がテストしない方が良く(動くと思いこんでしまっているので、テストが甘くなりがち)、仕様を完全に把握しているSEの目線や、様々なプロジェクトでテストの経験のある外注テスターさんに任せた方が良いかと思います。プログラマはテストの終わりまでデバッグを行います。

アプリの内容によってはパスワードリセットや操作履歴の参照やKPI計測のための管理者用ツールの作成も必要になってくるかもしれません。これらの作成も必要となると、開発者を増員するか、リリースまでの期間を伸ばしていく必要があるかと思います。

Webアプリを作成したい(1750万円+運用費~)
機能がもりだくさんなWebアプリを作成したいなど

機能付きWebページよりももっと機能を持つようなものだと、Webアプリになってきます。会員登録やログインがあり、様々なデータの検索・登録・削除、ログの分析などを行っていくシステムになります。テスト項目数は数百~二千程度にもなり、その数と同じだけプログラマが何かしらのプログラムを書かくことになるということになります。Webアプリを作りたいと思った時は、大体この規模かと思います。

人数期間(ヶ月)見積もり(万円)
打ち合わせ・設計1人2.0~3.0160~240
開発5人3.0~4.01200~1600
テスト7人0.75~1.0390~520

開発にはサーバー側エンジニア2名、クライアント側エンジニア2名用意し、設計の段階からSEが開発ディレクター兼SEとしてテストの最後まで関わります。テスト項目数が多いので、外注テスターさんを2名は呼ばないと期間内にテストが終わらないということになります。

もう少し大きな中規模アプリですと、プログラマだけで10名という可能性もあります。その場合は、開発の人数が5→11名、テストの人数が7人→13名となり、増えた人数分のコストが加算されます。

規模が大きくなればなるほど、企画時に見積もったスケジュールとは乖離してしまうリスクが高くなります。開発順やエンジニアのやるべきタスクを明確化しないと、あっという間にスケジュール通りにいかなくなりますので、開発ディレクターがコントロールし、進捗を明確に管理しないと、スケジュールの破綻が起きてしまいます。

近年ですと、PCで見た場合、タブレットで見た場合、スマホで見た場合で表示を切り替えるレスポンシブ対応も行って欲しいというリクエストもあろうかと思いますが、それはすなわちPC・タブレット・スマホでの画面表示がどうなっているかを別々に定義し、3倍とは言いませんが、1.2~1.5倍の工数をかけて実装(常に動作確認が必要になるので、時間がかかる)し、3つの画面で全項目をテストするということでもあります。「できれば欲しい」程度ならば、ver1.0はPC画面のみで我慢し、後々のバージョンアップで対応などを検討したほうが良いかと思います。逆にターゲットが若年層でスマホが前提となってくると、無視できない要素になってきます。

複数のブラウザ種類への対応も意外と工数がかかる部分です。以前Chrome用として作成したアプリをSafariでも問題なく動くようにして欲しいという対応を行ったことがありますが、意外と同じようには表示してくれないということがありました。この辺りは読みづらい工数ですので、最初からSafari対応とするのではなく、一度Chrome用として作成してから、Safarideどのような問題が発生しているか洗い出す方が良いかと思います。

期間の所にもご注目いただきたいのですが、小さめのWebアプリ開発を前提にしても、6ヶ月ほどは見ておいた方が良いかと思います。年度内に欲しいので3ヶ月以内でというリクエストを年末によく見かけますが、往々にしてそういうプロジェクトでは上流工程で中々仕様が確定せず(すでに間に合っていないスケジュールを要求されるということは、社内の決められない体質だとか、思いつきで事を運ぶ(仕様を変更してしまう)体質だとかが垣間見えるので)、プログラマ達が残業・徹夜対応しなければならない等になる可能性が高く、お金で解決しましょうと「特急料金」として50%割増のお見積りになる場合があります。経営者目線では年度内にとかいうのはすごくよく分かるのですが、「年内」とか「年度内」とかいうのは一旦忘れて、作成に必要なスケジュールとコストを開発会社と良くご相談される方が、プロジェクトがうまくいくかと思います。

運用費として請求される金額は、どの位このシステムをメンテしてくのが大変かに寄ってくるのですが、大体ver1.0を作成した時の金額の10%を上限に様々な金額が提示されるようです。24時間体制で監視が必要とか、コミュニケーション機能があるとユーザーが作成したコンテンツを検閲しなければならいとか、サーバー利用料もそこそこの金額になってくるとかになると思います。コチラも結局、その仕事をやるのに何人必要か?なので、1人をまるまる1ヶ月雇うと80万円となるのですが、大抵は他のシステムの保守と兼任になっているので、そこまで高額にはならないと思いますが、信頼度をどの程度担保したいかによっては高額になるケースもあるかと思います。

サーバー側プログラムも時間が経つにつれて古くなっていきますので、サーバープログラムの更新をした方が良いのですが、更新した途端プログラムが動かないなんてことも本当に起きますので、運用費はしっかり払って対応をお願いするか、運用費を抑えて、問題が起きた時にケースバイケースで別途お見積りとした方が良いかと思います。更新しないという選択肢はありません。顧客データがリスクに晒された結果、様々な会社で個人情報が盗まれるという事件が起きてますよね?

大規模システム(数億円+運用費~)
業務アプリケーションの作成、社内のDXなど

自社専用の業務アプリケーションをまるごと構築したいというレベルになってくると、非常に大きなプロジェクトになりますし、慎重に進めていく必要があります。10名を超えてくるとチーム内のコミュニケーションに必要な時間も積み上がってきますし、一人のSEでは設計できず複数人必要になったり、チーム制にして開発ディレクションも複数人で行う必要が出てくるかと思います。

基本的には小~中規模Webアプリの足し算のように考えていただければ良いかと思いますが、風呂敷を広げすぎていつ完成するかわからないという状況を作りだすよりは、バージョン1.0ではここまで、1.1ではここまでと小~中規模のバージョンアップを段階的に繰り返すことで大きくして行く方が良さそうに思えます。

この規模になるとお見積りも本当にピンキリになるかと思いますが、数億円規模の予算、1年~2年の期間を想定するようなイメージになるかと思います。

聞いた話の最大は、数十億円かけて6ヶ月で作成し、6ヶ月間テストし、6ヶ月間テストデータで運用テストをする銀行システムで、テスト項目が数万件あったそうです。

もっと安い見積もりがあるけれど?

上記の例は殆どバッファを乗せていないお見積りになります。ここからさらに20%~50%のリスク代、期間が上乗せさせるのが普通かと思いますが、逆にこのリスクが考慮されていない場合は注意が必要です。とにかく受注したいがためにリスクが計算されていないミニマムの見積もりの可能性が高く(特に設計前の2~4倍もずれる可能性があるタイミングでは)、仕様変更や問題発生で簡単にスケジュールが破綻し、追加コストの請求や、逆に期間を守るために仕様変更は一切認めず、現状で納品というトラブルになりかねないです。

前述の通り、お見積りは開発者の単価に寄るところが大きいです。上記の例はコンサバ気味に80万円で行いましたが、60万円だと25%やすくなります。オフショアですと30万円でやりますよという所もあります。が、価格はプログラマの質に関するバロメーターでもある点は注意が必要です。あまりにも安い=このITエンジニア不足でひっぱりダコな中、何故かその給料しかもらえないエンジニア=経験が浅いか勤務態度等何かしらの問題があると考えるべきです。

ソフトウェア会社なんてどこに頼んでも一緒でしょう?ならば一番安い所に発注した方が良いのではないの?とお考えでしょうが、プログラマの質によって変わる部分もあります。

・プログラミングスピード
・バグの少なさ
・将来起こりそうな問題を事前につぶせるか
・仕様の不明点について問い合わせを行えるか

オフショアの場合は、テキスト表示の正確さや勤務態度にも注意が必要です。海外では仕様にない(言われていない)ものは実装しないという態度が顕著で、動けば良いやとも考えられがちかと思います。日本側には責任者が立ち、向こうの国では日本語を理解できるブリッジエンジニアが立つので安心ですよというのが謳い文句ですが、弊社もオフショアでお願いしたことはないので正確に評価はできません。が、弊社のプロジェクトに参加した日本にいる海外メンバーはやはりテキストバグを起こしやすかったですし、日本語ができないことで問い合わせも結構遠慮がちではありました。(しょうがないことです)

開発費がえらく安い理由は他にも、本来必要な人員を配置していないので人数が少ない=安いという場合もあるかと思います。設計者が居ないのでプログラマが描きますとか、最悪仕様書を描かずに実装しますとか、テスターもプロを使用せずプログラマーが行いますとか。これらの問題は別のコラムに譲りますが、「本来必要な人」を削っているので非常にリスクの高い行為と言えます。

質に対するコストは将来のトラブル回避のための保険と考え、可能な限り質の高いプログラマにお願いした方が良いかと思います。回転寿司店・通常の寿司店・高級寿司店の値段の違いは何故かをご想像いただければ。

LUXALAの場合

弊社の場合は非常に緻密な要件定義書、仕様書、テスト仕様書、その他関連ドキュメントを描く反面、どうしても一人で可能な作業量を超えてしまうので、アシスタントと2名で開発ディレクション+設計という体制を取っています。その分設計段階の価格は前述のお見積もり例より上がってしまうのですが、以下のようにお考えください。まず、他社さんで設計2ヶ月、開発3ヶ月、テスト1ヶ月+バッファ1ヶ月のプロジェクトでSEが存在せず、プログラマを例えば5名集めてしまってから設計に必要な2ヶ月分を相談に費やし、手戻りが発生したのでバッファ1ヶ月も使用した場合は7ヶ月拘束ですので工数は35人月となります。バッファを使用しなかった場合も7ヶ月分請求されます。弊社の場合は設計で2×2人月、開発+テストで(5+2)x4=28人月、詳細な設計のお陰で手戻りは無く、バッファはほぼ必要ありませんので計32人月となります。

少人数の開発に弊社が入ってしまうとどうしても割高感が出てしまうのですが、開発が5人x4ヶ月程度の中規模以上の案件ですと、コストメリットも発揮しつつ、弊社の詳細な仕様書でスケジュール・コスト・クオリティに対するリスク低減も行えます。

ものすごく安い開発費で請けている他社様と比べると価格面では勝てませんが、リスク管理面ではご一考の価値があるかと思いますので、是非設計・開発に関してお問い合わせ頂ければと思います。