システム開発契約では、請負契約と準委任契約をどのように使い分けるべきか

IT・情報セキュリティ
尾城 亮輔弁護士 尾城法律事務所

 システム開発に関する契約では、請負契約か準委任契約のいずれかを用いることが多いと聞きました。それぞれの契約をどのように使い分けるべきか教えてください。

  1. 請負契約は結果の達成を約束するものであるため、契約を締結する段階で、ベンダーが達成すべき結果が明確になっていない場合には、請負契約はなじみにくいといえます。また、結果が達成できるか否かが、ベンダーの努力や作業の巧拙以外の要素に大きく依存する場合にも、請負契約はなじみにくいと考えられます。

  2. ウォーターフォール型開発の場合、工程ごとの性質に応じて、両契約を使い分けるのが一般的です。他方で、アジャイル開発やAI開発は、準委任契約に親和的であると考えられます。

解説

目次

  1. 請負契約と準委任契約の使い分け
    1. 考え方
    2. ウォーターフォール型開発の場合
    3. アジャイル開発の場合
    4. AI開発の場合
    5. まとめ
<編注>
2021年3月4日:本稿は、「請負契約と準委任契約の違いとは」に記載のあった「2 請負契約と準委任契約の使い分け」の項目について、「民法の一部を改正する法律」(平成29年法律第44号)の内容を反映のうえ、記事を分割し掲載したものです。

請負契約と準委任契約の使い分け

考え方

 上記のとおり、請負契約と準委任契約は、その契約の目的が、ベンダーが役務を行うことそのものにあるのか、それとも、ベンダーが役務の結果として完成させた成果物(システム等)を給付することにあるのかという点に違いがあります。請負契約は結果の達成を約束するものであるため、契約を締結する段階で、ベンダーが達成すべき結果が明確になっていない場合には、請負契約はなじみにくいといえます。また、結果が達成できるか否かが、ベンダーの努力や作業の巧拙以外の要素に大きく依存する場合にも、請負契約はなじみにくいと考えられます。

 *なお、厳密には、「仕事の完成」(達成すべき結果)をどのように定義するかの問題になります。たとえば、医師との診療契約は準委任契約の典型例だと考えられていますが、これは「病気やけがの治癒」という結果の達成を約束できないからだと理解できます。しかし、あくまで理論的にではありますが、仕事を「一連の手術をすること」とし、それで患者が治癒するか否かは問わないとすれば、診療契約を請負とすることも可能であるということになります1

ウォーターフォール型開発の場合

 ウォーターフォール型開発は、一般に、企画、要件定義、基本設計、詳細設計、開発、単体・結合テスト、システムテストという性質の異なる工程を経て行われます。このため、工程ごとに契約の性質を検討するのが合理的です。なお、システム開発の工程全体をカバーする1つの契約を締結する場合でも、複数の契約の性質を持つ混合的な契約であると考えることができるので、たとえば、要件定義工程については準委任契約の性質を有し、開発工程については請負契約の性質を有するというような評価をするのが適切といえます。

 具体的に各工程について検討すると、どのようなシステムを作るのかを決める工程(企画、要件定義)については、工程を開始する時点で成果物が具体的に想定できないものであることから準委任契約がなじみやすいといえます。一方で、そのような工程で定めた内容を開発する工程(詳細設計、開発)については、成果物が具体的に明確になっているため請負契約とすることが可能です。テスト工程については、結合テストと呼ばれる工程までは開発工程の一環として請負契約とすることが多いのですが、プロジェクトの最終段階で行われるシステムテストないしはユーザーテストと呼ばれるテストは、ユーザーが主導して実施するものであり、ベンダーはユーザーを支援するという立場になるため準委任契約とすることが多いといえます。

 なお、独立行政法人情報処理推進機構と経済産業省の「モデル契約書」では、各工程の業務について、以下のように契約類型の分類をしています。

出典:独立行政法人情報処理推進機構「モデル取引・契約書見直し検討部会 民法改正対応モデル契約見直し検討WG ~情報システム・モデル取引・契約書~(受託開発(一部企画を含む)、保守運用)〈第二版〉」(2020年12月)14頁

出典:独立行政法人情報処理推進機構「モデル取引・契約書見直し検討部会 民法改正対応モデル契約見直し検討WG ~情報システム・モデル取引・契約書~(受託開発(一部企画を含む)、保守運用)〈第二版〉」(2020年12月)14頁

アジャイル開発の場合

 アジャイル開発とは、開発対象を小さな機能に分割し、要件定義からテスト・リリースまでの開発工程を、機能を単位とした小さいサイクルを反復させる方法で開発していくという方法です。

 アジャイル開発は小規模開発向きとされてはいますが、このような方法を取ることにより、開発中に発生する状況変化に対応しながら開発を進めていくことができるといわれています。

 参考:「アジャイルソフトウェア開発宣言

 アジャイル開発は、開発プロセスのなかで、開発する機能の追加・変更やその優先順位の変更が行われるため、契約を締結する段階で、受託側(ベンダー)が達成すべき結果が明確になっていない場合には、請負契約はなじみにくいということになります。

 なお、独立行政法人情報処理推進機構と経済産業省の「アジャイル開発外部委託モデル契約2 でも、モデル契約は準委任契約を前提とするとされています(<アジャイル開発外部委託モデル契約(解説付き)>1頁)。

AI開発の場合

 AI開発(機械学習の手法を用いたソフトウェア開発)は、これまでのソフトウェア開発と異なりデータを用いるという点に特徴があります。AIの性能が不十分であったとしても、ユーザーの提供したデータが不十分であったことが理由である可能性があり、ベンダーの仕事に問題があったと単純に考えることはできません。

 また、AI開発の特徴として、学習済みモデルの内容・性能等が契約締結時点で不明瞭な場合が多く、ソフトウェアが想定外の挙動をしないことの保証は困難であると指摘されています。このような特徴を考慮すると、AI開発についても準委任契約が親和的であると考えられます。

 *以上について、経済産業省「AI・データの利用に関する契約ガイドライン(AI編)」(2018年6月、48頁)

 なお、AI開発が準委任契約に親和的であるという点は、技術的な問題に根拠があると考えられます。このため、将来的に技術的に大きなブレイクスルーが起きたり、開発経験が蓄積されたりしていくことにより、AIの性能予測がある程度可能になっていけば、AI開発契約を請負で行うこともあり得ると考えられます。

 このように、準委任契約に親和性があると考えられるアジャイル開発やAI開発でも、その根拠は同一ではなく、考え方の前提を理解しておくことが重要です。

まとめ

 請負契約と準委任契約の使い分けは、仕事を達成できるかという不確実性に対するリスクを、当事者間でどのように分配するかの問題であるといえます。

 ITは技術進歩が速く、数年後には新しいトレンドが生じている可能性は高いといえます。しかしながら、そういった変化が速い分野であるからこそ、基本的な考え方を押さえておくことがより重要であるといえるでしょう。


  1. 幾代通・広中敏雄・編「新版注釈民法(16) 債権(7) 雇傭・請負・委任・寄託 §§623~666」5~6頁(有斐閣・1989年)(幾代通執筆部分) ↩︎

  2. 独立行政法人情報処理推進機構、経済産業省「モデル取引・契約書見直し検討部会 DX 対応モデル契約見直し検討 WG ~情報システム・モデル取引・契約書<アジャイル開発版>~ アジャイル開発外部委託モデル契約」(2020年3月) ↩︎

この実務Q&Aを見ている人はこちらも見ています

無料会員登録で
リサーチ業務を効率化

1分で登録完了

無料で会員登録する