●ITシステム開発の契約形態
ITシステム開発において発注側と受注側の間の契約形態は、「請負契約」または「準委任契約」を締結するのが一般的です。「請負」はシステム構築を請け負って成果物を提供するのに対し、「準委任」はシステムを構築するための作業を行う(人工提供)ことになります。すなわち、システム開発の作業を行った時間に対して報酬が支払われることになります。
請負契約では完成した成果物を納品し、発注者の検収を受けることで報酬が支払われます。受注者は成果物を完成させて納品する「完成責任」があり、この責任を全うすることが求められるのです。また「一括請負」とは、システム開発の要件定義工程~システムテスト工程までの全工程を一括して請負契約とする場合を言います。一括請負契約の場合、プロジェクト全体のコストが最初に決まるので、その後の変更追加などにかかるコストを請求するためには、お客様との交渉になり、揉めることになります。
それに対して、要件定義、外部設計、内部設計……といった、システム開発の各工程単位に区切って請負契約を行う場合を「ステージング契約」と言います。「ステージング契約」の場合は、工程毎にコスト見積を行い契約するため、追加の契約作業が発生しますが、工程毎に開発スコープや条件を見直しするタイミングがあるため、プロジェクト全体のリスクを軽減できる利点があります。
●IT開発における契約のステージング
ITシステム開発はさまざまな工程を経て行われるため、工程ごとの性質に応じて、両契約を使い分けるのが一般的です。例えば、要件定義~基本設計までは、お客様に要件定義書あるいは基本設計等の成果物に対して責任をもってもらうために、準委任契約を締結し、詳細設計~統合テストまでは、受注者が成果物に責任を持つ請負契約、そして最後の工程であるUAT(User Acceptance Test)はお客様のE/Uにシステムの検証を行ってもらうために、準委任契約で契約することが一般的です。
このように多段階的に契約を分けることにより、プロジェクトのリスクを軽減することができます。本来お客様が責任をもつ要件定義工程を受注者が請負契約で請けると、要件定義書に齟齬がある場合、受注者の責任となり、損害賠償が発生することも考えられます。そのため、最近のアジャイル開発などでは、すべて準委任契約で行うケースもあります。
●孫請けの可否
請負契約は、仕事を完成させることが目的であるため、原則として受注者は自由に下請業者を使用することができます。発注者が再委託を禁止したい場合には、契約書にその旨の特約を設ける必要があります。
一方、準委任契約は、当事者相互の信任関係に基づくものであるため、当事者間で別段の合意がない限り、原則として受注者は業務を第三者に再委託することができません。このため、再委託を予定しているのであれば、請負契約とは逆に、契約書にその旨の特約を設ける必要があります。
●瑕疵担保責任
「請負契約」については、民法上、請負人の瑕疵担保責任が定められており、仕事の成果物に瑕疵がある場合には、注文者は瑕疵修補請求および/または損害賠償請求、さらに瑕疵の程度により契約の解除をすることができます。
一方「準委任契約」にはこのような瑕疵担保責任の規定はありません。しかしながら、準委任契約の場合、受注者は「善管注意義務」を負っていますので、受注者側の責任により、その業務内容について請負契約であれば瑕疵と評価されるような問題が発生した場合には、受注者は「(※)善管注意義務違反」を問われ、発注者から損害賠償を請求されたり、債務不履行による契約を解除されたりする可能性があります。
※善管注意義務とは|善良な管理者の注意をもって、委任事務を処理する義務を負う
●契約形態の判断基準
上記のとおり、請負契約と準委任契約は、その契約の目的が「受注者が役務を行うことそのものにあるのか」それとも「受注者が役務の結果として完成させた成果物(システム等)を提供することにあるのか」という点に違いがあります。このため、どちらの契約にするかを決めるためには
- 成果物の内容が確定しているか
- 成果物提供による対価の支払いか、人工提供による対価の支払いか
- 代金支払時期(各フェーズ終了時か、プロジェクト終了時か)
- 成果物の著作権の帰属
- 瑕疵担保責任や成果物に対する保証条項の有無
等を考慮して決める必要があります。
★Tip of the day
- 契約が請負契約なのか準委任契約なのかをまずは確認して、プロジェクトをマネジメントする
- ステージング契約でリスクヘッジを行う