くらべてみた!自社開発と外注のメリット・デメリット

システム開発には自社で開発を行う自社開発と、外部のシステム開発会社に依頼する外注があります。自社開発と外注ではどちらを選択すれば良いのでしょうか。加速する事業環境や市場の変化に対して、スピーディーに対応するためには、最適な方法を選択する必要があります。選択を行うに際して、それぞれのメリットとデメリットを本記事でわかりやすく説明します。

 

1.自社開発とは

自社開発とは自社でシステム開発を進める方法です。開発したシステムは利用もしくは販売することを目的とします。システム開発自体は「システムの利用者が誰になるのか」によって2つに大別できると言えます。

自社の企業内で利用するシステムを開発
具体的には情報システム部門やIT部門などによって、自分たちが社内で利用する基幹システムや業務システムなどを企画・設計し、構築することになります。自社開発の中でも、自社のリソースを使用して開発を進めるため「内製」とも呼ばれます。

 

自社の企業外のユーザーが利用するシステム
こちらはソフトウエアパッケージやSaaSなどを開発・販売する企業が、販売を目的とした商品を自社のエンジニアやツールなどのリソースを利用して設計・開発するケースです。

 

2.外注とは

自社開発が自社内の情報システム部門やIT部門のエンジニアで完結することに対し、外注とは、その名の通り「自社以外の企業に開発を依頼すること」です。

システム開発を外注で開発を進める場合、複数の開発会社に対してRFP(Request for Proposal:提案依頼書)を依頼し比較検討の後、自社の希望に合った会社と契約を結ぶのが一般的です。RFPの提出まで求めない場合でも、複数の開発会社から見積書を入手し、比較検討した上で最適な開発会社を選択しましょう。近年はインドやベトナムなどの海外の開発企業に依頼する「オフショア開発」を検討するケースも増えています。

いずれにせよ自社開発と外注とも、システム開発を行う点に違いはありませんが各々特徴があり、メリットとデメリットがあります。こうした点を理解した上で、最適な方法を選択しましょう。

 

3.自社開発のメリット・デメリット

1)自社開発のメリット

①環境変化に対して、迅速且つ柔軟な対応が可能
まず環境変化に対する迅速な対応が可能な点です。自社を取り囲む事業環境や市場の変化は加速し続けています。変化に応じたシステムの刷新や改修は、外注した場合は臨機応変な対応が難しくなりがちです。
一方、自社開発では、自社内にリソースとアセットがあるため、迅速に対応することが可能といえます。システム開発を外注した場合、SIer(System Integrator:システムインテグレーター)やベンダーの事情によって柔軟なシステム開発が困難になることがありますが、自社開発の場合は柔軟な対応が可能になるでしょう。
②迅速な障害対応が可能
システム障害が発生したときに迅速に障害対応や復旧対応が行える点はメリットの1つです。自社で開発を行っているため、開発担当者やシステムのソースコードなどの情報、データが社内に存在します。また、ユーザーの業務オペレーションの知見が自社内にあることも、代替の対応策を講じることができるため、障害対応時にメリットになります。
システムが外注されている場合は、外注先の企業への連絡から始まり、障害の発生箇所の特定や原因究明に時間や手間がかかります。
③人材育成を行うことができる
自社開発の場合、開発担当のエンジニアや開発したシステムに関わるさまざまなデータが存在するため、システムの全容を把握することができます。したがって社内でナレッジが蓄えられ、社内のIT人材の育成やシステムに関するノウハウを蓄積することができます。
④開発速度の向上を図ることができる
システムの開発や改修には、数ヵ月~数年単位の長期間の時間を要します。外部のシステム開発会社に依頼した場合、要件の理解のためのコミニュケーションや契約等の時間が必要となります。しかし自社開発の場合はこうした時間を削減できるため、仕様決定から開発までの時間を短縮できます。

 

2)自社開発のデメリット

続いて自社開発のデメリットについて説明します。

①新しい開発技術に対する取り組みが減ること
自社開発は同じ技術による開発が多くなる傾向が増えると言えるでしょう。自社開発は失敗の許容度が低くなるため、新しい技術に対する挑戦が減少しやすいといえます。
②システム品質の担保の課題
自社開発は、システム開発を専門とする会社に依頼する場合と比べて、技術や知識、ノウハウについて第三者の視点からシステムを評価・検証する仕組みが不足することがあるため、システムの品質が劣る可能性があります。
③人材の確保・育成が困難
自社開発では開発エンジニアの人材確保が欠かせません。しかしIT領域の人材不足が常態化するなか、優秀な人材の確保が難しくなっています。また、社内で育成を行う場合においても、人材育成のノウハウの蓄積から始める必要があります。
④システム担当者の離職・入れ替えのリスク
システムの運用維持を一部の担当者に依存する状態が発生すると、その担当者が退職した途端にシステムのメンテナンスやアップデートが滞ることが起こります。担当者が変わる度に引継ぎの工数の必要性が懸念されます。

 

4.外注のメリット・デメリット 

外注のメリット・デメリットについて以下に説明します。

1)外注のメリット

①自社での人材雇用をする必要性を削減できる
外注はシステム開発をアウトソースするため、外注先の人材リソースを利用できます。そのため、自社でシステム開発に関わる人材やエンジニアを抱えることが不要になります。システム開発が完了した後も、人材をリソースを持て余すことがなくなるので、過剰なコストを抱える必要がありません。
②開発環境に対する追加投資の必要性を削減できる
システム開発には人材リソースのみならず、サーバーなどのハードウエアや開発ツールなどソフトウエアなどの開発環境が必要です。さらに大規模プロジェクトの場合は、専用の開発スペースとしてビルのフロアや部屋を一時的に賃貸するなどの準備が必要です。外注した場合は、こうした開発環境の準備や維持管理の負担を削減できます。
③希望するスケジュール通りに開発を進めやすい
システム開発を外注する場合、ノウハウが蓄積された専門のシステム開発会社を利用するため、スケジュール通りに開発を進めやすいメリットがあります。
④最新ノウハウを開発に盛り込むことができる
システム開発会社では専業ゆえに最新の開発ノウハウの提供に努めています。そのため、システム開発のプロセスにおいて最新のノウハウをシステム開発に盛り込むことができます。

 

2)外注のデメリット

続いてシステムを外注したときのデメリットについて、以下に説明します。

①自社開発とコストが変わらない場合がある
案件や開発会社ごとに金額は異なりますが、外部のリソースを利用することにより、自社のリソースを利用した場合と変わらない~多少コストが増える可能性があります。外注時にできる対応は自社開発よりも多い場合もありますが、開発の目的や予算などを見失わずに判断しないと、デメリットに結びつくこととなるので注意が必要です。
②成果物の品質に満足できないことがある
発注側と外注先の開発会社の間でコミュニケーションに課題があったり、理解や認識に齟齬があったりと、しっかりと要望を伝えられないまま開発が進んでしまう場合があります。このようなケースでは要件定義で定めた仕様や機能と成果物の間に乖離が生じてしまい、成果物に満足できないことが起こりえます。
③セキュリティリスクに対する注意が必要
外部の企業にシステム開発を依頼する際に、顧客データや取引先情報などの機密情報を提供することがありますが、開発のプロセスやネットワークからあるいは不正アクセスなどによって機密データが漏洩するリスクがあります。そのためセキュリティの確保が極めて重要になります。

 

5.自社開発か?外注か?選択時のポイント

自社開発が良いのか、外注が良いのか判断する際は、さまざまな視点から考えると良いでしょう。以下にいくつかの事例をご紹介します。

【例1:中規模(100~300名)の自社で使用する基幹システムの開発】

優先順位:最速で開発、社内の工数最小で開発したい
状況  :社内の工数が不足、最速での開発はできない

総合評価 内訳
社内工数 予算 早さ 安全性
自社開発
外注

⇒注意すべき点:予算と外注時に必要な費用とのチューニング

上記の開発の場合は、そもそも社内の工数が優先順として挙げられる「最速での開発」を実施できるだけの確保ができないという点からも、自社開発は選択肢として難しいと推測できます。ただし、状況によっては優先順位自体の見直しが必要になる場合もあるので、条件や状況を鵜呑みにせずしっかりと検討することが重要です。

 

【例2:小規模(10~100名)の自社で使用する業務系システムの開発】

優先順位:業務効率や生産性の向上を図りたい
状況  :社内の人的リソースやITスキルが不足している

総合評価 内訳
社内工数 予算 早さ 安全性
自社開発
外注

⇒注意すべき点:外注したからといってプロジェクトを丸投げしない!
一般的に小規模の会社の場合、そもそも人的リソースが不足しているケースが多くあります。システム開発を行うことができるIT担当者がいない、担当者のITスキルや開発スキルが不足している、複数の業務を掛け持ちしていることなどが制約となる可能性が高いと推測できます。そのため、ノウハウや経験値が豊かな外部のシステム開発会社に依頼した方が、最終的に満足できる成果を得られる可能性があります。一方で、発注先の業務内容や課題についてはしっかりとコミュニケーションを行い、業務の課題解決を行えるシステム開発を行う必要があるでしょう。

 

【例3:小〜中規模(10~300名のWeb系システムの開発】

優先順位:自社のビジネスモデルの構築に必要なシステムを迅速に開発したい
状況  :Web系のシステムが自社の事業運営に必要な重要な要素である

総合評価 内訳
社内工数 予算 早さ 安全性
自社開発
外注

⇒注意すべき点:自社の工数やスケジュールを立て、実現可能な方法をしっかり関係各社ですり合わせる
スタートアップやベンチャー企業にとって、Web系のシステムは事業運営に必須の要素となるケースが多くあります。
そのため、アジャイル型でスピーディにシステムを開発する必要がある時は自社開発の方が適しているでしょう。自社のビジネスモデルや事業内容を深く理解し、高度なITスキルを有している人材やチームが存在する場合は、自社開発を行うことで、競合にもアドバンテージを持てます。一方、こうした人材の離脱やチーム運営がうまく機能しなくなった場合は開発やリリースに影響が出る可能性があるため、チームマネジメントも考慮する必要があるでしょう。

 

6.まとめ

本記事ではシステム開発について、自社開発と外注のそれぞれの方法について、メリットとデメリットを説明しました。まずはシステム開発を行う目的やシステムの用途、自社の環境等をしっかり整理・理解した上で最適な方法を選択するようにしましょう。第三者視点として、システム会社にしっかり開発の目的や予算を伝え、実現可能な手段を判断することが重要です。情シスNavi.では、本コラム以外にも情報システムの開発に関わるさまざまなコンテンツを提供しています。是非確認してみてください。

関連記事

カテゴリー:

ナレッジ情シス知恵袋

情シス求人

  1. チームメンバーで作字やってみた#1

ページ上部へ戻る