1. オフショア開発とは
オフショア開発とは、ソフトウェアなどのシステム開発を、海外の企業や事業所にアウトソースすることです。日本よりも人件費が安い国に依頼することでコストカットが望めるため、日本では1980年代以降、中国を中心にオフショア開発が進められてきました。
2000年代頃より人件費の上昇をきっかけに、オフショア開発先の国はその他の東南アジア諸国へと広まっています。開発先の国によって得意とするものや人件費も異なるため、自社の開発に合わせて選定が可能です。
2. オフショア開発のメリット
オフショア開発を導入した目的は、コストカットが望めるからです。日本よりも人件費が安い国に開発を依頼することで、人件費の削減が可能です。開発の規模が大きければ大きいほど人件費はかさむため、少しでも人件費が安ければ大幅なコストカットが見込めます。
近年では、海外の人件費が高騰しているため、オフショア開発の目的であったコストカットのメリットが享受できなくなってきています。しかしコストカット以外にもオフショア開発にはIT人材が確保できることも大きなメリットです。
日本は少子高齢化にともなって労働人口が減っています。日本の労働人口に反比例して、IT技術の需要は増加しているため、IT技術者が慢性的に足りていない状況です。
今後はさらにこの状況は悪化していくため、海外の労働力に頼らざるを得ない状況です。IT技術者を確保できるといった点もオフショア開発のメリットと言えます。
3. オフショア開発の進め方・流れについて解説
オフショア開発を進めるにあたり、段階ごとの注意点があります。システム開発の構想や、オフショア開発先の選定の方法、業務進行の注意点、納品時に気をつけることを一連の流れで解説します。
3-1. システム開発の目的を明確にする
オフショア開発の初期段階として、開発の目的を明確にすることから始めます。目的が明確でなければ、開発者側と同じゴールに向かって走れず、決していいものは作れません。例えば、アプリを作ってユーザーにこのようなサービスを届けたい、ソフトウェアの仕様をもっと使いやすいものに変更したいなど、さまざまな想いがあるはずです。その目的となる部分を明確にします。
3-2. 要件定義を自社でおこなう
オフショア開発では、自社内で要件定義をおこなうことが大切です。要件定義とは、システム開発に必要な情報をまとめたものです。「参考例を元にこんな感じで」という漠然とした要件定義では、企業として意義の薄いものしかできないでしょう。
また要件定義を明確にしておくことで、開発が可能なのかオフショア開発先が考えられる参考となり、企業間のマッチングがスムーズにおこなえます。
3-3. 見積りを数社取る
見積もりは複数社からもらいます。開発の国も1つだけにしぼる必要はなく、複数候補があったほうがよいです。開発国によって特徴も異なり、金額の相場感を把握できます。金額は高くても優秀な人材が揃っている、下流工程だけ安価に依頼できそうだ、といった具体的な計画がたてやすくなります。
3-4. オフショア開発する企業を選ぶ
オフショア開発の企業選びは、可能な限り現地まで視察にいけると安心です。そしてその企業が過去に同様の案件をあつかった実績があるか、エンジニアの技術レベルや人数などを確認して、見積もり予算を比較しながら検討します。
3-5. 契約方式を決める
オフショア開発では、主に準委任契約と請負契約の2つ契約形態があります。開発を依頼する目的は一緒ですが、なにをもって契約完了とするのか特色が異なるため、希望する条件に合う方式で決めます。
【契約内容】
■ 準委任契約
業務の遂行を行う契約。
社員に近い形で人員を確保し、発注側に責任がある。
期間や人員を確保し業務を行うため、仕様変更なども柔軟に対応しやすい。
■ 請負契約
業務を完了させる契約。
依頼した内容を完了してもらう契約で、管理義務や責任は受注側にある。
納期や成果物などが明確だが、仕様変更が難しく金額が高くなる可能性がある。
準委任契約をオフショア開発で活用するには、ラボ契約(ラボ型開発)が有効です。ラボ契約(ラボ型開発)とは、一定期間エンジニアを確保してチームを編成し、発注者側の指示のもと開発業務を進めていく方式です。コストカットや優秀な人材の確保ができ、ノウハウを蓄積しながら仕様変更にも柔軟に対応できます。
3-6. 開発方式を決める
開発方式は、大きく分けて「ウォーターフォール開発」と「アジャイル開発」の2つの方式があります。
ウォーターフォール開発は、設計からプログラミング運用まですべての工程を担い、それぞれの工程でテスト確認をしながら進めていく方式です。
ウォーターフォール=水が流れ落ちるように、上流工程から下流工程まで手順通りに開発を進めていきます。しっかりと要件定義をおこなった、大規模のプロジェクトの場合に適しています。
一方アジャイル開発とは、小単位の工程を繰り返しておこなう方式で、開発側と密にコミュニケーションを取りながら進めていきます。仕様変更に柔軟に対応できる方式です。
3-7. 契約内容を確認する
オフショア開発の契約内容は、海外という点で重要になる項目が増えます。
日本語の対応に関する要件
日本語での対応範囲はどこまで可能なのかを明記します。英語でのやりとりになる場合もあるため、自社内の語学力も必要になります。
支払い通貨・レート
日本か現地国、どちらの通貨で支払うのか明記し、レートについても決めておきます。開発の規模が大きいほど、レートの変動によって発生する為替損益は見過ごせないため、契約の時点で双方合意できる内容を決めておきます。
契約における準拠法
準拠法とは、日本と海外どちらの法律が適用されるかという問題です。万が一トラブルになった場合、日本と現地国のどちらの法律が適用されるのかを、しっかりと決めておきます。基本的には日本の法律が適用されるようにできれば安心です。
セキュリティに関する要件
日本はコンプライアンスに対する意識が高いですが、海外には教育環境が進んでいない国があるため、セキュリティが甘く情報漏洩につながりかねません。秘密保持に関してしっかりと要件を決めておきましょう。
その他重要なポイント
作業の内容やその範囲、定期的な報告義務、必要としているエンジニアの技術とその人数などを明記します。例えば開発メンバーが入れ替わった場合には報告する要件を入れておき、セキュリティ対策の向上につなげるなど、トラブル事例で多い内容とその対策についても反映します。
3-8. 仕様書の作成・詳細の決定と伝達
オフショア開発において成功の鍵をにぎるのが、仕様書のクオリティです。仕様書とは、システム開発における説明書のようなもので、開発国のエンジニアが仕様書をもとに開発を進めていきます。
初期段階で要件定義をまとめますが、仕様書にはさらに細かく明確な内容を記載します。
どのような操作でどのような動きをするのかなどの指定や、どのタイミングでテストをおこなうのか、完成のあるべき姿まで記載します。仕様書に不明瞭な点や誤りがあるとトラブルの元となり、開発スケジュールの遅延や予算の組み直しなどでコストオーバーの可能性が高くなります。
3-9. 定例会にて逐一進捗確認
オフショア開発は、コミュニケーションの場を設けることが大切です。定期的に進捗を共有してもらうことで、成果物に問題がないか、相互の認識に違いがないかを確認でき、スケジュール管理やコスト管理も立てやすくなります。
オフショア開発の場合、成果物が想定外だったという問題もよく発生します。丸投げで依頼して納品までなにもチェックしていなかった場合、日本企業側にも落ち度がありますので、必ずこまめな進捗確認は必要です。これは一連の流れを依頼している、ウォーターフォール開発でも同じことが言えます。
3-10. 動作確認・修正依頼
開発が完了した際には、動作の確認をおこないます。不具合やバグがあるまま納品されるといった失敗例もオフショア開発ではよくある話です。もし不具合があった場合には、修正を依頼します。
またリリースしてから仕様を変更するのは大変かつ複雑な作業になるため、このタイミングで慎重にチェックしておきます。
3-11. システムリリース
システムリリース後に契約は完了です。契約内容によってはシステムリリース後も、保守やメンテナンスを継続的に依頼する場合があります。
オフショア開発の実績がない場合には、短いスパンで小規模のプロジェクトの依頼からスタートさせ、慣れてきたら保守やメンテナンスまでフルで依頼するということも一つの方法です。
4. オフショア開発を成功させるためのポイント
オフショア開発を成功させるためのポイントをご紹介します。
4-1. 依頼先の開発実績・技術レベルの確認をする
オフショア開発の会社選びでは、どれくらいの技術があるのか、どれくらいのレベルの開発が可能であるかの確認が大事です。そして人材の豊富さも確認します。
優秀なエンジニア一人による成果物の場合もあり、その人材がいなくなってしまうとクオリティが下がるといったリスクがあるからです。
4-2. 予算部分にこだわりすぎず余裕を持たせる
オフショア開発では、人材配置やスケジュール管理の面でコストカットしようとすると、失敗のリスクが高まります。コミュニケーションの問題を解決するためには、言語能力の高い優秀なプロジェクトマネージャーやブリッジSEを配置するため、一般のSEよりも人件費はかかります。
さらに納期スケジュールも、資料の翻訳や時差など国内開発よりも考慮すべき点が多いため、余裕をもったスケジュール管理が必要になります。予算にこだわりすぎると、オフショア開発の対策が十分ではなくなり、失敗のリスクが高まります。
4-3. こまめにコミュニケーションを取る
オフショア開発では、コミュニケーションを疎かにしてはいけません。明確に指示したからといってそのまま放置していると、予定通りに仕上がる可能性が低いからです。技術のクオリティが低いからというわけではなく、言葉の壁や文化の違いがあるために、ニュアンスの受け取りが少しでも異なると、思っていたものと違う方向に進む可能性が高いのです。
また委託という認識ではなく、パートナーであるという気持ちで積極的にコミュニケーションをとることが成功のポイントです。
4-4. プロジェクトにあった企業を選ぶ
オフショア開発には、ソフトウェアの開発といった基本的なものから、AIを取り入れた新技術の開発、さらにはプロジェクトの大きさによって、企業の相性があるはずです。
企業の選定のタイミングで、要件定義がしっかり出来上がっていると、開発先の企業もジャッジがしやすくミスマッチが防げます。
5. オフショア開発の注意点について
オフショア開発は、言葉の壁や文化の違いがあるため、リスクの要因となるものを十分に把握しておき、対処していく必要があります。受取手との認識が少しでも違っていると大きな失敗につながりかねません。
プロジェクトマネージャーやブリッジSEには、言語能力に問題ない人員を配置し、定期的なチェック体制を設ければ大幅なリスク削減が可能となります。オフショア開発を成功させるための解決策については、こちらの記事を参考にしてください。
参考記事:オフショア開発が失敗する理由とは?成功するための解決策を紹介
6. まとめ
オフショア開発は、開発の構想から納品されるまで、それぞれのタイミングで注意すべき点があります。各セクションでリスクへの対処をしておけば、成功率が格段に高くなります。
ベトナムのオフショア開発会社比較20選!大手会社を一覧で紹介
「オルグローラボ」では、ベトナムでのラボ型オフショア開発事業を展開しています。オルグローラボを利用すれば、貴社の開発チームにベトナムの優秀なエンジニアを加え、長期的にプロジェクトにアサインすることができます。お客様のニーズに合わせた柔軟なチーム編成が可能ですし、プロジェクト開始から運用まで、継続的なサポートを提供しています。ぜひお気軽にお問い合わせください!