2σ Guide

ソフトウェア開発契約での
契約不適合責任の特殊性

契約内容が段階的に具体化する開発実務で、バグ、検収、協力義務、セキュリティ、責任制限条項をどう整理するかを企業法務向けに解説します。

4層契約・運営・検収・責任配分
1年知った時からの通知期間
60日取適法上の支払期日設計
本ページは株式会社Dプロフェッションズ(医師/医療機関/弁護士/弁護士法人ではありません)が運営しています。
一般的な情報提供を目的としており医療上の助言や法律相談等を行うものではありません。
広告(PR)を掲載しています。広告は編集内容や推奨を意味しません。
Video

ソフトウェア開発契約での 契約不適合責任の特殊性

契約内容が段階的に具体化する開発実務で、バグ、検収、協力義務、セキュリティ、責任制限条項をどう整理するかを 企業法務 向けに解説します。

動画を読み込み中…
2σ GUIDE ・ VIDEO
ソフトウェア開発契約での 契約不適合責任の特殊性
契約内容が段階的に具体化する開発実務で、バグ、検収、協力義務、セキュリティ、責任制限条項をどう整理するかを 企業法務 向けに解説します。
動画の文字起こし(全文テキスト)

2σ GUIDE ・ VIDEO

  • ソフトウェア開発契約での 契約不適合責任の特殊性
  • 契約内容が段階的に具体化する開発実務で、バグ、検収、協力義務、セキュリティ、責任制限条項をどう整理するかを 企業法務 向けに解説します。

POINT 1

  • ソフトウェア開発契約の契約不適合責任の全体像
  • バグの有無だけでなく、契約内容の確定、検収、追完、責任配分を同時に見る必要があります。
  • 契約不適合責任は四層で管理する
  • 契約内容の確定層
  • プロジェクト運営層

POINT 2

  • ソフトウェア開発契約で契約不適合責任が特殊になる理由
  • ユーザ側の協力遅延
  • 業務要件の未整理、既存仕様の未開示、レビュー期限の徒過、検収テスト不足、承認済み仕様の後日変更が問題になります。
  • ベンダ側の警告不足
  • 要件定義の不備、スケジュール遅延、品質悪化、性能・セキュリティリスクを早期に説明しない場合に問題になります。

POINT 3

  • ソフトウェア開発契約で契約不適合責任を判断する基準
  • 仕様、業務目的、非機能要件、法令・規制適合性を分けて確認します。
  • 仕様適合性
  • 目的適合性
  • 非機能要件適合性

POINT 4

  • ソフトウェア開発契約の検収と契約不適合責任
  • 1. 納入物の範囲を確認:契約、別紙、設計書、成果物一覧と納入物を照合します。
  • 2. 検査期間内に受入テスト:合格基準、再現条件、業務影響、証拠を記録します。
  • 3. 不合格または残課題があるか:指摘事項を抽象的な不満ではなく仕様との対応で整理します。
  • 4. 再納入・修補期限を合意:残課題リスト、優先度、期限、費用負担を明確にします。
  • 5. 検収・保守移行:検収書、留保事項、保証期間、保守範囲を確認します。

POINT 5

  • ソフトウェア開発契約の契約不適合責任と期間制限
  • 民法上の通知期間、契約上の保証期間、消滅時効を別々に整理します。
  • 実務では、検収完了日または納入日から一定期間に限定する保証期間条項がよく用いられます。
  • たとえば、検収完了日から6か月以内に通知を受けた、自己の責めに帰すべき契約不適合について無償修補する、という設計です。
  • 通知期間と債権の消滅時効は別の問題です。

POINT 6

  • ソフトウェア開発契約の契約不適合責任で使われる救済手段
  • 1. 不具合・未達事項の列挙:再現条件、業務影響、証拠を具体化します。
  • 2. 契約条項・仕様書との対応:どの合意内容に適合しないのかを示します。
  • 3. 追完期限と必要対応の催告:修補可能性、履行見込み、協議記録を残します。
  • 4. 解除後の処理を確認:データ、ソースコード、知財、移行支援、既払金精算を整理します。

POINT 7

  • アジャイル開発における契約不適合責任
  • 1. 契約類型と役割分担:準委任中心か、請負的成果を含めるか、プロダクトオーナーの権限と責任を明確にします。
  • 2. バックログと優先順位:作成、優先順位付け、変更方法、未確定事項の扱いを定めます。
  • 3. 成果確認と受入基準:レビュー、デモ、欠陥管理、技術的助言、品質基準を記録します。
  • 4. MVP・商用利用開始の基準:品質基準、セキュリティ基準、障害対応、運用移行を別途設計します。

POINT 8

  • セキュリティ・データ・クラウド時代の契約不適合責任
  • セキュリティ仕様
  • 適用基準、脆弱性診断の対象・頻度・費用、認証・認可、ログ、暗号化、インシデント通知、OSS脆弱性管理を定めます。
  • データ移行
  • 旧データの正確性、抽出仕様、クレンジング、移行テスト、ロールバック、照合ルール、移行後の不整合対応を定めます。

まとめ

  • ソフトウェア開発契約での 契約不適合責任の特殊性
  • ソフトウェア開発契約の契約不適合責任の全体像:バグの有無だけでなく、契約内容の確定、検収、追完、責任配分を同時に見る必要があります。
  • ソフトウェア開発契約で契約不適合責任が特殊になる理由:契約内容が途中で具体化し、初期不具合、契約類型、協力義務が責任判断に影響します。
  • ソフトウェア開発契約で契約不適合責任を判断する基準:仕様、業務目的、非機能要件、法令・規制適合性を分けて確認します。
  • 本動画は一般的な情報提供であり、法律上の助言ではありません。記載の数値・金額・期間は目安です。個別事情で結論は変わります。
Overview

ソフトウェア開発契約の契約不適合責任の全体像

バグの有無だけでなく、契約内容の確定、検収、追完、責任配分を同時に見る必要があります。

ソフトウェア開発契約での契約不適合責任は、成果物に不具合があるかどうかだけで決まりません。中心になるのは、何が契約内容として合意されたのか、その成果物が合意内容に適合しているのか、不具合発見後に誰がどの範囲で追完・報酬減額・損害賠償・解除のリスクを負うのかという整理です。

民法上、契約不適合責任は、目的物や仕事の成果が種類・品質・数量等について契約内容に適合しない場合の責任として整理されます。2020年施行の改正民法では、旧来の瑕疵担保責任から契約不適合責任へ再構成され、追完、減額、損害賠償、解除を契約内容との適合性を軸に考える実務へ移りました。

ソフトウェア開発契約で重要なのは、要件定義、基本設計、詳細設計、テスト、受入、保守移行の各場面で契約内容が変化し得る点です。この重要ポイントは、責任判断が納品後だけでなく開発前から始まることを示します。四つの層がどの役割を担うかを読み取り、抜けている層がないかを確認してください。

契約不適合責任は四層で管理する

契約内容の確定、プロジェクト運営、検収・追完、責任配分を分けて設計すると、バグ、仕様変更、追加開発、保守の境界を後から説明しやすくなります。

次の一覧は、ソフトウェア開発契約で契約不適合責任を管理する四つの層を表します。各層は読者が契約書とプロジェクト資料を確認する際の視点になるため重要です。どの層に要件定義書、議事録、検収条件、責任制限条項を置くべきかを読み取ってください。

Layer 01

契約内容の確定層

要件定義書、基本設計書、詳細設計書、仕様書、SLA、セキュリティ仕様、性能要件、受入基準を明確にします。

Layer 02

プロジェクト運営層

変更管理、課題管理、議事録、承認手続、ユーザの協力義務、ベンダのプロジェクトマネジメント義務を記録します。

Layer 03

検収・追完層

検査期間、検収条件、不合格時の再納入、バグ修補、代替措置、保守との切り分けを定めます。

Layer 04

責任配分層

契約不適合責任の期間、責任上限、間接損害、故意・重過失、第三者ソフトウェア、セキュリティ事故、取適法上の支払規制を整理します。

この四層のいずれかが曖昧なまま開発が進むと、納品後に、バグか仕様変更か、検収済みか未完成か、無償修補か有償保守か、解除できるほど重大か、損害賠償の上限が適用されるかといった争点が生じやすくなります。

Section 01

ソフトウェア開発契約で契約不適合責任が特殊になる理由

契約内容が途中で具体化し、初期不具合、契約類型、協力義務が責任判断に影響します。

ソフトウェア開発契約では、契約締結時点でシステムの細部が完全に決まっていないことが少なくありません。ユーザの業務要件、既存システムの制約、データ構造、外部システム連携、現場業務の例外処理が、開発工程を通じて具体化されます。

契約不適合の判断では、契約書本文だけでなく、プロジェクト全体の文書群が契約内容を補う資料になります。次の比較表は、どの資料がどの判断に関係するかを示すものです。資料ごとの役割を押さえることで、契約内容の根拠が単一文書に閉じないことを読み取れます。

資料群契約不適合責任での意味確認したい点
RFP、提案書、見積書初期の期待値、前提条件、対象範囲を示します。提案時の前提と契約本文がずれていないか。
要件定義書、業務一覧、非機能要件機能、性能、セキュリティ、運用水準の基準になります。測定可能な受入基準になっているか。
設計書、画面仕様、API仕様後工程で成果物が適合すべき具体的内容になります。承認履歴と変更履歴が残っているか。
課題管理表、変更管理票、議事録仕様変更、承認、リスク説明、協力遅延の証拠になります。誰がいつ何を承認したか。
テスト結果、検収書、障害記録完成、既知不具合、残課題、追完範囲を示します。不合格理由、再現条件、修補期限が明確か。

ソフトウェアには一定程度の不具合が発生し得ます。重要なのは、技術的な意味でのバグと法律上の契約不適合を分けることです。軽微な表示崩れ、テスト工程で当然に修補される不具合、指摘後に遅滞なく修補された不具合は、直ちに重大な契約不適合を基礎づけるとは限りません。

一方で、合意された主要機能の未実装、仕様書上必須の処理誤り、業務中核機能の重大な誤処理、性能要件の大幅な未達、セキュリティ仕様違反、重大なデータ移行不備、修補不能または長期化する不具合は、契約不適合と評価されるリスクが高くなります。

工程ごとの契約類型も責任判断を変えます。次の比較表は、工程・業務ごとに典型的な契約類型と責任の焦点を整理したものです。請負か準委任かで何を約束した契約なのかが変わるため、工程ごとの違いを読み取ることが重要です。

工程・業務典型的な契約類型契約不適合責任との関係
企画、構想策定、RFP作成支援準委任完成物責任よりも調査・助言・説明義務が中心です。
要件定義支援準委任または請負的要素を含む準委任要件確定の責任分担、成果物の正確性が問題になります。
基本設計・詳細設計請負または準委任設計書が後工程の契約内容になります。
製造・実装請負が多い成果物の契約適合性が中心になります。
テスト請負または準委任テスト範囲、合格基準、障害分類が重要です。
アジャイル開発準委任が有力完成物保証より協働、プロセス、善管注意が中心になります。
保守・運用準委任、役務提供、SLA型障害対応水準、SLA不達、保守範囲が中心になります。

ユーザの協力義務も品質を左右します。業務要件、既存システム情報、データ、承認、受入テストをユーザが適時に提供しなければ、遅延や品質低下が起きやすくなります。他方で、ベンダが要件不備やリスクを認識しながら警告しなかった場合は、説明義務、助言義務、プロジェクトマネジメント義務が問題になります。

次の一覧は、責任帰属を検討するときに見落としやすい要素を示します。左右の当事者を単純に非難するのではなく、情報提供、警告、承認、記録のどこに問題があったかを読み取ることが重要です。

ユーザ側の協力遅延

業務要件の未整理、既存仕様の未開示、レビュー期限の徒過、検収テスト不足、承認済み仕様の後日変更が問題になります。

ベンダ側の警告不足

要件定義の不備、スケジュール遅延、品質悪化、性能・セキュリティリスクを早期に説明しない場合に問題になります。

記録管理の不足

課題管理、変更管理、議事録、テスト結果、不具合分類が不十分だと、契約内容と不適合の対応関係が曖昧になります。

Section 02

ソフトウェア開発契約で契約不適合責任を判断する基準

仕様、業務目的、非機能要件、法令・規制適合性を分けて確認します。

契約不適合の最も基本的な判断基準は、成果物が仕様書に適合しているかです。仕様書には、機能仕様、画面仕様、帳票仕様、データ仕様、外部インターフェース仕様、権限管理、ログ、エラーハンドリング、運用仕様などが含まれます。

ただし、仕様書にすべてが明記されているとは限りません。明記されていない項目は、契約の目的、提案書、業務フロー、議事録、業界標準、通常期待される品質、法令・規制、セキュリティ基準などから補充的に判断されることがあります。

次の一覧は、ソフトウェア開発契約で成果物が何に適合すべきかを四つの観点で整理したものです。観点ごとに必要な証拠が異なるため、契約書レビューとプロジェクト管理の両方で何を残すべきかを読み取ってください。

Spec

仕様適合性

画面、帳票、API、データ処理、権限管理、ログ、エラー処理など、合意された仕様と実装の差異を確認します。

Purpose

目的適合性

形式上の仕様一致だけでなく、販売管理、会計、決済、監査などの業務目的を達成できるかを確認します。

Quality

非機能要件適合性

性能、可用性、拡張性、運用性、保守性、移行性、セキュリティ、監査性、信頼性を測定可能な基準で確認します。

Law

法令・規制適合性

個人情報保護、金融、医療、電子帳簿保存、税務、労務、業法上の記録義務、監査証跡などの反映範囲を確認します。

目的適合性では、対象業務範囲、対象ユーザ数、同時接続数、ピーク時処理量、主要KPI、許容処理時間、業務停止時の影響、法令・監査・内部統制上の必須要件、本番稼働判定基準を明確にすることが重要です。

非機能要件では、抽象的な高品質ではなく、平均応答時間、最大応答時間、同時接続数、処理件数、バッチ処理時間、稼働率、復旧時間目標、復旧時点目標、バックアップ頻度、ログ保存期間、脆弱性診断の対象範囲と合格基準、暗号化、認証、権限管理、障害通知時間を定めます。

法令・規制適合性では、ユーザが自社業務に適用される法令・規制要件を特定し、ベンダがそれをシステム仕様へ反映する方法を提案し、法務・外部専門家が法令解釈と責任範囲を確認する役割分担が有効です。

Section 03

ソフトウェア開発契約の検収と契約不適合責任

検収は責任の終わりではなく、既知不具合、残課題、保守移行を区別する起点です。

検収とは、ユーザが成果物を確認し、契約上の納入物として受け入れる手続です。ソフトウェア開発では、検収は単なる事務処理ではなく、報酬支払、納入完了、契約不適合責任期間の起算、保守フェーズ移行の基準になります。

検収条項では、納入物の範囲、検査期間、検査方法、合格基準、不合格時の通知方法、不合格理由の具体化、再納入、再検査、みなし検収、検収後の契約不適合責任、保守契約への移行を定めます。

次の判断の流れは、納入から保守移行までに何を確認するかを表します。順番どおりに記録を残すことで、検収済みの効果、残課題の扱い、後日発見された不具合の位置づけを読み取りやすくなります。

検収から追完・保守移行までの判断の流れ

納入物の範囲を確認

契約、別紙、設計書、成果物一覧と納入物を照合します。

検査期間内に受入テスト

合格基準、再現条件、業務影響、証拠を記録します。

不合格または残課題があるか

指摘事項を抽象的な不満ではなく仕様との対応で整理します。

ある
再納入・修補期限を合意

残課題リスト、優先度、期限、費用負担を明確にします。

ない
検収・保守移行

検収書、留保事項、保証期間、保守範囲を確認します。

検収済みでも、検収時に発見困難な重大不具合、特定条件下で発生する障害、セキュリティ脆弱性、データ移行の欠落などが後から問題になることがあります。他方で、合理的に発見できた不具合を検収時に指摘せず後日広範に主張する場合は、信義則、検収合意、責任期間条項、過失相殺、協力義務違反が問題になります。

みなし検収は、ユーザの検査遅延により報酬支払が不当に遅れることを防ぐために有効です。ただし、重大な契約不適合をベンダが知りながら黙っていた場合や、納入物が契約目的を達成できないほど不完全な場合まで機械的に免責するとは限りません。

情報成果物作成委託では、取適法上、検査の有無にかかわらず受領後60日以内に定めた支払期日までの支払が問題になります。契約不適合責任と検収・支払を設計する際は、民事契約上の合意だけでなく、受領、検査、支払期日の規制も確認する必要があります。

Section 04

ソフトウェア開発契約の契約不適合責任と期間制限

民法上の通知期間、契約上の保証期間、消滅時効を別々に整理します。

請負契約で目的物の種類または品質に関する契約不適合がある場合、注文者は、その不適合を知った時から1年以内に通知しなければ、追完、報酬減額、損害賠償、解除を主張できないとされています。ただし、引渡時または仕事終了時に請負人が不適合を知っていた場合や、重大な過失により知らなかった場合は、この期間制限が適用されないことがあります。

実務では、検収完了日または納入日から一定期間に限定する保証期間条項がよく用いられます。たとえば、検収完了日から6か月以内に通知を受けた、自己の責めに帰すべき契約不適合について無償修補する、という設計です。

次の比較表は、契約上の保証期間を設計するときの主な論点を整理したものです。ベンダ側とユーザ側の視点がずれやすい箇所なので、右列の調整案から、どの例外を残すべきかを読み取ってください。

論点ベンダ側の視点ユーザ側の視点実務上の調整案
起算点検収完了日が望ましい発見時起算が望ましい原則は検収日、重大・潜在不具合は例外にします。
期間短期間が望ましい業務影響を考え長めが望ましいシステム重要度で6か月、1年、2年等を選択します。
対象仕様不一致に限定したい品質・性能・セキュリティも含めたい契約不適合の定義を明確にします。
故意・重過失例外化もやむを得ない必ず例外化したい故意・重過失、秘匿、重大セキュリティ不備は例外にします。
保守との関係保証期間後は有償保守不適合は無償対応保証、不具合修補、保守、追加開発を分類します。

通知期間と債権の消滅時効は別の問題です。通知期間内に通知しても、権利行使を長期間放置すれば時効が問題になります。逆に契約上の保証期間を過ぎても、故意・重過失、説明義務違反、一般の債務不履行、不法行為、秘密保持・個人情報・知財侵害など別構成が問題になることがあります。

そのため、契約不適合責任の期間だけでなく、損害賠償責任、秘密保持、個人情報、知財、セキュリティ、データ保全の存続期間も整合的に設計する必要があります。

Section 05

ソフトウェア開発契約の契約不適合責任で使われる救済手段

追完、報酬減額、損害賠償、解除は、ソフトウェア特有の修補可能性と業務影響を踏まえて検討します。

契約不適合の最も実務的な救済は追完です。ソフトウェアでは、代替物の引渡しよりも、バグ修補、パッチ提供、設定変更、データ修正、設計修正、追加テスト、代替運用の提供が中心になります。

次の一覧は、契約不適合責任で検討される四つの救済手段を、ソフトウェア開発の場面に置き換えて整理したものです。救済手段ごとに効果と難点が異なるため、どの段階でどの手段が現実的かを読み取ることが重要です。

1

追完請求

修補、代替措置、設定変更、再テスト、暫定回避策を中心に検討します。仕様変更や追加開発との切り分けが必要です。

修補中心
2

報酬減額請求

一部機能が未実装でも全体利用が可能な場合や、修補に過大な費用・期間を要する場合に調整手段になります。

価値調整
3

損害賠償

業務停止、データ復旧費用、再開発費用、顧客対応費用などについて、帰責性、因果関係、責任制限条項を確認します。

上限確認
4

解除

契約目的を達成できないほど重大で、追完不能または履行見込みがない場合に慎重に検討します。

重大性

追完では、ある不具合を修正すると別機能に影響が出ることがあります。契約書では、修補後の再テスト、影響範囲確認、リグレッションテスト、修補期限、暫定回避策、ユーザ協力、緊急対応を定める必要があります。

損害賠償では、直接かつ通常の損害に限定するか、逸失利益・間接損害・特別損害を除外するか、上限を委託料相当額や個別契約額にするか、故意・重過失、秘密保持違反、個人情報漏えい、知財侵害、セキュリティ違反を上限除外にするかが中心論点になります。

解除は影響が大きいため、次の手順で事実と証拠を整理することが望ましいです。この判断の流れは、解除を感情的な決裂ではなく法的効果を伴う手続として扱うために重要です。各段階で契約条項との対応と証拠を残すべきことを読み取ってください。

解除前に整理する行動の順番

不具合・未達事項の列挙

再現条件、業務影響、証拠を具体化します。

契約条項・仕様書との対応

どの合意内容に適合しないのかを示します。

追完期限と必要対応の催告

修補可能性、履行見込み、協議記録を残します。

解除後の処理を確認

データ、ソースコード、知財、移行支援、既払金精算を整理します。

Section 06

アジャイル開発における契約不適合責任

固定仕様への一致だけでなく、協働プロセス、バックログ管理、善管注意義務が中心になります。

アジャイル開発では、契約締結時にすべての仕様を確定し、その完成物に対して検収する発想が適合しにくい場面があります。プロダクトバックログ、スプリント、レビュー、レトロスペクティブ、MVP、継続的改善を前提とするためです。

アジャイル開発でも、不適切な成果物、重大な実装ミス、セキュリティ不備、説明義務違反、善管注意義務違反が当然に免責されるわけではありません。ただし、契約不適合責任の中心は、固定仕様への不一致よりも、合意された開発プロセス、役割分担、バックログ管理、レビュー、技術的助言、品質管理の履行へ移ります。

次の時系列は、アジャイル開発で契約不適合責任を管理する確認場面を表します。順番ごとに誰が承認し、何が成果として確認されたかを残すことが重要です。各段階から、完成保証だけに頼らずプロセス上の責任を読み取ってください。

契約前

契約類型と役割分担

準委任中心か、請負的成果を含めるか、プロダクトオーナーの権限と責任を明確にします。

計画

バックログと優先順位

作成、優先順位付け、変更方法、未確定事項の扱いを定めます。

各スプリント

成果確認と受入基準

レビュー、デモ、欠陥管理、技術的助言、品質基準を記録します。

リリース

MVP・商用利用開始の基準

品質基準、セキュリティ基準、障害対応、運用移行を別途設計します。

したがって、旧来型の納入物が仕様書に適合しない場合は無償修補という条項をそのまま流用するのではなく、スプリント単位の確認、成果物の定義、プロダクトオーナーの承認、変更容易性、未確定事項の扱いを設計する必要があります。

Section 07

セキュリティ・データ・クラウド時代の契約不適合責任

脆弱性、データ移行、OSS、クラウド障害は、仕様と責任分界点を契約で明確にします。

近年のソフトウェア開発契約では、セキュリティ、データ移行、クラウド基盤、OSS、外部APIが契約不適合責任の中心論点になりやすくなっています。脆弱性、認証不備、権限管理不備、暗号化不備、ログ不足、クラウド設定ミス、秘密情報・個人情報漏えいは、技術問題にとどまらず債務不履行や第三者請求にもつながります。

次の一覧は、セキュリティ・データ・クラウド領域で契約不適合責任に発展しやすい要素を示します。リスクの種類ごとに契約で決めるべき責任分界点が異なるため、どの要素を仕様書・別紙・保守契約に落とすべきかを読み取ってください。

セキュリティ仕様

適用基準、脆弱性診断の対象・頻度・費用、認証・認可、ログ、暗号化、インシデント通知、OSS脆弱性管理を定めます。

データ移行

旧データの正確性、抽出仕様、クレンジング、移行テスト、ロールバック、照合ルール、移行後の不整合対応を定めます。

第三者ソフトウェア

OSS、商用ミドルウェア、クラウド、外部API、SaaS連携の一覧、ライセンス、費用、仕様変更、EOL対応を定めます。

データ移行では、旧システムのデータ欠損・重複・不整合が新システムに移ってしまうことがあります。次の比較表は、移行工程で確認すべき責任分担を示します。旧データ、移行ツール、仕様定義、ユーザ確認、ベンダ実装のどこに問題があるかを分けて読み取ることが重要です。

確認項目主な責任分担契約で決める点
旧データの正確性ユーザが業務データの性質を把握します。欠損・重複・不整合の扱いを定めます。
抽出・変換仕様双方で仕様を確認し、ベンダが技術的実装を担います。変換ルール、例外処理、照合方法を定めます。
移行リハーサルベンダが実施し、ユーザが業務観点で確認します。合格基準、失敗時の再実施、費用負担を定めます。
本番移行判定責任者が移行可否を承認します。判定者、ロールバック、バックアップを定めます。
移行後の不整合原因に応じて無償修補、有償対応、保守対応を分けます。発見時期、通知方法、修補範囲を定めます。

第三者ソフトウェアやクラウド基盤については、ベンダがすべての外部要因を保証できるとは限りません。第三者ソフトウェアの一覧、ライセンス、費用負担、OSSライセンス遵守、脆弱性情報の監視範囲、クラウド障害時の責任分担、API仕様変更時の対応費用、サポート終了・バージョンアップ対応を定める必要があります。

Section 08

ソフトウェア開発契約の責任制限条項を設計する

委託料に比べて損害が大きくなりやすいため、上限、除外、例外を多層的に設計します。

ソフトウェア開発では、委託料に比べて損害額が大きくなりやすい傾向があります。数百万円の開発委託であっても、基幹業務停止により数千万円・数億円の損害が主張されることがあります。そのため、責任制限条項はベンダにとって重要です。

一方で、責任制限が広すぎると、重大な不具合、故意・重過失、個人情報漏えい、知財侵害、セキュリティ事故まで十分な救済を得られないおそれがあります。

次の比較表は、責任制限条項で分類すべき責任の種類を示します。単に委託料を上限と書くのではなく、通常の不適合と重大リスクを分けることが重要です。どの項目を上限内に置き、どの項目を例外にするかを読み取ってください。

項目典型的な設計
通常の契約不適合個別契約の委託料または一定月数分を上限にします。
軽微な不具合追完を原則とし、損害賠償は限定します。
間接損害・逸失利益原則除外または特別合意時のみ対象にします。
故意・重過失上限除外または別上限を検討します。
秘密保持違反上限除外または高額上限を検討します。
個人情報漏えい調査費、通知費、行政対応費の扱いを明確にします。
知財侵害第三者請求対応、差止回避、代替提供を明確にします。
セキュリティ事故仕様違反か運用起因かで分担します。
データ損失バックアップ責任、復旧範囲、免責条件を明確にします。

責任制限条項は、契約不適合責任、一般債務不履行、不法行為、秘密保持、個人情報、知財、セキュリティ、再委託先、保守運用の各責任に適用されるかを明確にする必要があります。例外を置く場合は、故意・重過失、秘匿、重大セキュリティ不備、個人情報漏えい、知財侵害などの範囲を契約上読み取れる文言にします。

Section 09

ソフトウェア開発契約の条項例と調整ポイント

モデル的な文言は、取引規模、契約類型、セキュリティ要件、取適法、個人情報、知財に応じて調整します。

条項例は、考え方を示すための素材であり、そのまま利用するものではありません。実際の契約では、取引規模、システム重要度、契約類型、交渉力、業法、取適法、個人情報、知財、セキュリティ要件に応じて調整します。

次の一覧は、契約不適合責任を扱う主要条項と、その条項で何を決めるべきかを整理したものです。条項名だけを置くのではなく、参照文書、例外、協議手続、証拠化の範囲を読み取ってください。

Definition

契約不適合の定義

契約、個別契約、要件定義書、設計書、仕様書、電磁的方法で合意した文書を参照し、種類、品質、機能、性能、セキュリティ仕様への不適合を定義します。

Acceptance

検収条項

受領後の検査期間、不合格通知の具体化、不適合の内容、再現条件、該当仕様、業務影響、みなし検収の例外を定めます。

Cure

追完条項

修補、代替措置、設定変更、合意した方法による追完を定め、業務影響、技術的実現可能性、費用、期間を協議します。

Change

仕様変更・追加開発

機能追加、利用環境変更、対象業務拡大、性能要件変更、外部システム仕様変更への対応を変更管理手続に載せます。

Cooperation

ユーザ協力義務

業務要件、資料、データ、既存システム情報、レビュー、承認、検収、テスト協力、法令・業務要件の提供を定めます。

Cap

責任制限条項

請求原因を問わない上限、個別契約ベースの上限額、故意・重過失、秘密保持、個人情報、知財侵害の例外を定めます。

契約不適合の定義では、ユーザの指示、提供資料、提供データ、利用環境、第三者サービス、承認済み変更に起因する不適合をどこまで除外するかが重要です。ただし、ベンダが不適当性を知りながら告げなかった場合は別扱いにすることで、ユーザ起因と警告義務のバランスを取ります。

検収条項では、不合格通知を具体化させることが重要です。使えない、期待と違うという抽象的な通知では、修補範囲が不明確になります。追完条項では、必ずしもユーザが求める方法だけが唯一の追完方法ではなく、代替措置もあり得ることを明記します。

Section 10

ソフトウェア開発契約で企業法務が確認すべきチェックリスト

契約前、開発中、検収時、障害発生時に分けて、証拠と責任分担を確認します。

企業法務が確認すべき事項は、契約締結前だけに集中していません。開発中の議事録、変更管理、テスト結果、検収時の留保、障害発生時の通知までつながっています。次の一覧は時点ごとの確認項目を表し、どの時点で何を証拠化すべきかを読み取るために重要です。

Before

契約締結前

目的、対象業務、請負・準委任・成果報酬型準委任・保守・SaaSの区別、RFP・提案書・見積前提・契約書・仕様書の矛盾、要件定義責任を確認します。

  • 非機能要件、セキュリティ要件、性能要件が数値化されているか。
  • 第三者ソフトウェア、OSS、クラウド、外部APIの責任分担があるか。
  • 協力義務、警告・助言義務、検収基準、責任期間、責任上限が明確か。
During

開発中

議事録、課題管理表、変更管理票、承認証跡、遅延・品質問題・リスク報告、テスト計画・結果、不具合分類を継続的に確認します。

  • 仕様変更の費用・納期影響が合意されているか。
  • 重大課題について責任者協議が行われているか。
  • セキュリティ、データ移行、性能について別途レビューしているか。
Acceptance

検収時

納入物一覧、検収基準、不合格事項、残課題、修補期限、留保事項、本番移行判定と検収の区別、保守移行条件を確認します。

  • 不合格事項を具体的に通知したか。
  • 残課題をリスト化し期限を合意したか。
  • 保守契約への移行条件を確認したか。
Incident

検収後・障害発生時

不具合の再現条件、ログ、画面、データ、影響範囲、通知期間、仕様との対応、修補・代替措置・有償変更の切り分けを確認します。

  • 保守契約・SLA・契約不適合責任のどれに基づく対応か整理したか。
  • 損害拡大防止措置を講じたか。
  • 経営層、法務、IT、外部専門家、会計、監査、広報、個人情報担当が連携したか。
Section 11

ソフトウェア開発契約の契約不適合責任FAQ

よくある疑問を、一般的な制度説明として整理します。個別案件では契約書と証拠関係で結論が変わります。

納品物にバグがあれば、必ず契約不適合ですか。

一般的には、ソフトウェア開発では一定の不具合発生が技術的に想定されるため、バグの存在だけで直ちに契約不適合と評価されるとは限らないとされています。ただし、合意された仕様・品質からの逸脱、業務影響、修補可能性、修補対応の適切性、不具合の重大性によって結論が変わる可能性があります。具体的な評価は、契約書、仕様書、テスト結果、障害記録を整理したうえで弁護士等の専門家へ相談する必要があります。

検収したら、後から不具合を主張できませんか。

一般的には、検収済みでも、検収時に発見困難な重大不具合や、ベンダが知りながら告げなかった不具合については、契約不適合責任が問題となる余地があります。ただし、契約上の保証期間、通知期間、みなし検収、保守条項、ユーザの検査義務によって結論が変わる可能性があります。具体的な対応は、検収記録と障害記録を整理したうえで弁護士等の専門家へ相談する必要があります。

契約書に検収後6か月とある場合、民法の知った時から1年は使えませんか。

一般的には、商取引では契約上の特約が重視されるとされています。ただし、特約の文言、故意・重過失の有無、潜在不具合、一般の債務不履行、消滅時効、信義則、個別事情によって解釈が変わる可能性があります。具体的な見通しは、契約条項と発見・通知の時期を整理したうえで弁護士等の専門家へ相談する必要があります。

ユーザが要件を決めきれなかった場合でも、ベンダは責任を負いますか。

一般的には、ユーザの資料・指示・承認に起因する不適合については、ユーザ側の責任や過失相殺が問題となる可能性があります。他方で、ベンダが専門家として要件不備やリスクを認識しながら警告しなかった場合は、説明義務、助言義務、プロジェクトマネジメント義務が問題となる可能性があります。具体的な判断は、議事録、課題管理表、承認履歴を整理したうえで弁護士等の専門家へ相談する必要があります。

アジャイル開発でも契約不適合責任はありますか。

一般的には、アジャイル開発でも不適切な成果物、重大な実装ミス、セキュリティ不備、説明義務違反、善管注意義務違反が問題となる可能性があります。ただし、固定仕様への一致ではなく、合意されたプロセス、バックログ、スプリント成果、レビュー、品質基準、プロダクトオーナーの役割、技術的助言義務が中心となることがあります。具体的な整理は、契約類型とスプリント記録を確認したうえで弁護士等の専門家へ相談する必要があります。

セキュリティ脆弱性は契約不適合ですか。

一般的には、契約で定めたセキュリティ仕様、適用基準、脆弱性診断条件、業務上必要な安全性を満たしていない場合、契約不適合または債務不履行が問題となる可能性があります。ただし、リスク水準、コスト、運用責任、クラウド設定、パッチ適用、OSS脆弱性管理の分担によって結論が変わります。具体的な対応は、仕様書、診断結果、運用記録を整理したうえで弁護士等の専門家へ相談する必要があります。

Section 12

契約不適合責任は開発前から設計する

ソフトウェア開発契約の失敗は、契約設計、意思決定、社内体制、リスク管理の問題として捉える必要があります。

ソフトウェア開発契約での契約不適合責任の特殊性は、成果物が無形であることだけに由来するものではありません。より本質的には、契約内容が段階的に具体化し、ユーザとベンダの協働によって品質が形成され、バグ、仕様変更、追加開発、保守が密接に絡み合う点にあります。

次の重要ポイントは、企業法務、IT部門、経営者がそれぞれ何を担うべきかを表します。役割ごとの視点を分けることで、納品後の責任追及だけでなく、紛争を起こさない契約運営へつなげることが重要です。どの部門がどの記録と意思決定を支えるかを読み取ってください。

契約書はリスク移転の文書だけでなく、プロジェクト運営の設計図です

要件定義、仕様、非機能要件、セキュリティ、検収、変更管理、協力義務、追完、責任制限、保守移行を開発前から設計することが、契約不適合責任をめぐる紛争予防につながります。

企業法務にとって重要なのは、契約書を単なるリスク移転の文書として見るのではなく、プロジェクト運営の設計図として位置づけることです。IT部門にとって重要なのは、仕様書、議事録、課題管理、テスト記録を、将来の法的判断を支える証拠として整備することです。経営者にとって重要なのは、ソフトウェア開発の失敗が、ベンダ選定だけでなく契約設計、意思決定、社内体制、リスクマネジメントの問題でもあると理解することです。

最終的に、ソフトウェア開発契約での契約不適合責任の特殊性を正しく理解することは、紛争時に勝つためだけではなく、紛争を発生させないための実務です。

Reference

この記事の参考情報源

公的資料、モデル契約、システム開発紛争に関する中立的資料を整理しています。

法令・公的資料

  • e-Gov 法令検索「民法」
  • 法務省「民法(債権関係)の改正に関する説明資料-主な改正事項-」
  • 経済産業省「情報システム・ソフトウェア取引トラブル事例集」
  • 公正取引委員会「取適法」
  • 公正取引委員会「よくある質問コーナー(取適法)」

モデル契約・研究資料

  • IPA「情報システム・モデル取引・契約書(第二版)」
  • IPA「情報システム・モデル取引・契約書からの見直しのポイント」
  • IPA「情報システム・モデル取引・契約書(アジャイル開発版)」
  • 一般財団法人ソフトウェア情報センター システム開発紛争判例研究会「判例で読み解くシステム開発紛争」