システム開発を委託する際に、「受託開発」や「ラボ型開発」という開発形態を選択する必要があります。オフショア開発においても、どういった目的で委託するのかによって適切に選択します。
オフショア開発とは、企業が国外の開発チームにソフトウェア開発を委託する事です。国内と比較すると安価に、専門スキルを持つ外国のプロフェッショナルを活用できます。特に日本の労働人口が減る中で、開発リソース不足・人員の戦略課題を解決する方法としておすすめです。
オフショア開発における受託開発とラボ型開発の選択は、プロジェクトの規模や目的によって異なります。これらの理解と適切な選択が、オフショア開発の成功の鍵を握ります。
ぜひ当記事で両者の違いをご理解頂き、オフショア開発をご検討のお役に立てれば幸いです。
受託開発とは?
当章では、オフショア開発における受託開発の定義を行い、メリットとデメリットをまとめます。
受託開発の定義
受託開発とは、とあるソフトウェア開発プロジェクトを請負契約の下で外部の開発会社に委託する事です。オフショア開発においても、発注者側(以後クライアントと呼びます)からプロジェクトを「受託」して行う「受託開発」はよく選ばれる契約形態です。クライアントが予めプロジェクトの仕様と納期を明確に定義する事で、見積もりを依頼し、発注をし、外部企業に必要な人員や期間を確保(委託)して貰います。要件が明確で、自社にエンジニアがいない企業や外注する事で価格を下げたい企業がこの契約を選択される事が多いです。
日本ではよくシステムインテグレーター(SIer)と呼ばれる企業がこの契約の開発を行いますが、オフショア開発企業も同様です。日本側で要件定義と基本設計が終わると、海外の開発チームが開発、実装、テストを行い、納品を行います。開発チームの組織やプロジェクトの管理は、オフショア開発会社が担当します。
受託開発のメリットとデメリット
メリット
大規模開発
受託開発の開発方法としては、上流工程から下流工程まで計画的に進める「ウォーターフォール・モデル」が適しています。このモデルでは、各開発工程を確実に終えることで手戻りを防ぎ、決められた要件に沿っている事を各工程で担保して進む為、大規模な開発に適しています。
完成責任
受託開発では、「完成責任」と言って、期日までに定められた品質の成果物をクライアントへ納品する責任があります。また、「契約不適合責任」といって、リリース後の一定期間内に発生した不具合を無償で修正する責任もあります。旧民法では瑕疵担保責任と呼ばれてました。このように、契約で定めた納期内にシステムが正しく開発する責任を求められるのが受託型開発の特徴です。
デメリット
不明瞭な要件で開始が出来ない
受託開発では、どのようなシステムを作るのか決められない場合は見積もりも契約も出来ないので、プロジェクトを開始する事が出来ません。その為、具体的なシステムが想定出来ない企画や要件定義工程では準委任契約※で始め、要件が固まり次第、受託開発を依頼するのが一般的です。
※準委任契約とは、業務委託契約の一種で、契約で定めた業務の遂行自体が目的となり、請負契約と異なり、完成責任はありません。後述するラボ型開発も準委任契約です。
仕様変更に弱い
契約に記載した要件から仕様変更が生じ、開発工数内で対応できなくなった場合は、追加の見積もりが必要となります。
ラボ型開発とは?
当章では、オフショア開発におけるラボ型開発の定義を行い、メリットとデメリットをまとめます。
ラボ型開発の定義
ラボ型開発は、特定の期間(例えば半年や1年)にわたり、外部の開発会社から一定のエンジニアチームを専属で確保し、システム開発を行う事です。準委任契約ですので、完成責任や契約不適合責任を負いません。ITリソースの人月単価と契約期間を定めて契約します。
この開発形態は、英語でODC(Offshore Development Center)とも呼ばれ、海外のエンジニアリソースを活用して、自社の開発チームを海外の開発拠点に設けてプロジェクトを推進する方法です。他社のリソースで、自社開発(内製)が出来るイメージです。クライアントはオフショア開発会社のブリッジSEやプロジェクトマネージャーと直接コミュニケーションを取り、開発チームに作業内容を指示します。
ラボ型開発のメリットとデメリット
メリット
次々に開発
ラボ型開発の開発方法としては、「アジャイル・モデル」が適しています。小単位でシステムを区切り、実装とテストを繰り返して開発を進める手法です。PoC(概念実証)と言って、新しい事業や技術、アイデアを検証する工程から契約を始められます。また、プロトタイピングを行ったり、最小限の製品(MVP)をリリースし、ユーザーの反応を見て作り直しを繰り返す開発によく採用されます。
仕様変更の度に見積もりをし直す必要がなく、確保したリソースの中で優先順位に応じて修正が可能です。
もちろん、最初の構築時に「ウォーターフォール・モデル」を選択することも出来ます。その自由さが、自社の開発チームを持つラボ型開発の強みです。
専用チーム
ラボ型開発では、エンジニアチームを専属で確保するので、独自のノウハウも蓄積され、習熟が進みスキルも向上します。案件毎にメンバーアサインを行ったり、キックオフをする手間もありません。また、完成後も一部の保守運用を任せることができるのは、ラボ型開発の強みでもあります。
受託開発を選択すると、毎回同じメンバーがアサインできるとは限らないので、単発契約が向いています。契約毎にノウハウや関係性がリセットされてしまう可能性があるのです。
デメリット
完成責任がない
ラボ型開発においても、目標の期限は設けますが、その期限内の完成責任はありません。また、善管注意義務といって、ベストを尽くして開発はしますが、契約不適合責任はありません。
リソースの無駄遣い(の可能性)
仕様が決められない、タスクがないといった場合でも、エンジニアは確保していますので費用が発生します。
受託開発とラボ型開発の違い
両者の比較表
どちらの契約を選択するのかは、プロジェクトにも依りますが、以下の観点を参考にご検討ください。
| 比較項目 | 受託開発 | ラボ型開発 |
|---|---|---|
| 契約 | 請負契約 | 準委任契約 |
| 仕様 | 全体を通じて明確に定義 不明瞭に開始できない。 仕様変更に弱い=追加見積もり | 機能毎など小単位で明確に定義。 変更に強い。 |
| 納期 | 見積もり時に決定 | 契約期間時に決定(延長も可能) |
| 案件種類 | 大規模開発 (ウォーターフォールモデル) | PoC、プロトタイピング、 スタートアップ、保守運用 (アジャイルモデル) |
| 完成責任 | あり | なし(遂行義務のみ) |
| 開発拠点化 | 不可 | 可能 |
| メンバー習熟 | 毎回同じメンバー確保が難しく、 キックオフや習熟に時間がかかる。 | 専属で確保により、 ノウハウ蓄積とスキル習熟。 |
| コミュニケーション | 見積もりの時に最大化。 | 常に自分のチームとして 頻繁にコミュニケーションが必要。 |
選ぶポイント
受託開発とラボ型開発を選ぶポイントは、案件の仕様が明確か、継続的に案件があるかどうかの2点です。以下のような判断ができると思います。
- 明確で単発案件→受託開発でウォーターフォール。
- 明確で継続案件→ラボ型開発でウォーターフォール。
- 不明確で単発案件→準委任契約で要件を固め、受託開発でウォーターフォール。
- 不明確で継続案件→ラボ型開発でアジャイル。
特に、自社専属チームとして海外の開発拠点を作りたい場合は、ラボ型開発を選択する事で、中長期的にノウハウや信頼関係を蓄積し、QCDの安定を狙う事をおすすめします。
まとめ
ここまでお読み頂きありがとうございます。
オフショア開発の観点を交えながら、受託開発とラボ型開発の定義とメリット、デメリットを徹底解説させて頂きました。ご理解頂いた上で、開発形態のご検討のお役に立てれば幸いです。
弊社ではどちらの開発形態の契約も行っております。



