システム開発契約を結ぶ時の契約書の名前は、「開発業務委託契約書」とされていることが多いと思うのですが、実際にトラブルになった場合、この「業務委託」の法的性質が請負か準委任か、ということが問題になることがあります。

 請負も準委任も、ベンダーが委託された業務を行う義務があるという点は同じですが、請負ではベンダーが仕事完成義務を負っており、システムという成果物にバグがあったり、期待された性能を備えていなかったりすれば、原則としてベンダーが瑕疵担保責任を負うのに対し、準委任ではベンダーが仕事完成義務を負わず、専門家としての注意義務を尽くして業務を行っていれば原則として責任を問われることはない、という点で異なります。

 そして、請負か準委任かという問題は、システム開発の段階毎に考える必要があります。つまり、通常、システム開発は、システム開発対象の業務を分析して、システムに実装すべき機能の仕様を決める「要件定義」、画面や帳票、データベース等の設計をする「外部設計」、内部のロジックをプログラミングする「内部設計」、システムが要件定義通りの機能を備えているかをテストする「システムテスト」、カットオーバー後の「保守」「運用」という段階に分かれており、それぞれの段階により、作業内容はもちろんのこと、作業の主体、役割、成果物等が異なるため、全部をひとまとめにして「開発」という業務であると考えるには無理があるからです。

 例えば、要件定義や外部設計の上流工程では、業務を理解しているユーザー側が主体となってシステムの機能の定義をし、ベンダーはそのサポートをするという役割になることが多いので、準委任と考えた方が実態に合うといえますし、内部設計は、ベンダーがプログラムという成果物を作成する段階ですので、まさに請負ということになります。ただし、この場合、ベンダーとしては、過大な瑕疵担保責任を負わされないように、「瑕疵」の内容を「要件定義における仕様との不一致」等と限定して定義する、過失がある場合のみ瑕疵担保責任を負うようにする、賠償限度額を定める等の方法で契約書上リスクヘッジをする必要があるでしょう。また、システムテスト、保守、運用は、どちらが主体で行うかにより異なりますが、通常は準委任であると考えられます。

 このように、システム開発では業務委託と言っても、個別の段階ごとに請負か準委任かを判断し、その性質に合った契約を結ぶことがリスクを減らすためには望ましいと言えます。実際にも、一定規模の開発の場合には、基本契約を一つ結んで、あとはプロジェクトの進捗に応じ、各段階で個別契約を結んでいることが多いでしょう。しかし、依然として要件定義からシステムテストまで一括して請負契約を結んでいる例も見られ、その場合、ベンダーとしては、本来ユーザーが責任を負うべき要件定義部分のミスが原因の不具合でさえ、瑕疵担保責任を問われかねないことになりますので、注意が必要です。

弁護士 堀真知子