請負開発とは?請負開発(英語:Outsource Development)とは、クライアントが受託側に発注した仕様・要件にもとづいて開発を行わせて、契約時に定められた納期までに成果物を納品させる開発形態のことです。別名、「請負型開発」「請負契約」などとも呼ばれています(厳密にいうと、請負契約は、請負開発を行う際に締結する必要のある契約であると定義されています)。なお、請負開発は、オフショア開発(海外の国や地域の会社や法人に対して、システム・ソフトウェアの開発業務を委託する手法)における発注形態の一種でもあります。請負開発の大きな特徴は、あらかじめ指定された期日までに決められた内容の成果物(例:システムやソフトウェアなど)が納品されることによって報酬が支払われる点です。また、請負開発では、仮に納品物に不備があった場合、クライアントが受注側に対して修繕を要求することも可能です。ただし、実際の契約内容は案件ごとに異なりますので、本記事の「請負開発を依頼する際のポイント」を契約前に読んでおくと、請負開発で躓くことを避けられる可能性が上がります。オフショア開発全般について理解を深めたい場合は、以下の記事をご確認ください。オフショア開発とは?活用される背景や目的、メリット・デメリットを解説請負開発のメリット・デメリット請負開発ではさまざまなメリットが期待できるものの、少なからずデメリットが発生するおそれもあります。そのため、請負開発のメリットとデメリットの双方を把握し、活用を検討すると良いでしょう。本章では、請負開発の活用にあたって生じる可能性のある代表的なメリット・デメリットを順番に取り上げます。メリットまずは、請負開発の活用によって期待されるメリットの中から代表的な3つをピックアップし、順番に解説します。求める成果物を納品してもらえる可能性が高い請負開発では、具体的な納期と納品物の仕様をあらかじめ定めたうえで開発を開始することになります請負契約の締結時にクライアントが指定した内容の物を成果物として納品してもらえるため、安定した品質の納品物を得られるだけでなく、万が一に契約不履行が発生した場合でも受注側に修正対応を依頼することが可能です。例えば、「〇〇日までに取り決めた△△の機能を有した仕様通りに◻️◻️を納品してほしい」というケースにおいては、請負開発の形式での発注が向いていると考えられます。想定の予算内でオフショア開発を行いやすい自社内でシステム・ソフトウェアの開発を手掛けるケースでは、エンジニアの増員や機能の追加などを理由に、想定以上に多くの開発コストが発生してしまうおそれがあります。また、想定外のトラブルが発生して開発が滞ってしまうと、想定の予算内でシステム・ソフトウェアの開発を完了させられないケースも珍しくありません。これに対して、請負開発では受注側が開発の進め方を決めるため、開発にあたって発生するコストは受注側が支払います。請負開発では、クライアント側で納品物に対する報酬を支払わなければならないものの、余計な開発コストは発生しにくいです。開発コストについては以下記事で解説していますので、開発コストに課題感がある方はご一読ください。開発コストとは?算出方法や内訳、削減方法を解説管理業務に手間・時間がかかりにくい自社でシステム・ソフトウェアの開発を手掛けるケースでは、開発担当のエンジニアだけではなく、業務の進捗状況を管理する社員も確保しなければなりません。プロジェクト全体の状況をチェックしながら、開発業務が滞りなく進行しているのか、チームのメンバーに困りごとは発生していないかなど、広い視野で管理業務にあたらなければなりません。これに対して、請負開発の形式でシステム・ソフトウェアの開発を依頼すれば、上記のような管理業務を自社内で行う必要がなく、管理業務に手間・時間が取られません。そのため、請負開発では、自社のリソースを圧迫せず各社員が本来すべき重要な仕事に集中できます。デメリット続いて、請負開発の活用によって生じるおそれのあるデメリットの中から、代表的な2つをピックアップし、順番に解説します。開発ノウハウが自社に蓄積されにくい自社でシステム・ソフトウェアの開発を手掛ける場合、内製で行うことから自社におけるITエンジニアの成長が期待できます。これに対して、請負開発は外注の形式で開発業務を発注することから、開発ノウハウが自社内に蓄積されにくくなります。そのため、自社内でノウハウの蓄積を求めるケースでは、必要な分だけ請負契約を活用することが望ましいです。発注後の仕様変更の指示を出すことが困難請負開発はクライアント側が求める成果物を入手しやすいものの、発注後の仕様変更が困難な点がデメリットです。万が一、設計に不備がある状態のままシステム・ソフトウェアの開発を依頼してしまうと、不備を抱えた成果物がそのまま納品されてしまいかねません。「契約通りの成果物を納品する」という特性上、請負開発において発注後に追加で修正を依頼することは難しいです。システム・ソフトウェアの開発で請負開発の形式を選択する際は、要件定義を綿密に実施したうえで、「受注する会社に何を開発してもらうのか」を明確化しなければなりません。以上のことから、請負開発は開発したいシステム・ソフトウェアの仕様が明確であるケースに向いている手法だといえます。実際に請負開発の形式で発注を行う際は、システム・ソフトウェアの開発目的や仕様を入念に検討しましょう。特に最近では、プロダクト開発のサイクルが早くなり、また市場にできる限り早くリリースし、その後反応を見て修正や追加開発を繰り返すことが多くなっていることもあり、請負より柔軟なラボ型開発を好む企業様が増えてきている傾向にあります。請負開発がおすすめなシステム開発例ここまでに解説したメリット・デメリットを踏まえて、システム開発において請負開発の活用をおすすめできるプロジェクトの一例を以下にまとめました。固定の予算内で収めたいプロジェクトの要件が定まっており仕様変更が少ないことが想定される大規模なプロジェクトであるプロジェクトの進捗状況を綿密にモニターする必要がない、もしくはリソース不足で綿密にモニターすることが不可能例えば、大手企業で機能要件、仕様が明確な大規模プロジェクト(例:銀行の基幹システムや組込系ソフトウェアなどの開発プロジェクト)を開始させようとしているケースでは、請負開発の選択が向いていると考えられます。上記のケースでは、プロジェクト開始後に大幅な軌道修正が発生し辛いため、あらかじめ契約した固定の予算内に収まりやすく、多くのメリットを享受できる可能性が高いです。ただし、プロジェクト開始後の柔軟な軌道修正は難しいことから、請負開発は仕様変更の可能性が少ないシステム開発のケースでおすすめの開発手段だといえます。請負開発と受託開発の違い請負開発に類似する開発形態に、受託開発が挙げられます。受託開発とは、企業や組織が求めているシステム・ソフトウェアの開発を外部に委託し、その委託内容に沿ってシステム・ソフトウェアを開発してもらう手法のことです。受託開発では契約の期間や条件などが定められるものの、受注側に完成物や成果物を納品する義務は課されません。依頼を受けて業務をこなした分だけ報酬の支払いが発生するのが一般的です。一方の請負開発も受託開発の一種であり、クライアントからの依頼によって開発業務が進められます。ただし、請負開発では、受託側は依頼内容に沿った完成物・成果物を納品する義務を負い、「仕事の完成」によって報酬の支払いが発生する点が特徴的です。請負開発とラボ型開発の違い請負開発に類似する開発形態には、ラボ型開発も挙げられます。ラボ型開発とは、オフショア開発の一種であり、クライアントの要望に応じたスキルセットを有する専任のエンジニアで構成された開発チームを確保して、一定期間にわたり契約を締結し、月額費用固定で開発を行う形態です。クライアントが開発企業のエンジニアと直接コミュニケーションを取り、開発チームに作業内容を指示します。ラボ型開発(ラボ契約)は作業要員・期間をベースとする契約であって「仕事の実施」が目的となるのに対して、請負開発(契約)ではプロダクトの完成をベースとする契約であって「仕事の完成」が目的として掲げられます。また、請負開発とラボ型開発では、開発モデルにも違いが見られます。まず、請負開発は、ウォーターフォール型で開発を進めることが多いです。ウォーターフォール型とは、上流工程から下流に沿って開発を進める手法です。初期に多くの時間をかけて、サービス・開発の範囲を全て企画・定義したうえで設計・実装・テスト・納品を行い、リリースを目指していきます。基本的にウォーターフォール型では、前の工程を完全に終えてからでないと次の工程に進めず、前の工程に戻ることもありません。そのため、クライアントは開発プロセスにそれほど関与しません。ウォーターフォール型については以下記事で詳細に解説しておりますので、請負開発を検討されている方は併せてご確認ください。ウォーターフォール型開発とは?工程やメリット・デメリットを解説これに対して、ラボ型開発では、多くのケースでアジャイル型が採用されます。アジャイル型とは、「計画する」「設計、実装、テストを行う」「機能をリリースする」という流れを何度も繰り返す開発手法です。短期間に成果物をリリースし、クライアントに確認してもらいます。アジャイル型では、ウォーターフォール型とは異なり、クライアントが開発プロセスに積極的に関与することから、要望・仕様の変更が発生した場合でも柔軟に対応してもらえます。以上のことから、システムの要件定義をこれから確定していくケースや、開発途中で仕様の変更や新しい機能が追加される可能性が高いプロジェクト(例:アプリ開発)などでは、アジャイル型のラボ型開発を選択することが望ましいです。ラボ型開発について、さらに理解を深めたい場合には、以下の記事をご確認ください。ラボ型開発とは?メリット・デメリット、請負型との違い、注意点を解説請負開発を依頼する際のポイント最後に、請負開発を依頼する際に留意しておくべきポイントとして2つの項目をピックアップし、順番に解説します。請負開発のための請負契約書に記載される項目請負開発の実施にあたって当事者の間で取り交わされる契約書には、主に以下のような項目が記載されます。目的:契約の具体的な目的は何か有効期限:締結した契約の有効期限はいつか定義:契約書に使用されている単語や言葉の定義仕様:システムの完成形はどのようなものか実施場所:業務を行う場所はどこなのか納期:いつまでに何を納品するのか報酬:具体的な報酬金額や支払い方法はどうするのか不具合時の対応:納品物に不具合があった場合の補償内容権利:納品された成果物の権利は誰が所有するのか上記のほか、開発にあたって受け渡した資料の管理方法や、損害が生じた際の賠償金額、保守サービスの内容などが記載されることもあります。契約内容を細かく定めておくことで、トラブル発生時にスムーズに対応できます。とはいえ、記載項目の多い契約書をゼロの状態から作成していくことは手間がかかるので、必要に応じてひな形・テンプレートの利用も検討しましょう。請負契約書は「2号文書」であり課税対象となる請負に関する契約書は、「2号文書」と呼ばれる課税対象の書類に該当します。契約金額によっては非課税となるものの、請負に関する契約書を作成する際は、基本的に収入印紙を貼って印紙税を支払う必要があります。具体的な課税金額について、詳しくは国税庁のWebサイトにてご確認ください。参考:国税庁「No.7140 印紙税額の一覧表(その1)第1号文書から第4号文書まで」まとめ請負開発とは、オフショア開発の一種で、クライアントが受託側に発注した仕様・要件にもとづいて開発を行わせて、契約時に定められた納期までに成果物を納品してもらう開発形態のことです。受託側によって、あらかじめ指定された期日までに決められた内容の成果物が納品されることで、報酬の支払いが発生します。請負開発と受託開発の大きな違いは、受託側の負う義務の内容です。また、請負開発とラボ型開発では、受託側の負う義務の内容および開発モデルに違いが見られます。今回紹介した請負開発のメリット・デメリットや受託開発およびラボ型開発との違いを把握したうえで、自社の状況に適した契約方法を見つけてください。