ここが重要!システム開発を成功させる、はじめて外注するときの2つのポイント
システム開発には自社で開発を行う内製と、外部の企業に依頼する外注があります。システム開発を成功させるための成否には依頼先となる企業の選択のみならず、さまざまな要素があげられます。このコラムではシステム開発を外注するときの流れやポイントについてわかりやすく説明します。
この記事の目次
1.システム開発の外注とは
システム開発の外注とは、システム開発のニーズが生じたときに自社で開発(内製)をせず、自社以外の会社に開発を依頼することを指します。システム開発の外注は自社の組織内にIT部門がない企業だけとは限りません。たとえIT部門があったとしても既存システムの運用保守にリソースを割かれて開発まで手が回らなかったり、開発を行うだけの知見や経験がある人材が不足している場合もあります。「餅は餅屋」のことわざの通り、システム開発の外注はその道の専門家に依頼することと同義と言えるでしょう。
システム開発を外注した方がよい場合の4つの具体的例についてご紹介します。
②大規模システムを開発する場合
③期間限定のプロジェクトを進める場合
④開発後の運用や保守までも見据えて、すべて外注で任せたい場合
これらのケースでは外注した方がコストや投入する労力を抑えることができるでしょう。
一方で、システム開発の外注では課題解決に間に合わない場合や「2025年の崖」と言われるレガシーシステムの老朽化やIT人材の不足、既存システムやOSのサポート終了によって生じるシステムのブラックボックス化を回避するため、内製を選択した方が良い場合もありえます。外注するか否かは、自社が置かれた状況を考慮して決定するとよいでしょう。
社内で決めかねる場合は、お気軽にこちらまでご相談ください!
2.システム開発を外注するメリット
システム開発の外注には4つのメリットがあります。それぞれ説明します。
⑴スケジュール通りに開発を進めやすい
開発の工数を外注という方法で社外に切り出すことで、その分の浮かせることのできたリソースを、開発後の運用方法や、その他の外注できない戦略立案等の部分に充てる先を変換することができます。
⑵エンジニアの自社採用が必要ない
システム開発には専門的知識を有したエンジニアが必要です。一方で日本は深刻なIT人材の不足に直面しているため、自社採用や自社での育成は困難が想定されます。そのため、専門的知識を有するシステム開発会社に外注することでエンジニアを確保する課題を回避できます。
⑶ハードウエアやソフトウエアなどの設備や開発環境の追加投資を抑制できる
システム開発を行うためには、サーバーやネットワーク機器などのハードウエアやソフトウエア開発ツールといった開発環境が必要ですが、外注することで自社の設備投資にかかるコストを抑制できます。
⑷システム開発の最新の知見を得ることができる
システム開発を専門に行う会社に依頼することで、その会社がもつ最新の開発手法やノウハウを知ることができます。
その他にも、一度開発を外注した企業と関係性が築けていることにより、別件で開発を外注するとなった際、依頼先を0から探す手間を省き、継続的にシステム開発における心強いパートナーになり得ます。
3.システム開発を外注するデメリット
システム開発の外注には3つのデメリットがあります。それぞれ説明します。
⑴システム開発の知見や経験、専門的なノウハウが自社内に蓄積しない
開発プロセスやシステムの内容を外注先の企業に依存するため自社内に知見や経験、専門的なノウハウが蓄積されません。そのため、システムトラブルが発生した際に自社による迅速な解決が困難になったり、新たな開発が発生した際も外注先に継続して依存することになります。
⑵見積もりに対してコストが高くなることがある
外注した場合は当初の見積金額と実際に発生した最終的なコストとの間に乖離が生じるリスクがあります。こうしたリスクは開発途中での仕様変更や開発工数の増加、スケジュールの遅延などに起因します。
⑶セキュリティリスク(情報漏洩)の対応が必要
システム開発を外部に依存する場合、顧客データや取引先のデータ、売上や仕入れ価格など機密情報に該当する自社データを提供することがあります。こうしたことから意図しない情報漏洩や不正アクセスの可能性が増加するリスクがあるため、外注先の開発会社とNDA(Non-Disclosure Agreement:機密保持契約書)の締結は当然ながら、情報セキュリティポリシーや管理体制がしっかりしているのかしっかりと確認を行いましょう。
4.システム開発を外注するときの流れ
システム開発を外注する際の基本的な流れは以下のとおりです。それぞれ説明します。
基本契約書とは特定の取引先と継続的に取引を行う際の基本的な取り決めを定めたものです。基本契約書は新規の取引開始にあたって一度だけ締結し、通常は自動更新されます。基本契約書は日本以外の中国やインド、ベトナム等で開発を行うオフショア開発を行う場合は特に重要です。
個別契約書とは基本契約書の締結後、個々のシステム開発案件について、代金、納期、納品物、納入場所、特約事項等について定めたものです。一般的には個別契約書を作成せず「注文書」と「注文請書」の形式で取引が行われることが多いです。
【基本設計 > 詳細設計 > プログラミング > 単体テスト > 結合テスト > 運用保守】
各工程の詳細については「システム開発の手順と流れ」で説明していますのでご覧ください
・実際の本番稼動環境で実施する
・検収項目をあらかじめ開発会社と合意しておく
5.システム開発の外注を成功させる2つのポイント
システム開発の外注を成功させる2つのポイントについて以下に説明します。
⑴大切なことは発注側と開発側の目線合わせ
システムで実現する必須機能と不要な機能について発注者側と開発者側で理解の相違や認識の齟齬が起きないように目線合わせをしっかり行うことが必要です。こうした確認は要件定義の段階で抜け漏れなく行います。
また、機能要件(システム開発において発注者が求める「機能」のこと)や非機能要件(「機能」以外のユーザビリティ、性能、拡張性、セキュリティなど)を決定しておくとよいでしょう。将来的には必要とされる機能でも、今回の開発では開発対象とするのか、あるいは対象外とするのか開発範囲も明確にしておくとよいでしょう。
⑵円滑なコミュニケーションが成功の成否につながる
発注側と開発側の双方による、円滑なコミニケーションはシステム開発成功の成否につながります。上流工程から下流工程に至るまで進捗の報告や仕様確認などが適切に行われることで、開発側・発注側の双方で不明確な点が解消され、システム開発の進捗が円滑に進みます。発注側は開発会社に丸投げするのではなく、基本的なシステム開発の知識を身につけておくことで、双方で共通認識を持ちやすくなり、意図せぬリスク回避にも繋がります。
6.まとめ
自社内のリソースでシステム開発を行うことが困難な場合、システム開発の外注は課題解決の選択肢の1つです。こうすることで必要なコストや時間の有効活用ができる一方、発注側は想定していた成果物が納品されるように、外注するシステムの要件についてしっかりと把握しておく必要があります。本コラムでははじめてシステム開発を外注する際のメリットやデメリット、ポイントについて解説しました。
システム開発を外注する際のポイントを把握することはシステム開発のプロジェクトの成功にもつながります。情シスNavi.では、本コラム以外にも、情報システムの開発に関わるさまざまなコンテンツを提供しています。是非確認してみてください。