システム開発は、「外注」で進める場合と「内製」で進めるケースが選択できます。
外注と内製にはそれぞれメリット・デメリットがあるため、自社の社風や予算、課題に合う方を選ぶことが大切です。そこで、この記事では外注と内製の違いについて、メリット・デメリットと共に詳しく解説します。
また、外注先を選ぶポイントや、外注でシステム開発を成功させるポイント、おすすめの外注先も紹介しますので、ぜひ参考にしてください。
目次
システム開発の方法には、大きく分けて「内製」と「外注」の2つがあります。
システム開発を進めるなら、まずはこの2つの違いを押さえておきましょう。
外注 |
システム開発を自社以外の企業に依頼すること |
内製 |
システム開発を自社で実施すること |
外注と内製のどちらで開発を進めるとしても、「システムを完成させることができる」点は共通しています。
一方、外注と内製にはそれぞれ異なるメリットとデメリットがあります。
したがって、システム開発を進める際は、両者の特徴やメリット・デメリットをきちんと把握した上で比較検討しましょう。
システム開発の概要や契約形態に関して、詳しくは以下のページもご覧ください。
外注とは、「システム開発を自社以外の企業に依頼すること」を指します。
外注の流れは、最初に複数の外注先候補企業で相見積もりを出して比較検討し、自社の希望や目的に合った企業を選び、契約を結ぶ工程が一般的です。
システム開発を外注すると、外注先企業のスタッフがシステム開発を担当してくれます。
契約内容に含まれていれば、プログラミングだけでなく、要件定義の設定やプロダクトのテスト、リリース後の保守点検、運用など一連の業務を担います。
また、外注先のスタッフには自社のオフィスに常駐してもらうのか、それともスポットで来てもらうかといった勤務形態も選択可能です。これらは契約段階でしっかり希望を伝えましょう。
内製とは、「システム開発を自社で実施すること」を言います。具体的には、システムに関して「開発」「保守」「運用」「改善」を自社で担うことを指します。
内製でシステム開発を進める場合、最初に必要なのは、開発担当メンバーを集めてプロジェクトを立ち上げ、社内のエンジニアに業務を依頼することです。
また、システム開発では、エンジニアだけでなくプロジェクトマネージャーや事務スタッフなども必要です。
もし、システム開発を担当できるだけのスキルを持つエンジニアが不足している場合は、子会社やグループ会社に協力を依頼することもあります。
システム開発を外注するメリットとデメリットには、主に以下の点があります。
メリット |
希望スケジュールどおりに開発を進めやすい |
自社でシステム責任者を雇用する必要がない |
|
契約内容によっては設備に追加投資する必要がない |
|
システム開発の最新ノウハウを吸収できる |
|
請負契約なら無料で修正に応じてもらえる |
|
デメリット |
内製と比較をすると費用が高くなることが多い |
情報漏洩リスクの可能性がある |
外注は、システム開発のプロに任せられるため自社の手間が省ける一方、コストが高くなりやすいです。
以下では、外注のメリットとデメリットについて、それぞれ詳しく解説します。
システム開発を外注した場合のメリットは、契約内容にもよりますが、次のような点が挙げられます。
外注先の企業はシステム開発を担うITのプロフェッショナルなので、自社の希望どおりのスケジュールで開発を進めてくれます。
また、自社でシステムに精通した人材を新たに採用・育成する手間が省ける点も大きなメリットです。
さらに、外注は成果物に対して報酬を支払う「請負契約」であることが多いため、完成して引き渡しを受けたシステムに不具合があった場合、契約の内容を実現できていないとして無料で修正に応じてもらえます。
システム開発を外注した場合のデメリットは、主に以下の点です。
やはり、外注は自社ですべて担う場合に比べるとコストが高くなりやすいです。既存のシステムから大幅な変更が必要だったり、高いスキルのスタッフが多数必要だったりすると、委託費も上がります。
コスト面以外のデメリットとしては、情報漏洩リスクが挙げられます。システム開発では、顧客情報や従業員情報などの機密情報を扱うことが多いため、外注だとこれら重要な情報が漏れるリスクが高まるのです。
他にも、外注スタッフと自社の社風が合わない、外注スタッフが自社のルールに合わせてくれないなどのミスマッチングが生じる可能性もあります。
また、外注先のマニュアルで開発を行うため、せっかく立派なシステムが構築できても、そのノウハウが自社に残りにくい点はデメリットです。
システム開発を内製で進める場合のメリットとデメリットには、以下の点が挙げられます。
メリット |
従業員の成長につなげやすい |
必要な情報を共有しやすい |
|
情報漏洩のリスクが減る |
|
システム開発のノウハウが社内に蓄積しやすい |
|
コストを抑えやすい |
|
デメリット |
開発が計画どおりに進まずコストが発生しやすい |
人手不足になりやすい |
|
開発全体を管理できる従業員が必須な場合がある |
|
システムの完成後にエンジニアを持て余しやすい |
内製は、情報の伝達や共有がスムーズにいきやすく、外注よりもコストを低く抑えられやすい点が大きなメリットです。
一方、思ったより手間がかかり、かえって余計なコストが生じてしまったり、開発に必要な人材が揃えにくい点がデメリットにあたります。
システム開発を内製で進めた場合のメリットには、次のような点が挙げられます。
システム開発を社内で行えば、課題や解決手段など従業員が共有すべき情報が伝達しやすいため、その分業務をスムーズに行えます。
また、プロジェクトで得た知見やノウハウも共有しやすく、財産として蓄積できるため、再び同じようなシステム開発があった際に大いに役立つでしょう。
さらに、内製でシステム開発が上手くいけば、外注よりもコストを低く抑えられる点も大きなメリットです。
システム開発を内製で進めた場合のデメリットは、主に以下の点です。
内製で進めた場合、スキルの高いエンジニアやIT精通者が足らず、途中でトラブルや遅延が生じ、かえって余計なコストが発生する危険性があります。
また、日常的にシステム開発を行っていない企業の場合、開発に適した人材を集めにくいこともデメリットです。
さらに、システムが完成に至ったとしても、そこでスキルを得たエンジニアがそのあと活躍できる場がなく持て余しやすいといった問題も生じます。
システム開発の外注は、外注することでメリットがある企業を選択するのがよいでしょう。
外注がおすすめな企業の特徴は、以下の通りです。
以下では、上記4つの点について詳しく説明します。外注が適しているのは、エンジニアやIT精通者が不足している企業だけではありません。
自社が当てはまるかどうか、ぜひ参考にしてみてください。
社内にシステム開発やITに詳しいエンジニアがいない、または足りないのであれば、システム開発会社に外注する方が効率的です。
社内で一からスキルの高いエンジニアを育成する・新たに人材を採用するとなると、多大なコストと時間がかかります。また、システム開発ではエンジニアだけでなく、マネジメントができる人材も育成しなければなりません。
その点、システム開発会社のスタッフは、スキルや知識、経験豊富です。自社の従業員だけでは思い付けなかった要件定義などを発案してくれることもあります。
さらに、ITのプロフェッショナルなので、情報セキュリティ対策もしっかりやってくれるので安心です。
計画しているシステム開発が大規模なものを予定している企業は、システム開発会社に外注した方が効率的です。なぜなら、大規模になればなるほどプログラミングの技術だけでなくマネジメントやコミュニケーションスキルも高度なレベルが求められるからです。
また、大規模な開発の場合は相応の人数も必要になります。中小企業などでIT担当者が1~2人しかいない場合は、外注を選ばざるを得ないでしょう。
IT精通者がいないわけではなく、エンジニアと共にシステム開発を行ってみたものの、さらに効率よくプロジェクトを進行させたい場合も、外注がおすすめです。
自社のスタッフだけで試行錯誤することは悪いことではありませんが、二度手間だったり余計なコストが生じたりする懸念があります。
この場合も、システム開発会社に外注した方が手間もコストもかからずに済む可能性が高いです。
また、自社である程度進めた状態であれば、外注先としても短時間で完成できるので、コストを安く抑えられる可能性があります。
自社で使用しているシステムが老朽化したためリプレイスが必要になった場合も、システム開発会社に外注するのがおすすめです。
なぜなら、リプレイスはシステム全体を取り替えなければならないケースもあるため、大規模プロジェクトになる可能性が高く、高度に専門的な技術やマネジメント力が求められるからです。
また、リプレイスが成功したあとも、正常に動作・機能するかなどを点検し、トラブルがあればすぐに修正する必要があります。
リプレイス後の保守・点検、運用は、自社のスタッフにとってはかなりの負担です。この点、システム開発会社に依頼すれば、すぐに修正の依頼に応じてもらえます。
システム開発を外注することが決まったら、できるだけ自社に合った会社を選ぶことが大切です。
良い外注先を選ぶには、いくつかのポイントがあります。中でも外せないポイントは以下の通りです。
以下では、上記3つのポイントについて詳しく説明します。大切なのは、安さだけで判断しないことです。
外注先を選ぶ際は、まず、システム開発担当者のコミュニケーションスキルに長けているか確認することが大切です。
システム開発ではITの知識とスキルが重要なのはもちろんですが、プロジェクトを遂行するのは、最終的には人です。
開発を成功に導くためには、チームを上手くまとめたり、情報伝達をスムーズに行ったりなどのコミュニケーションスキルが重要になってきます。
したがって、システム開発会社の担当者とは必ず密に話をし、スムーズなコミュニケーションがとれそうかどうかを判断しましょう。
外注候補先の企業が、これまでどれくらいの開発実績を有するかも大切な判断ポイントです。
システム開発会社によって、得意分野や特徴はさまざまです。会社の公式サイトなどを見て、今までの開発実績を調査し、類似のシステムの開発実績があるかどうかを調べましょう。
仮に長年の歴史がある会社でも、自社が求めるようなシステムの開発経験がなければ、候補から外した方がいいかもしれません。
会社のサイトで調べられなければ、会社に直接「情報依頼書」を送り、基本情報や開発実績などを記入してもらうよう依頼することもできます。
外注候補先が、自社のシステム開発をどこまでフォローしてくれるか、具体的に確認することも大切です。
要件定義の決定からプログラミング、動作テスト、リリース後の保守・運用などあらゆる工程をサポートしてくれるかどうかは、会社によって異なります。
また、自社が希望する条件ではサポートを断られる可能性もあるでしょう。
したがって、自社が希望する条件を満たしたシステム開発をしたいなら、あらかじめどの工程までフォローしてもらえるのか確認しましょう。
システム開発を外注する流れは、以下の流れが一般的です。
1 |
外注先の選定(提案依頼書提出) |
2 |
要件定義 |
3 |
設計 |
4 |
プログラミング |
5 |
テスト |
6 |
納品 |
7 |
保守・運用 |
なお、外注先を選定する際は、提案依頼書(RFP)を作成し、開発したいシステムの内容や希望納期などの取り決めをする必要があります。
ここで希望を明確に伝えておかないと、あとでトラブルになったり、開発が希望どおりに進まなかったりなどの不利益が生じます。
したがって、最初の段階でどのようなシステム開発をしたいのかをはっきりとわかりやすく説明できるようにしておきましょう。
提案依頼書は、候補先の会社すべてに提出し、相見積もりをしつつ、自社に最適な開発会社を選びましょう。
システム開発の外注費用には、大きく分けて「人件費(開発費)」と設備費があります。
外注費用は開発するシステムの規模や内容、チームの人数などによって変わります。また、会社によっても異なることが多いです。
そこで、以下では外注費用の相場と内訳について解説します。
費用の内訳や大体の相場を知っておけば、外注先選定の際の見積もりについても判断がしやすくなるため、ぜひ参考にしてみてください。
人件費は、各工程にかかる「工数×単価」にエンジニアの単価をかけて算出します。
工数とは、1人が1日8時間、20日働いたときの作業量を1として考えた際の数値です。
工数はプロジェクトの規模によって大きく変わります。また、難しい工程を担当するエンジニアほど単価が高いです。
たとえば、プログラミングを担当するプログラマーは月70万円〜、設計を担当する上級エンジニアは月100万円〜が相場です。
もっとも、実際の人件費はプロジェクトの規模、チームの人数、工程数などにより変動します。
システム開発を外注するにあたって、人件費の他に設備費がかかります。
設備費に含まれる項目は幅広く、サーバーやハードウェア、セキュリティライセンスなどが該当します。
システムを一から構築し、完成させる場合の設備費はトータルで数百万〜数千万円と幅広いです。
開発の内容によって必要な設備費は大きく変わるため、あとになって「想定よりもかなりオーバーしてしまった」という事態にならないよう、見積もりはしっかり確認しましょう。
システム開発の外注を成功させるポイントについて、「外注前」「外注後」に分けて解説します。
外注前のポイントは以下の通りです。
以下では、上記4つのポイントについて詳しく説明します。特に、外注前は自社の課題や希望を明確にし、契約の際は内容や見積額をしっかり確認することが大切です。
システム開発の外注にあたっては、「自社がどういったシステムを作りたいのか」について明確かつ具体的に説明できるよう準備しましょう。
システム開発会社は、依頼主の要望に応じてシステム開発のプランを練ります。「課題解決のためにはどのような機能が必要か」が明確になっていないと、プランやスケジュールが立てられなくなります。また、精度の高い要件定義の設定も難しくなり、完成物のクオリティが下がる原因にもつながるのです。
したがって、外注の際は「何を作りたいのか」「どういう課題を解決したいのか」をはっきりさせておきましょう。
外注先を決める際は、見積額の安さだけで決めないようにしましょう。
安さが売りのシステム開発会社もありますが、あまりに安すぎる見積額を提示してくる場合は、品質に問題があるケースがあります。
なぜなら、そのような会社はエンジニアのレベルが低い可能性があるからです。
システム開発は、エンジニアのスキルが高いほど見積額も高額になる傾向があります。また、システム開発のクオリティを担保したいなら、多少高額でもスキルレベルの高いエンジニアやプログラマーに任せましょう。
低品質のシステムを納品されても、あとで修正やメンテナンスの費用がかさみ、かえってコストが高くついてしまっては元も子もありません。
外注先を決める際は、コスト面の考慮も大切ですが、安さではなく自社の課題を解決してくれそうかどうかで判断しましょう。
システム開発を外注する場合は、システムが納品されるまでの費用だけではなく、保守・運用費も予算に含めて見積額を検討しましょう。
システムは、完成して終わりではありません。そのあとも定期的な点検や保守、トラブルが生じた際の対応が必要です。
もし、自社にそれらに対応できる人材がいなければ、外注先に依頼することになります。その分、保守・運用費用がかかります。
したがって、システム開発の外注では、予算に保守・運用費用も含めるのを忘れないようにしましょう。
外注先と契約を締結する際は、契約内容をしっかり確認することが大切です。
外注の場合の契約の種類には、システムの成果物に対し報酬を支払う「請負契約」と、外注先スタッフの労働自体に報酬を支払う「準委任契約」があります。
システム開発の場合は「請負契約」が多いですが、システムの保守・運用は「準委任契約」であることが多いです。
また、機密保持契約(NDA)の締結も必要です。また、知的財産権がどこに帰属するかや、トラブルが生じた場合の責任の所在などについてもきちんと決めた上で契約締結しましょう。
続いて、システム開発の外注を成功させる「外注後」のポイントについて解説します。
外注後のポイントは以下の通りです。
以下では、上記2つのポイントについて詳しく説明します。
大切なのは、システム開発を外注すると言っても、すべてを丸投げするのではなく、自社で関わるべき所には関わり、契約や業務内容をしっかり確認することです。
システム開発では、開発会社側で作成した要件定義書の内容をしっかり確認することを忘れないようにしましょう。
要件定義書は、自社が用意したRFP(提案依頼書)を元にシステム会社がシステム構築の内容や工程を記したものです。
要件定義書は、システム設計の土台となり大変重要です。要件定義書に誤りがあると、そのあとの設計やワークフローが上手くいかず、開発が失敗してしまいかねません。
したがって、要件定義書を徹底的に読み込み、内容が自社の要望に合っているか、誤りはないかをしっかり確認しましょう。
システム開発においては、業務を外注先に丸投げせず、都度発注者側の人材もプロジェクトに関わりながら進めていく必要があります。
システム開発は、一般的に、工程ごとに作業を完了させていく手法をとることが多いため、あと戻りができません。
したがって、各工程でミスなく作業をしていくことが必要不可欠です。自社について知識のない外注先スタッフだけでは、自社に合った作業ができず、ミスをする可能性があります。
よって、発注側のスタッフが各工程の進捗をサポートする必要があるのです。
システム開発の外注化を考えているなら、ぜひICへお任せください。
株式会社ICは、ITソリューション事業を40年の長きにわたって展開する企業です。システム開発においても、多数の企業のサポートを続けてきた経験と知識を活かし、依頼企業の課題の抽出から要件定義、プログラミング、テストから保守運用までワンストップでサポートします。
また、依頼企業が求めるレベルの知識とスキルを持ったITプロフェッショナルスタッフを派遣することも可能です。
さらに、ICであれば、自社開発メインで取り組んでいるため安心して依頼できるメリットがあります。
ICでは、これまでさまざまな企業、組織、団体のシステム開発を担当してきました。
そこで、ここではICのシステム開発成功事例2つを紹介します。
ICでは、40年以上システム開発に携わってきた経験を活かし、依頼主に寄り添ったサポートを心がけています。
要件定義設定の際は、依頼主の課題や要望をしっかりヒアリングし、最適な要件定義を提案しています。
ある大手建材メーカーのお客様用販売管理システムでは、スクラッチ(Magic)で構築、展開しており、代理店が商品を販売する際に請求書を発行したり、売上管理に使用していました。
しかし、Magicサービスの保守切れに伴い、システムのリプレイスが必要となったため、ICが一連のリプレイス作業を担うことになりました。
リプレイスに先立ち、課題をヒアリングすると、請求書の発行方法を追加するといった細かな仕様の追加を希望していることが明らかになり、バグやエラーの少なさを重視していることもわかりました。
そこで、IC側ではテスト環境の構築と検証に注力しながらリプレイスをサポート。また、Outsystemsを活用するのが社内で初であり、また、扱うデータ量が非常に多いという課題がありましたが、IC側で最大限配慮しつつサポートを行いました。
その結果、無事システムのリプレイスが完了し、かつ、エラーが非常に少ないシステムの構築に成功しました。
上記開発成功事例について、詳しくは以下のページをご覧ください。
ある金融機関では、「IT化を推進したい」という漠然とした要望を叶えるべく、ICがサポートに参入しました。
ICが選ばれた理由は「仮想基盤実績が多い」「現場の業務に支障をきたさない、クライアントに寄り添ったサポートが得意」とのことでした。
IT化推進について詳しくヒアリングを行い、結果的に端末5000台の自動化実装から切り替えを目指す大規模プロジェクトを実施。
リリース後は稼働がスムーズになったとの声をいただきました。また、依頼主が金融機関であることから、日中の業務に支障をきたさないよう営業時間外に対応するなど柔軟な対応を心がけたことにも、喜びの声をいただいています。
上記開発成功事例について、詳しくは以下のページをご覧ください。
システム開発の進め方には外注と内製の2つがあり、どちらにもそれぞれメリットやデメリットがあります。
自社でシステム開発を検討する際は、両者のメリット、デメリットをふまえて比較し、どちらが自社に合っているか検討することが大切です。
もし、自社にシステム開発を任せられるだけの人材がいない、あるいは大規模なシステム開発をしたい場合は、ICへの依頼をご検討ください。
ICは、システム開発のサポートに関して40年の実績があります。依頼主の持つ課題や要望に寄り添い、最適な要件定義を提案し、十分なサポートを実施しますので、ぜひ一度ご相談くださいませ。