[速習] システム開発契約の基礎知識 第1回 契約形態の選び方と見積もりの関係

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521573/212f8c22-e9fe-421e-aa99-d382194011c4.png)

https://x.com/ShigemoriMasato

ソフトウェア開発プロジェクトを始める際、最初に直面する重要な意思決定の一つが契約形態の選択です。この選択は単なる事務手続きではなく、プロジェクトの成否を左右する戦略的な判断となります。なぜなら、契約形態によってリスクの所在、責任範囲、そして見積もり金額が大きく変わるからです。

本シリーズでは、全3回にわたってソフトウェア開発における契約実務を体系的に解説します。第1回となる本記事では、主要な契約形態の特徴と、それぞれの見積もり方法について、実務経験に基づいた詳細な説明を行います。

**シリーズ構成**
- 第1回：契約形態の基礎知識と見積もりの関係（本記事）
- 第2回：開発手法と契約の適合性 - ウォーターフォールとアジャイルの使い分け
- 第3回：実践的な契約締結とリスク管理の手法

## ソフトウェア開発における契約形態の全体像

ソフトウェア開発で使われる契約形態は、大きく分けて4つに分類されます。それぞれの契約形態は、提供する価値、責任範囲、リスクの所在が根本的に異なります。この違いを正確に理解することが、適切な契約選択の第一歩となります。

```mermaid
%%{init: {'theme':'base'}}%%
graph TB
    subgraph "契約形態の分類"
        A[労働者派遣契約]
        B[SES契約/準委任]
        C[請負契約]
    end
    subgraph "提供する価値"
        A --> E[労働力の提供]
        B --> F[専門技術の提供]
        C --> G[完成品の納品]
    end
```
**図1: 契約形態の分類と提供価値**

### 労働者派遣契約の詳細解説

労働者派遣契約は、労働者派遣法[^1]に基づいて締結される契約形態です。この契約の本質は、派遣元企業が雇用する技術者を、派遣先企業の指揮命令下で働かせることにあります。労働者派遣契約の最大の特徴は、業務の指揮命令権が完全に派遣先企業にあることです。これは、日々の作業指示から勤務時間の管理まで、すべて派遣先企業が行うことを意味します。

労働者派遣契約における見積もりは比較的シンプルです。基本的には技術者の標準人月単価[^2]に派遣期間を掛けた金額となります。ただし、この単価には派遣元企業の管理費や社会保険料なども含まれているため、技術者が実際に受け取る給与よりも高額になります。

**労働者派遣契約の特徴**
| 項目 | 内容 |
|------|------|
| 売るモノ | 労働力（時間） |
| 指揮命令権 | 発注者（派遣先）にある |
| 責任範囲 | 指示された業務の遂行 |
| 見積もり単位 | 標準人月単価（税別） × 期間 |
| リスク負担 | 最小（派遣先が負担） |

**現実的な見積もり例**
```
シニアエンジニア単価：90万円/人月（税別）
派遣期間：6ヶ月
見積もり金額：90万円 × 6ヶ月 = 540万円（税別）
```

労働者派遣契約のメリットは、派遣先企業が直接的に業務管理できることです。既存チームへの組み込みが容易で、細かな指示や調整が可能です。一方で、2024年4月1日施行の労働者派遣法改正により同一組織単位での期間制限規制が緩和されたものの、派遣期間の制限や偽装請負のリスクに注意が必要です。

**要点まとめ：労働者派遣契約**
- 指揮命令権は派遣先にある
- 標準人月単価ベースのシンプルな見積もり
- 派遣期間は原則3年が上限
- 既存チームへの組み込みが容易

### SES契約（準委任契約）の詳細解説

SES（System Engineering Service）契約は、民法上の準委任契約[^3]に該当します。この契約形態は、特定の成果物の完成を約束するのではなく、専門的な技術やノウハウを提供することを目的とします。労働者派遣契約との最大の違いは、指揮命令権が受注者側（ベンダー）にあることです。

SES契約では、技術者は受注者の指揮命令下で業務を遂行します。発注者は作業の大まかな方向性や要望を伝えることはできますが、日々の細かな作業指示を直接行うことはできません。この点が実務上最も誤解されやすい部分であり、適切な管理体制の構築が求められます。

偽装請負を避けるため、SES契約では以下の点に注意が必要です。業務の独立性を保ち、受注者側のリーダーを通じて指示を行い、作業場所や使用機器についても明確な取り決めを行います。発注者が直接技術者に指示を出したり、発注者の就業規則に従わせたりすると、労働者派遣とみなされるリスクがあります。

見積もりにおいては、単純な人件費だけでなく、提供する専門性の価値も考慮されます。例えば、特定の技術領域における深い知見や、プロジェクト推進のノウハウなども価格に反映されます。SES契約では善管注意義務[^4]を負うことになります。

**SES契約の特徴**
| 項目 | 内容 |
|------|------|
| 売るモノ | 専門技術 + 労働力 |
| 指揮命令権 | 受注者（ベンダー）にある |
| 責任範囲 | 善管注意義務による業務遂行 |
| 見積もり単位 | 標準人月単価（税別） × 期間 + 付加価値 |
| リスク負担 | 中程度 |

**現実的な見積もり例**
```
基本単価：100万円/人月（税別）
専門性加算：20万円/人月（税別）（AI技術など特殊スキル）
期間：6ヶ月
見積もり金額：120万円 × 6ヶ月 = 720万円（税別）
```

SES契約の利点は、専門的な技術支援を柔軟に受けられることです。要件が流動的なプロジェクトや、技術的な調査・検証が必要な場合に適しています。ただし、成果物の保証がないため、発注者側でのプロジェクト管理能力が求められます。

**要点まとめ：SES契約**
- 指揮命令権は受注者にある
- 専門技術の提供が主目的
- 成果物の完成責任なし
- 偽装請負リスクに注意が必要

### 請負契約の詳細解説

請負契約は、民法632条[^5]に基づく契約形態で、特定の仕事を完成させることを約束し、その完成に対して報酬が支払われる契約です。民法632条では「請負は、当事者の一方がある仕事を完成することを約し、相手方がその仕事の結果に対してその報酬を支払うことを約することによって、その効力を生ずる」と定められています。ソフトウェア開発における請負契約の最大の特徴は、成果物に対する完成責任を負うことです。これは単にプログラムが動作するだけでなく、契約で定められた品質基準を満たし、約束された機能をすべて実装することを意味します。

請負契約の見積もりは、他の契約形態と比較して最も複雑です。なぜなら、単純な作業時間だけでなく、プロジェクト管理、品質保証、リスク対策など、成果物を確実に完成させるためのあらゆるコストを基本開発費に織り込む必要があるからです。実務では、これらの要素を詳細に分離するよりも、基本開発費として一括で見積もることが一般的です。

この見積もりの複雑さに対応するため、近年では**FP法（ファンクションポイント法）**[^6]や**NESMA法**[^7]といった、より体系的な見積もり手法も活用されています。FP法は1979年にIBMのAllan Albrechtsが開発したソフトウェアの機能的規模を測定する手法で、外部入力・出力、内部論理ファイル、外部インターフェースファイル、外部照会などの要素から機能の複雑さを数値化し、技術や言語に依存しない見積もりを可能にします。NESMA法は、オランダのソフトウェアメトリクス協会が開発したFP法の改良版で、プロジェクトの段階に応じて推定・指標・詳細の3つの測定レベルを選択でき、より実用的で効率的な見積もりが可能です。これらの手法については、別シリーズ「ソフトウェア見積もり手法の実践的活用」で詳しく解説予定です。

```mermaid
%%{init: {'theme':'base'}}%%
graph LR
    A[基本開発費<br>品質・リスク込み] --> B[プロジェクト管理費<br>10-15%]
    B --> C[利益<br>25-35%]
    C --> D[請負金額]
```
**図2: 請負契約の見積もり構成（参考値）**

**請負契約の特徴**
| 項目 | 内容 |
|------|------|
| 売るモノ | 完成したシステム/アプリケーション |
| 指揮命令権 | 受注者（ベンダー）にある |
| 責任範囲 | 成果物の完成責任 + 契約不適合責任 |
| 見積もり単位 | 成果物の価値ベース |
| リスク負担 | 最大（受注者が負担） |

**現実的な見積もり例**
```
基本開発費（50人月相当、品質・リスク対策含む）：6,500万円（税別）
プロジェクト管理費（12%）：780万円（税別）
利益（30%）：2,184万円（税別）
見積もり金額：9,464万円（税別）
```

請負契約では、2020年4月の民法改正により、従来の「瑕疵担保責任」が「契約不適合責任」[^8]に変更されました。これにより、契約内容への適合性がより重視されるようになり、要件定義や契約書の記載内容の重要性が一層高まっています。

**要点まとめ：請負契約**
- 成果物の完成責任を負う
- 見積もりにリスク対策費を含む必要
- 契約不適合責任への対応が必要
- 最もリスクが高い契約形態

## 契約形態による見積もりの違いを理解する

同じ規模のプロジェクトでも、契約形態によって見積もり金額が大きく異なる理由を深く理解することは、適切な契約選択のために不可欠です。この違いは、各契約形態が負うリスクと責任の差から生じます。

```mermaid
%%{init: {'theme':'base'}}%%
graph TB
    A[10人月の開発案件]
    A --> B[労働者派遣契約<br>900万円]
    A --> C[SES契約<br>1,200万円]
    A --> D[請負契約<br>2,000万円]
    
    style B fill:#e1f5fe
    style C fill:#fff9c4
    style D fill:#ffccbc
```
**図3: 同規模案件での契約形態別見積もり比較**

労働者派遣契約では、技術者の労働時間を提供するだけであり、成果物の完成責任やプロジェクト管理責任は発注者側にあります。そのため、見積もりは純粋な人件費ベースとなります。一方、請負契約では、受注者がすべてのリスクを負い、確実に成果物を完成させる責任があるため、リスクヘッジ[^9]のためのコストが上乗せされます。

この価格差は決して不当なものではありません。請負契約では、要件の解釈違いによる手戻り、技術的な困難への対処、品質保証のためのテスト工数、納期遅延のリスクなど、様々なリスクに対する備えが必要だからです。

## 契約形態の選択基準

契約形態の選択は、プロジェクトの特性、リスクの所在、双方の能力などを総合的に判断して行う必要があります。以下のフローチャートは、その判断プロセスを示したものです。

```mermaid
%%{init: {'theme':'base'}}%%
graph TD
    Start[プロジェクト開始] --> Q1{要件は明確か？}
    Q1 -->|Yes| Q2{納期は固定か？}
    Q1 -->|No| Q3{技術支援が必要か？}
    Q2 -->|Yes| Q4{自社（受注者）が<br>完成責任を負えるか？}
    Q2 -->|No| B1[SES契約を検討]
    Q3 -->|Yes| B2[SES契約を推奨]
    Q3 -->|No| Q5{直接指揮が必要か？}
    Q4 -->|Yes| A1[請負契約を推奨]
    Q4 -->|No| B3[SES契約を検討]
    Q5 -->|Yes| C1[労働者派遣契約を検討]
    Q5 -->|No| B4[SES契約を推奨]
```
**図4: 契約形態選択フローチャート**

請負契約を選択する場合は、要件が明確に定義されており、技術的な実現可能性が検証済みであることが前提となります。また、受注者側に十分なプロジェクト管理能力と技術力があることも重要です。一方、要件が流動的で探索的な開発が必要な場合は、SES契約や労働者派遣契約の方が適しています。

## 契約リスクと対策

どの契約形態を選択しても、一定のリスクは存在します。重要なのは、そのリスクを事前に認識し、適切な対策を講じることです。

```mermaid
%%{init: {'theme':'base'}}%%
graph LR
    A[契約リスク] --> B[要件変更リスク]
    A --> C[納期遅延リスク]
    A --> D[品質リスク]
    A --> E[法的リスク]
    
    B --> F[変更管理プロセス]
    C --> G[マイルストーン設定]
    D --> H[品質基準の明確化]
    E --> I[契約書の精査]
```
**図5: 主要な契約リスクと対策**

要件変更リスクは、特に請負契約において深刻な問題となります。契約締結後の要件変更は、追加コストや納期遅延の原因となるため、変更管理プロセスを明確に定義し、追加費用の算定基準を事前に合意しておくことが重要です。

納期遅延リスクに対しては、現実的なスケジュールの設定と、段階的な納品（マイルストーン）の設定が有効です。また、遅延が発生した場合の責任分担についても、契約書に明記しておく必要があります。

## まとめ

第1回では、ソフトウェア開発における主要な契約形態とその特徴、見積もり方法について詳しく解説しました。契約形態の選択は、単なる形式的な手続きではなく、プロジェクトの成功を左右する戦略的な意思決定です。

契約形態によって責任範囲とリスク負担が大きく異なり、それが見積もり金額に直接反映されることを理解することが重要です。労働者派遣契約、SES契約、請負契約、それぞれに適した場面があり、プロジェクトの特性に応じて適切に選択する必要があります。

https://qiita.com/ShigemoriMasato/items/86beeb99a3588bb4d8ba

[^1]: **労働者派遣法** - 労働者派遣事業の適正な運営の確保及び派遣労働者の保護等に関する法律。派遣元事業主が自己の雇用する労働者を、派遣先の指揮命令を受けて、この派遣先のために労働に従事させることを規定した法律。

[^2]: **人月単価** - 1人が1ヶ月間フルタイムで働いた場合の単価。日本のIT業界で広く使われる見積もり単位で、通常は160時間（20日×8時間）を1人月として計算する。

[^3]: **準委任契約** - 民法656条に基づく契約で、法律行為以外の事務を委託する契約。委任契約とは異なり、法律行為を含まない技術的な作業や調査などの事務処理を対象とする。

[^4]: **善管注意義務** - 善良な管理者の注意をもって事務を処理する義務。専門家として期待される水準の注意を払い、業界の標準的な技術レベルと同等以上の品質で業務を遂行する必要がある。

[^5]: **民法632条** - 「請負は、当事者の一方がある仕事を完成することを約し、相手方がその仕事の結果に対してその報酬を支払うことを約することによって、その効力を生ずる」と規定する条文。

[^6]: **FP法（ファンクションポイント法）** - 1979年にIBMのAllan Albrechtsが開発したソフトウェアの機能的規模を測定する手法。外部入力・出力、内部論理ファイル、外部インターフェースファイル、外部照会の5つの要素から機能の複雑さを数値化する。

[^7]: **NESMA法** - Netherlands Software Metrics Association法。オランダのソフトウェアメトリクス協会が開発したFP法の改良版。プロジェクトの段階に応じて推定・指標・詳細の3つの測定レベルを選択でき、より実用的で効率的な見積もりが可能。

[^8]: **契約不適合責任** - 引き渡された目的物が種類、品質又は数量に関して契約の内容に適合しない場合の売主の責任。2020年4月の民法改正により、従来の「瑕疵担保責任」から変更され、契約内容への適合性がより重視されるようになった。

[^9]: **リスクヘッジ** - 将来起こりうるリスクに対して、あらかじめ対策を講じておくこと。請負契約では、要件変更、技術的困難、納期遅延などのリスクに対する備えとして、見積もりに一定の余裕を持たせることが一般的。