TOPお役立ち情報システム開発の外注先の選び方は?注意点や費用相場を解説

お役立ち記事

システム開発の外注先の選び方は?注意点や費用相場を解説

  • 依頼

自社システムを外注で開発するか、内製で開発するかというのは非常に悩ましい問題です。従来、特に大企業などは社内のシステム部門がシステム開発を担っていましたが、近年はシステム開発会社の増加やクラウド技術の発展などにより、システム開発を外注する企業も多くなっています。システムの目的や用途などによって、外注と内製を使い分けている企業も少なくありません。今回は、システム開発を外注するメリット・デメリットや外注先の選び方、費用相場などについて解説していきます。




■システム開発の主な種類

システム開発を検討する際の選択肢は、主に以下の4つになります。

01:パッケージ導入

02:パッケージのカスタマイズ導入

03:スクラッチ開発

04:ASPサービス導入

それぞれの特徴、メリット・デメリットなどを簡単にご説明します。

 

01:パッケージ導入

パッケージ導入とは、汎用的に使えるようにパッケージ化されたシステムを導入する方法です。パッケージ導入の最大のメリットは、導入コストを安く抑えられることです。ライセンス費用はかかりますが、後述するスクラッチ開発に比べると、初期費用を大幅に安く抑えられます。比較的早く導入できることや、パッケージ品として完成されたシステムなので不具合が起こりにくいことなども、パッケージ導入のメリットです。

一方で、パッケージに合わせて自社の業務フローを変える必要があるのはデメリットだと言えます。業務の運用ルールなどが変更になるため、慣れるまでに一定の時間がかかります。

02:パッケージのカスタマイズ導入

パッケージ化されたシステムをカスタマイズして導入する方法です。自社の業務に合った機能を追加して使いやすくできるのがメリットですが、多くの機能を加えたり複雑なカスタマイズをしたりすると、思いのほか費用が高くなってしまいます。それでも、スクラッチ開発よりはコストを抑えて導入できます。

03:スクラッチ開発

スクラッチ開発とは、ゼロからオーダーメイドでシステムを開発する方法です。スクラッチ開発なら、自社の業務フローに合わせた完全オリジナルのシステムを導入できます。また、ライセンス料などのランニングコストがそれほどかからないのもスクラッチ開発のメリットです。一方、デメリットとしては、初期コストが高額になることや導入までに時間がかかることなどが挙げられます。

04:ASPサービス導入

ASPサービスとは、インターネットを通してシステムやソフトを提供するサービスのことです。既存のシステムを利用するという点はパッケージ導入と変わりませんが、ASPはパッケージ導入のように自社のパソコンにインストールして利用するのではなく、ネット経由でクラウド上にあるシステムにアクセスして利用するのが特徴です。

ASPサービスは、ネット環境さえあればいつでもどこでも使えます。また、初期費用が安く、すぐに導入できるのもASPサービスのメリットです。ASPサービスの事業者側でメンテナンスや自動アップデートがおこなわれるため、自社でメンテナンスやセキュリティ対策などをおこなう必要がありません。

デメリットとしては、カスタマイズの自由度が低いことや、サービスが終了してしまうリスクがあることが挙げられます。また、料金形態は買い切りではなく月額のサブスクリプション制なので、長期利用になるとランニングコストがかさみます。


■システム開発を外注するメリット・デメリット

システム開発を外注する主なメリット・デメリットについてご説明します。

●システム開発を外注するメリット

▼メリット01:専門知識を持つ人材がいなくても開発できる

システム開発に関する技術は日進月歩で進化しています。企業が自社でシステム開発をしようと思ったら、不足している知識・ノウハウを補ったり、エンジニアを育成したり、環境を整えたりする必要があります。しかし、外注を活用すればこのような負担はなく、社内に専門知識を持った人材がいなくてもシステム開発をすることができます。

▼メリット02:コストを変動費化できる
システム開発を外注すれば当然、外注費がかかりますが、自社のエンジニアのように固定給や賞与は発生しませんし、社会保険料を負担する必要もありません。必要なときにだけ依頼できるので、固定費(人件費)を変動費化でき、コスト面で大きなメリットがもたらされます。

▼メリット03:開発費用を安く抑えられる可能性がある
社内にシステム部門を設けようと思ったら、決して少なくない投資が必要になります。システム開発費は外注先によって異なるため一概には言えませんが、社内にシステム部門を設置する場合に比べると、外注したほうが安く抑えられる可能性は高いでしょう。

●システム開発を外注するデメリット

▼デメリット01:目的に沿ったシステムを開発できないことがある
システム開発会社の実力は会社によって大きな差があるため、外注先選びを誤ってしまうと目的に沿ったシステムを開発できないおそれがあります。また、外注先の実力に問題がない場合でも、社内にシステム開発に精通した人材がいない状態で外注すると十分な品質管理ができないため、結果的に満足のいくシステムを開発できないケースもあります。

▼デメリット02:知見・ノウハウが蓄積されない
システム開発を外注していると、自社にシステム開発に関する知見やノウハウが蓄積されていきません。完全に外注に一本化するのであれば問題はありませんが、社内にエンジニアがいる場合や、将来的に内製に切り替える可能性がある場合などは、知見やノウハウが蓄積されないことはデメリットになるでしょう。

▼デメリット03:情報漏えいのリスクがある
システム開発を外注する場合、社内のデータを外部に引き渡すことになるため、どうしても情報漏えいのリスクが生じます。機密保持契約を締結するのが通常ですが、機密保持契約を結んだからと言ってリスクが下がるわけではありません。内製する場合に比べ、情報漏えいのリスクが高いということは認識しておくべきでしょう。

 


■システム開発を内製するメリット・デメリット
システム開発を内製する場合の主なメリット・デメリットについてご説明します。

●システム開発を内製するメリット

▼メリット01:臨機応変な対応ができる
システム開発の工程では、仕様変更や機能追加などの要望が出ることが多々あります。その場合、外注していると追加費用の問題が生じるなどして、いったん開発がストップしてしまうケースも少なくありません。仕様変更による追加請求が原因でトラブルになり、裁判にまで発展してしまう場合もあります。

一方、内製の場合は社内に開発チームがあるため柔軟な対応が可能です。運用フェーズに入ってからも機能改善やアップデートの必要がありますが、その際も内製のほうが臨機応変な対応が期待できるでしょう。

▼メリット02:スピーディーに開発できる
システム開発を外注する場合、見積もりや契約、仕様の擦り合わせなどで決して少なくない時間と手間がかかります。一方で、内製する場合はすべての手続きが社内で完結するため、スピーディーに開発を進められます。

▼メリット03:エンジニアの育成につながる
システム開発を外注していると社内に知見やノウハウが蓄積されませんが、内製する場合はプロジェクトごとに知見やノウハウが蓄積されていきます。社内のエンジニアのスキルアップにつながるほか、ノウハウを活用して新たなビジネスチャンスを創出する機会が増えるかもしれません。

●システム開発を内製するデメリット

▼デメリット01:コストがかかる
システム開発を内製するためには社内にエンジニアが必要です。エンジニアがいない場合は採用する必要があり、採用活動には決して少なくないコストがかかります。また、スキル・経験に乏しいエンジニアを採用した場合は、入社後の教育コストもかかります。もちろん、毎月の給与や賞与、社会保険料などの人件費も発生するので、短期的なシステム開発であれば外注を選択するのが賢明です。

▼デメリット02:優秀なエンジニアを獲得するのが難しい
ITエンジニアは慢性的な人材不足に陥っています。転職マーケットは活況ですが、優秀なエンジニアは引く手あまたなので採用活動は簡単にはいきません。実績に乏しいエンジニアであれば獲得しやすくなりますが、入社後に育成していくのも骨が折れますし、そもそも社内に優秀なエンジニアがいなければ新人を育成することもできません。

▼デメリット03:エンジニアの退職のリスクがある
自社でエンジニアを抱えている場合、どうしても退職リスクは避けられません。比較的多くのエンジニアがいる会社であればチーム内でバックアップすることもできますが、少人数でシステム開発をおこなっている会社の場合、一人が抜けるインパクトは大きく、プロジェクトが頓挫してしまうリスクもあります。

 


■システム開発の外注先候補と特徴
システム開発を外注する場合、外注先の候補はシステム開発会社かフリーランスのエンジニアになるでしょう。それぞれの特徴についてご説明します。

●システム開発会社
様々なシステム開発会社がありますが、フリーランスのエンジニアに外注する場合に比べると、クオリティ面で安心感があるのが大きなメリットだと言えるでしょう。

システム開発会社に外注すると、通常は複数のエンジニアがチームを組み、プロジェクトマネージャー(PM)のもとで開発を進めていきます。チーム内のエンジニアにスキルの差があったとしてもフォローする体制があるので、問題になることは少ないでしょう。また、細かく規定された契約書を交わすため、万が一のトラブル防止という意味でも安心感があります。

デメリットを挙げるとすれば、開発費が高いことでしょう。システム開発会社は組織としてシステム開発を請け負うため、後述するフリーランスのエンジニアに比べると料金は高くなります。システム開発会社を選定する際は、相見積もりをしたうえで入念に比較検討するべきです。

▼システム開発会社への外注がおすすめのケース
発注者側にシステム開発に関する専門性を持った人材がいない場合は、フリーランスのスキルを見極めたり、適切な品質管理をしたりするのが難しいため、システム開発会社に外注したほうがいいでしょう。また、大規模なプロジェクトの場合や予算にゆとりがある場合、期日厳守で開発を進めたい場合なども、システム開発会社に外注するのが賢明です。

●フリーランスのエンジニア
フリーランスのエンジニアとは、企業などの組織に属さず、個人で独立して仕事を請け負っているエンジニアのことを言います。

フリーランスのエンジニアに外注する最大のメリットは、開発費用を安く抑えられることです。実績・スキルが豊富なフリーランスに外注する場合も、システム開発会社に比べると大幅に安く開発できます。また、エンジニア個人と直接やり取りしながら開発を進めていくため、コミュニケーションがスムーズで小回りが効くのもメリットです。小規模なプロジェクトで、できるだけ安く開発したい場合などはフリーランスは有力な選択肢になるでしょう。

フリーランスのエンジニアは、既存のプロジェクトにジョインしてもらう際にも最適です。すでに開発が進んでいるプロジェクトにおいてエンジニアが退職してしまった場合や、ネックになっている部分がある場合などに、戦力・スキルを補うためにフリーランスに参画してもらうケースは少なくありません。

デメリットを挙げるとすれば、一人で開発を進めていることでしょう。病気やケガで仕事ができなくなった場合も代わりになるエンジニアがいないため、完全に開発がストップしてしまいます。また、社内に専門知識を持った人材がいない場合は、十分な品質管理ができないおそれがあるためフリーランスへの発注は現実的ではありません。

▼フリーランスへの外注がおすすめのケース
比較的規模の小さいプロジェクトの場合や、納期に余裕があるプロジェクトの場合、予算の制約が厳しい場合などは、フリーランスのエンジニアに外注するのがおすすめです。優秀なエンジニアに外注できれば、コストを抑えながら高品質のシステムを開発することができるでしょう。機能追加や細かい修正をスポットで発注したい場合も、小回りの効くフリーランスは頼りになります。

 


■外注すべきシステム開発会社の選び方
システム開発を外注する場合、「どこに外注するか」によってプロジェクトの成否は大きく左右されます。システム開発会社への外注を検討している際の、会社選びのポイントをご紹介します。

●ポイント01:クオリティ重視なら自社開発の会社に外注する
システム開発会社の業態は様々で、すべての開発業務を自社でおこなっている会社もあれば、プロジェクトの管理だけをおこない、開発業務は外部委託している会社もあります。また、自社開発と外部委託の両方の体制を持つ会社もあります。

自社開発をしている会社、もしくは自社開発比率の高い会社はエンジニアのスキルレベルが高い傾向にあり、優秀なエンジニアに担当してもらえる可能性も高くなります。また、自社開発であれば中間の業者を介さずにコミュニケーションができるので、細かい要望が伝わりやすく、迅速な対応が期待できます。一方で、外部委託している会社、もしくは外部委託比率の高い会社はエンジニアの実績・スキルが乏しい場合があります。また、コミュニケーションが2段階になるため、認識のズレが生じやすくなります。

クオリティを重視するのであれば、自社開発、もしくは自社開発比率の高い会社に外注するのがいいでしょう。ただし、開発費は総じて高めです。

●ポイント02:業績が安定している会社に外注する
開発したシステムは、その後5年、10年という長いスパンで運用していくのが通常であり、その間、機能改善やアップデートを繰り返していきます。それゆえ、運用中に開発会社がつぶれてしまうと非常に大きな影響を受けることになります。将来のリスクを見極めるのは簡単ではありませんが、少なくとも発注段階において業績が安定しているシステム開発会社を選ぶことが重要です。

●ポイント03:同種の開発実績が多い会社に外注する
システム開発会社を選ぶ際は、必ず開発実績を確認します。実績の多さも重要ですが、それよりも目を向けるべきは実績の種類です。たとえば、予約システムを開発したい場合に、会計システムの開発実績が豊富な会社を選ぶ意味はありません。システム開発会社が得意とする領域はそれぞれ異なるため、これから開発しようとしているシステムと同じ、もしくは同種の開発実績が豊富な会社に外注するのが理想です。

●ポイント04:コミュニケーション能力の高い会社に外注する
システム開発会社を見極めるうえで重要なポイントの一つが、コミュニケーション能力です。コミュニケーションがうまくとれないと認識にズレが生じ、「ボタンの掛け違い」のような状態で開発が進んでしまうことがあります。そうなると当然、意図したものとは異なるシステムになってしまいます。

通常、システム開発会社ではプロジェクトマネージャー(PM)が担当窓口となるため、PMのコミュニケーション能力は極めて重要です。質問に対して的確な回答が得られるか、発注者の課題やシステム開発の目的を正しく理解できているか、開発すべきシステムのイメージを共有できているかなど、コミュニケーション能力に問題がないかしっかりチェックするようにしましょう。

 


■システム開発を外注する際の注意点
システム開発を外注する際は、注意すべき点がいくつかあります。最低限、以下の4点は意識して外注するようにしましょう。

●注意点01:システムに求める仕様を明確にする
システム開発が失敗に終わる要因になるのが、発注者側が外注先に対してシステムの仕様を明確に伝えられないことです。基本的なことのように思えますが、「どういうシステムを作りたいのか」をうまく説明できない発注者は少なくありません。

システム開発会社は、発注者の要望に応じてシステムを構築します。「システム開発によって何を実現したいのか」「課題を解決するためにはどんな機能が必要なのか」といったことが明確になっていないと、システム開発会社側も要件を定義するのが難しくなります。

また、発注者がシステムに求めるものを整理しきれておらず、「あれもほしい、これもほしい」となってしまうことがあります。この場合も、無駄な機能を実装した使いにくいシステムになってしまう可能性があります。

発注側として心がけるべきことは、開発したいシステムの仕様をとことん考え、明確にしておくこと。求める仕様を整理して、優先順位を付けておくことです。技術的な知識がない場合、考えが及ばない部分が出てくるのはやむを得ませんが、システム開発会社からの質問に対して「それは考えてなかった」「そこはお任せします」といった返答が少なくなるようにしておきましょう。

●注意点02:費用だけで外注先を選ばない
安さで差別化を図るシステム開発会社もありますが、相場に比べて開発費が安すぎる会社は避けたほうがいいでしょう。

システム開発は、エンジニアのスキルが高いほどプロジェクト全体の見積もりも高くなるのが通常です。逆に言えば、相場を大きく下回る見積もりを出す会社はエンジニアの技術力が疑われます。安いからという理由だけで外注先を決めてしまうと、まったく使えないシステムが生まれてしまう可能性があります。いくら安くても、プロジェクトが失敗に終わり、やり直しになるダメージは計り知れません。

複数のシステム開発会社に相見積もりをとってみて、突出して安い会社があったら要注意です。少なくとも安い理由を確認すべきであり、納得のいく理由でなければ外注すべきではありません。

●注意点03:外注先にシステム開発を丸投げしない
システム開発会社が決まったら、あとは「丸投げ」という発注者もいますが、これも失敗の要因になります。発注者側としては丸投げできれば楽ですが、丸投げしてうまくいくのは、長年の付き合いがあり何度もシステム開発を発注している会社に限られます。

初めて依頼するシステム開発会社であれば、発注者側もプロジェクトに積極的に関与して、開発中もコミュニケーションを欠かさないことが重要です。そうすることで、細かい認識違いを修正できることもありますし、トラブルが生じたときもスピーディーな対応が期待できます。また、システム開発を請け負う側にも緊張感が生まれるので、結果的に納品されるシステムの品質も高くなります。

●注意点04:運用方針も視野に入れる
システム開発が終わったら運用フェーズに入ります。問題なく運用できているかを継続的に管理し、定期的にメンテナンス作業をしていきます。また、緊急度が高い不具合が生じた場合は迅速に対応しなければいけませんし、機能追加や仕様変更が必要になるケースも少なくありません。

社内にシステム運用の担当者がいない場合は、運用・保守までサポートしてもらえるシステム開発会社を選ぶのがいいでしょう。その場合は当然、運用も見据えて予算を組む必要があります。一般的に、システムの運用費は初期費用の10~20%程度が目安だとされています。


■システム開発外注における失敗事例

システム開発の外注は、実にその約半数が失敗に終わるとも言われます。外注する前に、よくある失敗事例とその対策を押さえておきましょう。

●希望した納期に間に合わなかった・・・

システム開発を外注したけど、希望した納期にシステムが完成しなかったというのはよくある失敗事例です。システム開発がスタートしてからの仕様変更や、双方の認識違いから手戻りが発生したりすると、それが原因で納期遅延が生じます。開発工程の終盤に差しかかってから仕様変更や手戻りがあると、もはやリカバリするのは困難です。

原因と対策

システム開発に限った話ではありませんが、悪い知らせは共有されにくいものです。スケジュールに遅れが出ていても顧客に報告せず、納期間際になって「すみません、間に合いません」と言われるケースは多いようです。また、システム開発の業界全体として「納期遅延は当たり前」といった風潮もあります。

システム開発の納期遅延を防ぐには、外注先に任せきりにせず、こまめにコミュニケーションを図り、常に進ちょく状況を把握しておくことが大切です。もし、スケジュールに遅延が生じているようであれば、その理由を確認して早めに手を打ってもらわなければいけません。また、開発スケジュールはどうしても短く計画しがちです。そのため、要件定義や詳細設計が終わった段階で納期を見直すことも重要ですし、当初からスケジュールにバッファを設けておくのも一つの手です。

 

●当初の予算をオーバーしてしまった・・・

システム開発を外注したけど、予想以上に開発費が膨らんで、当初の予算をオーバーしてしまうのもよくある失敗事例です。当初の要件定義から仕様が変更されたり、開発すべき機能などが追加されたりすると、そのぶんコストも加算されます。大幅な仕様変更がある場合や、要件の追加が多い場合などは、当初の予算を大幅に上回ってしまうこともあります。

原因と対策

システム開発において、もっとも重要だと言われる工程が要件定義です。要件定義では「どのようなシステムを開発するのか?」「どんな機能を実装すべきか?」といった要件を定義して、それをもとに開発を進めていきます。

仕様変更や追加作業などによるコスト超過が起きるのは、要件定義が不十分であるケースがほとんどです。予算オーバーを防ぐためには、事前に必要なシステム・機能について考え尽くし、精度の高い要件定義をおこなわなければいけません。

 

●意図していないシステムができあがった・・・

多くの企業は、コスト削減や効率向上を掲げてシステム開発を外注します。しかし、できあがったシステムがまったく意図していないものだったという失敗事例も多々あります。少なくないコストと時間を費やして開発したシステムが業務の役に立たず、使われないまま放置されるという悲劇は何としても避けたいものです。

原因と対策

意図していないシステムを作らないようにするには、システム開発会社と質の高いコミュニケーションをとる必要があります。そのためには、発注者側にシステム開発に関する最低限の知識が求められます。

システム開発に関する基礎知識を持たない担当者が、「プロなんだから意図を汲んで作ってよ」と丸投げすることもありますが、このスタンスでは高い確率で失敗に終わるでしょう。システム開発の基礎知識を身に付けたうえで開発会社の担当者と質の高いコミュニケーションができれば、双方が共通の認識を持って開発を進められるため、失敗のリスクを低減できます。


■システム開発を外注する場合の費用相場
システム開発にかかる費用の内訳は「直接費」と「間接費」に分類できます。システム開発費用は「直接費 + 間接費」で計算されます。それぞれについて詳しくご説明しましょう。

●直接費
システム開発費用のうち、6~8割を占めるのが直接費です。直接費は、システム開発を担当するエンジニアの人件費やシステム開発会社の利益などで構成されています。

システム開発会社では、プロジェクトの開始にあたってプロジェクトチームが組まれます。通常、プロジェクトチームは、以下のような役割・ポジションの人で構成されています。

・プロジェクトマネージャー(PM)
システム開発のプロジェクト全体をマネジメントする役割です。

・プロジェクトリーダー(PL)
プロジェクトマネージャーを補佐するポジションです。大規模案件ではプロジェクトリーダーが置かれますが、小規模案件では置かれないのが一般的です。

・システムエンジニア(SE)
システムの設計など上流工程を担うエンジニアです。

・プログラマ(PG)
システムエンジニアの設計をもとに、実際にプログラムを書くエンジニアです。

直接費は「エンジニアの単価 × 工数」で算出されます。エンジニアの単価の目安は以下のとおりです。あくまでも目安の金額であり、大手のシステム開発会社なのか中小のシステム開発会社なのかによっても変わってきます。

・上級システムエンジニア、プロジェクトマネージャー:120~160万円
・中級システムエンジニア、プロジェクトリーダー:80~120万円
・初級システムエンジニア:60~80万円

たとえば、単価が80万円のエンジニア3人で3ヶ月かかるシステム開発の直接費は、80万円 × 3人 × 3ヶ月 = 720万円という計算になります。

●間接費
直接費に加算されるのが間接費で、システム開発費用の20~40%を占めます。間接費の具体例としては、以下のようなものが挙げられます。

・システム開発をするために必要な設備費(パソコン代、サーバー代、クラウドサービス代など)
・エンジニアの交通費
・オフィスの賃料・電気代・光熱費 など

 


■まとめ~システム開発は外注パートナー選びで成否が変わる
システム開発を外注する場合、その成否は外注先選びの段階でほぼ決まっていると言っても過言ではなく、それだけ外注先の選定は慎重におこなわなければいけません。大規模なプロジェクトはシステム開発会社に依頼するべきですが、小規模な開発案件はフリーランスのエンジニアも候補になってきます。いずれにしても外注先のスキル・実績をしっかりと見極めて、後悔のないシステム開発をおこないましょう。

フリーランスを積極的に活用する企業には、フリーランスに特化した発注・請求管理システム「pasture」が役立ちます。取引をするフリーランスが増えるほど管理が大変になってきますが、「pasture」ならその心配はありません。フリーランスに発注した仕事内容や書類をすべて保存でき、スキルや社員からの評価も一元化できる「pasture」の詳細はこちら

※ pastureでは通常、企業と取引するフリーランスや協力会社を「パートナー」と呼称しますが、本記事中では説明のために便宜、外注(外注先)などの用語を使用している箇所がございます。



フリーランスマネジメントツールはpasture(パスチャー)