Share
この記事ではオフショア開発における「受託開発」の特徴やメリット・デメリットについて掘り下げて解説します。
オフショア開発には「受託開発」と「ラボ型開発」の2つのアプローチがあります。
どちらを選択するかはプロジェクトの性質によって異なります。
受託開発が向いてるのはどんな案件でしょうか。またオフショアで受託開発を進める前に知っておきたい注意点、 プロジェクトを成功させるコツとは何でしょうか。
本記事では、オフショア開発を進める際に知っておきたい受託開発の特徴やメリット、さらにラボ型開発との違いを、オフショア開発ベンダの立場からわかりやすく解説します。
この記事の対象読者
受託開発の特徴が知りたい
オフショア開発に不安がある
ラボ型との違いを簡単に知りたい
どんなオフショア案件が受託開発に向いているか知りたい
Rabilooはお客様のご要望にもっとも適した効率の良い開発をご提案します。
システム開発のご相談はRabilooまでお寄せください。
ソフトウェア業界における受託開発(Outsourcing Development)とは、企業が特定のソフトウェア開発プロジェクトを外部の開発会社に委託することです。
企業からの依頼を受けて、システム構築と完成を請け負う企業のことを一般的に「SIer(エスアイヤー)=System Integrator(システムインテグレーター)」と呼びます。
開発したいソフトウェアやシステムがあるが自社にエンジニアがいない場合、SIerに開発を委託します。SIerが企業から案件を「受託」して行う開発を「受託開発」といいます。
一方自社のエンジニアを使って自社で開発することを自社開発または内製といいます。
受託開発は「請負契約」で行われ、開発会社はソフトウェアの完成を期日までに完成させ、ソフトウェアが正常に動作することに責任を負います。
合わせて読みたい:エンジニアのラボ契約とは?請負契約・準委任契約との違いを解説!
近年では、日本国内のSIerは人件費が高騰し、慢性的な人手不足を抱えているため、開発パートナーがなかなか見つかりにくい傾向にあります。そこで視野をグローバルに広げて、ベトナムやフィリピンなど労働力が豊富で人件費の安いアジアの優秀なエンジニアを使ってオフショア開発を行う企業が増えています。
オフショア開発を導入する際、発注側が期待するメリットは主に2つあります。
できるだけコストを抑えて開発したい
海外エンジニアリソースを長期にわたって活用したい
過去において、オフショア案件のほとんどが受託開発で行われました。オフショア開発では、上流工程を日本のSIerが担当し、下流工程を海外の開発会社が下請けする形が一般的でした。
しかし最近では、日本が抱える深刻な人材不足に対処する手段として、海外の即戦力となるエンジニアリソースを長期的に利用できるというメリットに関心が高まっています。
そのため、「作って終わり」の受託開発ではなく、長期的に改善とリリースを繰り返すアジャイルと相性が良い「ラボ型開発」というアプローチがオフショア開発で注目されています。
ラボ型開発について詳しくはラボ型開発(ODC)とは?SESとの違いやメリットをわかりやすく解説!という記事をご覧ください。
オフショア開発には主に2つの選択肢があります。
請負契約による「受託開発(請負型開発)」
ラボ契約(準委任契約)による「ラボ型開発」
どちらを選択するかはプロジェクトの性質、期間、クライアントの関与度、およびコントロールの必要性によって異なります。
両者の違いを簡単に説明すると、
受託開発は「短期的・特定のプロジェクト向け」
ラボ型開発は「長期的・柔軟性と拡張性が求められるプロジェクト向け」
と言うことができます。
受託開発とラボ型開発ではベンダ(開発業者)が負う責任の範囲が異なるため注意が必要です。
受託開発は「請負契約」が締結されるため、ベンダは「完成責任」と「契約不適合責任」を負います。
「完成責任」とは開発を期日までに完成させて納期を守る責任です。
「契約不適合責任」とは、簡単にいうとリリース後一定期間の間に生じた製品の不具合を、ベンダが無償で修正しなければならない責任です。言い換えると、請負業者が提供した作業や製品が契約の条件や仕様に適合していない場合に発生する責任です。開発されたソフトウェアが契約で定められた機能を満たしていない場合、請負業者はその不適合を修正する責任があります。この責任は、製品や作業が契約の基準に合致するまで続きます。
一方、ラボ型開発は「準委任契約」が適用されるため、ベンダが負うのは「善管注意義務」です。ラボ型開発においてベンダは「完成責任」と「契約不適合責任」を負いません。「製品」に対しての責任ではなく開発という「労働」に対する責任を負います。ラボ型開発は最初から完璧な完成を目指すのではなく、ユーザーの反応を見ながら柔軟にテストとリリースを繰り返すアジャイルな案件に適用されます。
それでオフショア開発において、リソースの長期的な確保が目的ではなく、納期と作りたいものの範囲がしっかり決まっており、納期までの完成が重視される場合、受託開発が選択されます。
オフショア開発における「受託開発」と「ラボ型開発」の違いを表にまとめると以下のようになります。
特徴 | 受託開発 | ラボ型開発 |
目的と期間 | 短期間で特定のプロジェクトやタスクに焦点を当てる | 長期的な関係を築き、持続的な開発を目指す |
コストとスケジューリング | 固定されたコストと明確な納期 | 柔軟なコスト構造とスケジューリング |
クライアントの関与 | 最小限(要件定義と最終承認) | 高度(プロセスの各段階での参加と監督) |
プロジェクト管理 | 開発業者が主導 | クライアントが積極的に関与 |
チームの構成 | プロジェクトごとに変わる可能性がある | 一貫して同じチームが継続して関与 |
開発業者の責任範囲 | 期日までの完成と正常に動作することに責任を負う | 完成期日ではなく労働に対して責任を負う |
適用性 | 短期的または一度きりのプロジェクトに適している | 長期的で進化する要件に適している |
技術と専門知識 | 開発業者が特定の専門知識を提供 | クライアントの要求に応じた専門知識の提供 |
コミュニケーション | 定期的なアップデートが主 | 継続的で密接なコミュニケーションが必要 |
では、具体的にオフショアで受託開発を進めるメリットについて考えましょう。
受託開発には以下のような3つのメリットがあります。
受託開発では、プロジェクトの範囲、コスト、納期が事前に定められるため、予算計画や期間内でのプロジェクトの完了が容易になります。
受託開発ではプロジェクト管理は開発会社が担うため、クライアントはプロジェクトマネジメントの負担を大幅に減らすことができます。そのためクライアントは成果物の品質と納期に集中することができます。
一方ラボ型開発では、クライアントが主導してプロジェクトマネジメントを行って行く必要があるため、クライアントに負担が大きくなります。
受託開発では、請負契約により開発業者は「完成責任」と「契約不適合責任」を負います。つまりプロジェクトのリスク(遅延、品質問題など)は開発業者が負担するため、クライアント側のリスクを減らせます。
受託開発に伴うデメリットについても理解しておきましょう。ここが最初にわかっていないと、プロジェクトが「失敗」してしまう原因になりかねません。
受託開発には以下の4つのデメリットがあります。
受託開発は一般的に「ウォーターフォールモデル」で進められます。
開発がいったんスタートすると、水が上流から下流に流れるように、工程を後戻りすることができません。つまり、開発は要件定義の通りに進められ、途中で仕様変更ができません。
要件定義のフェーズで仕様が定まっていないような案件では、開発の途中で仕様変更に柔軟に対応できるラボ型開発が向いています。
要件定義は国内のSIerを使っても、完璧にはいかず、非常に難しいと言われています。エンジニアは言われたことを忠実に実行するだけなので、言われていないことは絶対にやりません。
オフショア受託開発では、それにさらに輪をかけて言語や文化の異なる海外の開発者との間で自分たちの要求を明確に伝えなければならないという困難があります。特に日本語の曖昧な言い回しなどは外国人には伝わりませんので、伝え方に気をつけなければなりません。
受託開発は短期間のプロジェクトなので、ラボ型のように時間をかけて関係を築くことができないため、コミュニケーション力の高い業者をしっかり見極めてください。
受託開発では、契約通りに開発を進めるため、仕様書にない追加の機能の実装や仕様の変更に基本的に応じることができません。どうしても仕様を変更せざるを得ない場合は、別途契約を結び直すことになり、追加の費用がかかります。
しかし実際には、クライアント都合で要件の変更を要求されることがしばしば生じます。軽微な変更であれば、開発業者がクライアントの要求を呑んでサービスで行うこともよくあります。
業界事情を打ち明けると、実はこうしたリスクをとって受託開発の見積もりには予定外の工数もあらかじめ想定した利益が上乗せされていることがあります。
受託開発では、プロジェクトベースの開発になるため、プロジェクトが終了すればチームは解散します。別のプロジェクトを立ち上げる場合、1から別のエンジニアをアサインしなければならず、せっかく溜まったノウハウを次に生かすことができません。
定期的に案件があり、同じチームをずっと確保したい場合はラボ型を選択した方がメリットが出ます。
受託開発には長期的な視点がありません。
関連記事:ウォーターフォールモデルは時代遅れ?メリット・デメリット、アジャイルとの違いをわかりやすく解説
オフショアを進める際、ラボ型ではなくあえて受託開発を選択した方がうまくいく案件もあります。
受託開発は、明確な期間と目標を持つプロジェクトに向いています。要件が明確で後から変更されることのない案件であれば受託開発の方が適しています。
例:企業のWebサイト開発、短期間のデータ移行プロジェクト、機能の限られたアプリ開発など
受託開発は予算管理がしやすく、プロジェクトの開始時に全体のコストが明確になるため、予算オーバーのリスクを低減できます。ラボ型開発では、長期的な関与と進行中の調整が発生し、コストが増加する可能性があります。
例: 固定予算でのシステムアップグレード、特定の機能開発など
受託開発では、特定の技術や業界に特化した開発会社を選定し、その専門知識を活用できます。ラボ型開発は長期的な関係と幅広いスキルセットに焦点を当てているため、非常に特化したニーズには必ずしも最適ではありません。
例: 金融業界向けのセキュリティシステム開発、医療業界のデータ管理システム、特定のプログラミング言語を用いたシステム開発(R言語など)
ラボ型開発では、長期的な関係構築が求められるため、オフショア開発のセオリーとして、最初に単発の請負案件で試し、上手くいくかを確かめてからラボ型へ切り替えるアプローチが一般的です。
ベンダー選定は、根本的には「人と人との関係」に基づくもので、相性が重要な要素となります。特にオフショア開発が初めての場合、初期段階で単発の受託開発を行い、関係性を築きながら進めることが有効です。
実際に受託開発をオフショアで進めるときの注意点について確認しておきましょう。
以下の点に注意を払うことで、プロジェクトの成功率を高めることができます。
まずプロジェクトの要件定義を明確にすることが最も重要です。要件定義の詰めが甘いと、出戻りが生じ、取り返しがつかないことになってしまいます。
そのために、プロジェクトのスコープ、目的、機能要件を詳細にドキュメント化し、発注者、開発会社双方の理解と合意を確実にします。
さらに事前にリスク評価を行うことも重要です。これには、プロジェクトのスケジュール遅延、予算超過、技術的な課題など、潜在的なリスクを特定し、それらに対応するための具体的な緩和策を計画することが含まれます。
開発パートナーは「人と人」の関係性が最も重要になります。自社の文化とベンダの相性をしっかり見極めることが大切です。ビジネス文化、作業倫理、時間に対する態度など、文化的適合性を考慮します。
また、委託する案件における過去の実績をレビューすることも必要です。過去の成功事例、参照可能なクライアント、レビューなどを通じて開発会社の実績を確認します。
プロジェクトを担当するブリッジエンジニアの日本語コミュニケーション能力を評価してください。打ち合わせの段階で、理解力の低い担当者であればそれがそのままプロジェクトの質につながります。担当者は、「わかったふり」をするでしょうか。それとも誤解がないようにしっかり確認してきますか。
さらに、それ以上に大切なのが「発注者側のコミュニケーション能力」です。的確に意図を伝えられるかどうかは、伝える側のセンスにかかっています。図解やイラストにして伝える、曖昧な日本語を使わず、簡潔で明瞭な日本語で伝えるなどの工夫が必要です。
また、時差を考慮したコミュニケーションスケジュールを設定し、コミュニケーションツールを使って確実に連絡が取り合えるようにすることが重要です。例えば、進捗報告のための定期的なミーティングを設け、メールやチャットツールでの迅速なやり取りを確保します。特に、緊急の問題が発生した際の対応方法や、異なる時間帯における連絡の取り方を明確にしておくことが肝要です。
細かい条項の確認します。例えばキャンセルポリシー、違約金、納期遅延などに関する条項などを精査します。
さらに、ソフトウェア著作権など、知的財産の取扱に関する条項を明確にしておきます。
発注者が品質管理のために必要なことは、開発プロセスにおいて積極的に関与し、コミュニケーションを密に保つことです。
まず定期的なミーティングを通じてプロジェクトの進捗をチェックし、疑問点は遠慮なく質問することが重要です。また、専門的な知識が必要な場合は外部の専門家やコンサルタントを活用し、品質監査を検討します。
さらに、プロジェクトのビジネス目標を明確にし、実際のユーザーとしてシステムをテストし、フィードバックを提供します。
最後に、契約書や仕様書の内容を理解し、必要に応じて法的なアドバイスを求めることも大切です。
リスク管理では、プロジェクトにおける潜在的な問題に備えるために重要なステップを踏みます。まず、「逃げ道戦略」を準備することが必要です。これは、プロジェクトが失敗したり遅れたりした場合に備えて、事前に代替案を考えておくことを意味します。例えば、別の供給元からリソースを調達する、あるいは別の技術ソリューションを検討するなどです。これにより、問題が発生した際に迅速かつ効率的に対応できるようになります。
次に、「変更管理プロセス」を確立することが重要です。プロジェクトの進行中には、要件や仕様が変更される可能性が常にあります。
変更リクエストの評価(変更が本当に必要か)
変更リクエストの承認・実施
変更による影響を注意深くチェック
このような変更管理の手順をしっかりと行うことで、プロジェクトの目標を柔軟に、かつしっかりとした管理のもとで達成できます。
受託開発は一般的に、「ウォーターフォールモデル」で進められます。ウォータフォールモデルとは開発プロセスが滝のように上流工程から下流工程へと一方通行で進む手法です。計画から設計、実装、テストまで段階的に進めます。これにより、各段階が明確で管理しやすいというメリットがあります。
しかし、一度進んだ工程から前の工程に戻れないという特徴があります。
受託開発の流れは一般的に以下のようになります。
要件定義:
発注者のニーズや目的を明確にし、具体的な要件を定義する
契約締結:
要件に基づいて契約を作成し、合意に達したら契約を締結
設計と実装:
契約に基づいてシステムやソフトウェアの設計と開発のスタート
テスト:
開発された製品をテストし、品質を確認
納品:
検収を経て、製品を発注者に納品
アフターサポート:
納品後のサポートや保守を行うこともある
まとめると、受託開発の流れは、まず発注者のニーズに基づいて要件を定義し、それに基づいて契約を結びます。その後、契約内容に沿ってシステムやソフトウェアの設計、開発を行い、テストを通じて品質を確認します。最終的に製品を納品し、必要に応じてアフターサポートを提供します。この一連のプロセスにより、発注者の要求に応じた製品が提供されます。
弊社Rabiloo(ラビロー)は、ベトナムのハノイに開発拠点をおき、ハイレベルオフショア開発サービスを提供しています。
弊社の受託開発サービスには、以下の特徴があります。
カスタムソフトウェア開発: ラビローは、顧客の真のニーズを深く理解し、オーダーメイドのソフトウェアを高速かつ高品質で開発します。
国際基準の開発プロセス: 開発プロセスと製品の品質は国際基準を満たし、無駄を省いた効率的な開発で迅速なリリースが可能です。提案する開発コストが適切であり、10年以上の経験を持つ150人のエンジニアとチームが組めます。 弊社は取得が困難と言われるCMMIのレベル3(開発企業の成熟度)をベトナム企業最速で取得しました。
開発サービスの範囲: モバイルアプリ、Webアプリ、AIソリューション、IoT、クラウド開発など幅広いサービスを提供しており、これらは多岐にわたる業種のニーズに対応しています。ソフトウェアだけでなく、ハードウェアの設計・カスタマイズもできます。
顧客へのメリット: 開発コストを30~50%削減し、納期の遅延リスクを避けることができます。また、国際基準に準じたプロジェクト品質マネジメントと一流の技術専門家によるコンサルティングを提供します。
ソフトウェア開発プロセス: ラビローの開発プロセスは要件定義から始まり、開発計画の提案、開発者チームの構築、計画に沿ったソフトウェア開発、進捗状況の可視化、ソフトウェアテスト、運用と保守に至るまでの一連のフローが確立されています。
オフショアにおける受託開発とは、ベトナムやフィリピンなど海外の開発会社に特定のタスクや短期的なプロジェクトを委託するアプローチです。受託開発では明確な要件、予算、納期が設定され、開発会社が完成責任と契約不適合責任を負います。
受託開発の特徴
短期的なプロジェクトに適している
完成責任と契約不適合責任を開発会社が負う
メリット
予算と納期が明確
プロジェクト管理が簡素化
リスクの軽減
デメリット
柔軟性の欠如
コミュニケーションの課題
変更に伴う追加コスト
向いている案件
明確な要件と期限を持つプロジェクト
このように受託開発は短期的で要件が明確なプロジェクトに適しており、計画性とコスト管理が重視される場合に有効です。しかし、柔軟性やコミュニケーションの側面では注意が必要です。
Rabilooは高品質ソフトウェア開発を請け負います。
アプリ、システム開発依頼のご相談は下記のフォームよりお気軽にお寄せください。
Share