ソフトウェア開発委託契約書とは?
ソフトウェア開発委託契約書とは、企業や個人が外部の開発会社やフリーランスエンジニアに対して、アプリケーション・システム・プログラム等の開発を依頼する際に、プロジェクトの範囲や納期、報酬、成果物の権利関係、検収方法、保証、秘密保持などを明確化するための契約書です。
システム開発は、形がない無形の成果物であり、しかも仕様変更が発生しやすい特性があります。そのため、契約書が曖昧なまま進めると、後になって「思っていたものと違う」「追加費用を請求された」「納期が遅れた」「著作権の帰属が不明確」といったトラブルが起きやすくなります。
ソフトウェア開発委託契約書の目的は、これらのリスクを最小化し、発注側(甲)と受注側(乙)の双方が安心してプロジェクトを進められるよう、法律的な一本の“ルールブック”を整備することにあります。
ソフトウェア開発委託契約書が必要となるケース
ソフトウェア開発は多様な形態があり、規模も数万円の小規模アプリから、大型基幹システムの開発まで幅広く存在します。そのため、以下のようなケースでは、必ず契約書を締結する必要があります。
- 業務管理システム、販売管理システム、勤怠管理システムなど企業の業務システムを外注する場合
- スタートアップ企業が新規アプリを開発する場合
- ECサイトや予約管理システムなど、ユーザーと接点を持つWebシステムを開発する場合
- フリーランスエンジニアに部分的な開発(API、モジュールなど)を依頼する場合
- 企業のDX推進に伴うソフトウェア刷新や追加開発を依頼する場合
ソフトウェア開発は、初期の要件定義や仕様調整が十分でないまま発注すると、認識のズレが後半に大きな問題として表面化することが多いため、プロジェクト開始前に契約書で「言葉にできていない部分」まで明確化しておくことが、実務上非常に重要です。
ソフトウェア開発委託契約書に盛り込むべき主な条項
ソフトウェア開発委託契約書には、次のような条項が必ず必要です。
- 業務範囲(要件定義、設計、開発、テストなどの範囲)
- 成果物の明確化(ソースコード、仕様書、テスト証跡など)
- 納期・スケジュール・マイルストーン
- 検収方法(合格基準、期間、不備の対応方法)
- 著作権・知的財産権の帰属
- 秘密保持義務
- 再委託の可否
- 保証(バグ修正期間など)
- 損害賠償・責任範囲
- 契約期間・解除条件・紛争解決方法
これらを体系的に定めておくことで、プロジェクト進行中の混乱を防ぎ、また“言った・言わない問題”をなくす効果があります。
条項ごとの解説と実務ポイント
1. 業務範囲(スコープ)条項
ソフトウェア開発で最も重要なのが、業務範囲(スコープ)の明確化です。「何を作るのか」「どのレベルまで作り込むのか」「誰がどこまで責任を持つのか」。これらが曖昧なまま進むと、後に追加費用をめぐるトラブルが発生します。特に、仕様書が不十分な場合や、アジャイル開発のように進めながら仕様が変わるケースでは、契約書内に“変更が発生した場合の手続き”を明記しておくことが重要です。
2. 成果物・納品物の明確化
成果物は単に「システム」だけではありません。以下のような各種資料も成果物に含まれます。
- ソースコード一式
- 設計書(基本設計・詳細設計)
- テスト仕様書・テスト結果
- マニュアル・操作説明書
- API仕様書や利用ポリシー
とくに、納品後の運用保守を別会社が担当する場合は、テスト仕様書や設計書が不十分だと後続作業に重大な支障をきたします。そのため、成果物の範囲は細かく明記しておく必要があります。
3. 検収方法条項
検収とは、「成果物が仕様どおりに作られているか」を確認するプロセスです。
- 検収期間:14日〜30日程度が一般的
- 不合格の場合:修正して再提出
- 連絡がない場合の扱い:自動的に検収合格とみなすかどうか
検収に不明点があると、発注側は「納品されたけど動かない」、受注側は「検収が終わらず報酬が支払われない」という状況に陥ることがあります。そのため、合格基準と期間を契約書で明確にしておく必要があります。
4. 知的財産権(著作権)条項
成果物の著作権が誰に帰属するかは、非常に重要なポイントです。
一般的には、発注側に著作権を帰属させますが、受注側の既存プログラムやライブラリ(テンプレート、共通処理など)が含まれる場合は、別扱いとなります。
- 著作権は原則として発注側に帰属
- ただし、受注側の既存資産は受注側の権利
- OSSを使用する場合はライセンス条件を明示
権利関係を曖昧にすると、後から編集・改良したいときにトラブルが発生するため、慎重に定めるべき条項です。
5. 保証条項(バグ修正期間)
ソフトウェアは納品直後に不具合が見つかることは珍しくありません。そのため、検収合格後も一定期間、無償修正を行う「保証期間」を設けるのが一般的です。
- 通常:30〜90日程度
- 甲の操作ミスや環境変更による不具合は対象外
- 仕様変更は有償対応
保証期間を定めておくと、発注側も安心して利用できます。
6. 秘密保持条項
システム開発では、顧客情報や業務フロー、内部情報など、機密性の高い情報を扱います。そのため、秘密保持義務を定めることは不可欠です。
- プロジェクト中に知り得た情報の漏洩を禁止
- 契約終了後も一定期間存続(例:5年間)
- 再委託先にも同等の義務を課す
特にスタートアップの場合、未発表のサービス情報が外部に漏れると重大な不利益になるため、秘密保持条項は強く設定しておく方が良いでしょう。
7. 損害賠償条項
開発トラブルが起きた際の“責任の範囲”を明確にしておく必要があります。たとえば、
- 通常損害のみ賠償対象とする
- 売上損失などの間接損害は免責とする
- 受注側の賠償責任上限は契約金額の範囲とする
これを定めておかないと、想定外の莫大な損害を請求されるリスクが生じるため、実務上欠かせない条項となります。
ソフトウェア開発契約で注意すべきポイント
1. 仕様確定前に契約すると危険
よくある失敗が、仕様が固まる前に金額と納期だけ決めて契約してしまうケースです。 仕様変更が頻発し、追加費用の発生や納期遅延につながります。
2. 「アジャイル開発」の場合は別の条項が必要
アジャイル開発は仕様が変動する前提のため、
- 期間型契約(準委任契約)を併用
- 成果物ではなく工数に応じて報酬を支払う
- 変更手続を柔軟に定める
といった対応が必要になります。
3. 納期の遅延条件を明確にする
遅延損害金をどうするか、責任範囲をどう定めるか、プロジェクトの重要度によって適切に定める必要があります。
4. データの扱いと守秘義務の強化
顧客データや金融情報を扱う場合は、一般的な秘密保持契約では不十分なことがあり、追加条項が必要です。
5. 運用保守の範囲も整理する
納品後の運用保守契約(別契約)と混同されることが多いため、
- 開発契約:納品まで
- 保守契約:納品後の対応
と明確に区分しておくことが重要です。
まとめ
ソフトウェア開発委託契約書は、発注側と開発側の認識を揃え、プロジェクトを成功に導くための必須書類です。
- 業務範囲を明確化し、仕様変更の手続きを整備する
- 成果物・検収基準を明確にする
- 知的財産権の帰属を整理する
- 保証期間とサポート範囲を定める
- 秘密保持や損害賠償の範囲を適切に設定する
これらを契約書へ適切に盛り込むことで、開発トラブルを未然に防ぎ、双方が安心してプロジェクトを進めることができます。ソフトウェア開発は専門性が高く、契約書の内容も複雑になりやすいため、重要なプロジェクトの場合はリーガルチェックを受けることも推奨されます。mysignのような電子契約サービスと併用すれば、契約締結から更新・管理までスムーズに行えるため、企業の開発体制をより強固にすることができます。