IT訴訟解説:保守で見つかった不具合の責任を争った裁判「OSやミドルウェア由来の不具合まで、わが社のせいにしないでください」
開発と保守では責任範囲が違うのか?
少し補足すると、システムが正常に動作しなかったのにはアプリケーションの不具合も確かにあり、その点はベンダーの責任を否定できない。 ただ、不具合の中にはユーザー企業が別途契約したソフトウェアとのいわゆる「相性」の問題もあったようで、そこに明確な瑕疵(かし)があったわけではないらしい。そして「システムが全く動かない」というよりも、「そこかしこに不具合がある」という状態でもあったので、納品以降の修正は保守契約の中でやっていこうということになったようだ。 とはいえ、システムは業務に耐え得るものではなく、ユーザー企業はベンダーの責任で正常に動作するようにしてほしいと求めたが、ベンダーは「不具合の中には自分たちが作っていない部分が問題となっているものもあり、そこまでの責任は持てない。保守管理の責任は自分たちが作ったアプリケーションのみである」と反論している。 保守に関する契約でベンダーの責任範囲や具体的な業務内容などを開発の契約とは別に検討して明記するなどすればこうした問題は起きなかったのかもしれない。実際、その点を注意している読者もいるだろう。しかし本件のように、契約内容をあいまいにしたために後で問題になるケースも多いのではないかと思う。 「アプリケーションを作って保守を請け負うのだから、対象となるのはアプリケーションだけであって、それ以上は責任を持ちかねる」というベンダーの考え方は、一応は筋が通っているように見える。他方で、「開発契約については確かにアプリケーションのみを責任範囲とすればよいが、保守管理契約とは一般的にシステム全体の安定稼働を保証するために結ぶものであり、開発契約とは別の責任範囲になるはずである」という論も理屈ではある。 さて、裁判所はどのように判断したのだろうか。
アプリの正常動作に必要な対処をするのも保守の責任
--- 広島高等裁判所 平成14年12月24日判決より(つづき) (本件システムの)保守管理の内容としては、自らが製作供給したソフトウェアが当初の目的通りに有効に作動する状態に置くことをベンダーの義務とするものと解すべきところ、 (中略) (ベンダーが責任を果たしたと言うためには)仮にベンダーの供給したソフトウェア以外の問題に起因する不具合であったとしても、 (中略) 供給したソフトウェアが有効に作動する状態に置くことを内容とするベンダーの義務に反することを否定することはできない --- 少し持って回った言い方だが、要するに、「自らが製作したアプリケーション以外の問題が原因であっても、アプリケーションが正常に動作しないのであれば、対処する責任を負うのは保守管理者である」ということだ。 システムを開発し、そのまま保守管理を請け負うベンダー(通常、こうした契約が多いと思う)には注意が必要かもしれない。システムを開発する際の請負契約と保守管理を請け負う場合とでは、責任の範囲が分けて考えられるということだ。 どのように分けるのかは、それこそ契約の文言による。 開発時は、「ベンダーが作成するアプリケーションの動作が正しいことは保証するが、その土台であるOSやミドルウェアについて責任は負わない」という場合もあるし、「それらも含めて責任を負う」という場合もある。保守管理時も「アプリケーション部分のみを保守する」場合と、「OS、ミドルウェア全てを含めたシステム全体を対象とする」場合もある。 注意したいのは「システム開発時点で責任範囲をアプリケーションのみとしても、それが当然に保守管理の範囲となるわけではなく、保守管理の契約においては、また新たにベンダーの責任範囲を確認する必要がある」ということだ。 開発するベンダーと保守管理をするベンダーが異なる場合を想定すれば、ごく自然なことである。会社Aが作ったシステムの保守管理を別の会社Bが請け負うとき、Bの担当者は自分たちの責任範囲がアプリケーションのみなのかシステム全体なのかを確認した上で見積もりし、契約するはずだ。 しかし自分たちが作ったアプリケーションを含むシステムの保守管理となると、その範囲はアプリケーションのみであると誤解してしまうことは十分にあり得る。例えば、アプリケーション開発において、OSやミドルウェアは発注者側が別途調達したものである場合、開発中ならOSの不具合で正常に動作しないなら、それは発注者側が解決の責任を持つかもしれなかったが、保守管理となった途端に今度はベンダー側の責任になってしまう。この判決はそうした区別をしっかりと認識し、おのおのに明確な約束が必要であることを示唆している。 発注者からすれば、システムの保守にシステム全体の安定稼働を期待するのは当然のことだ。しかし開発した保守管理者にとってそれは当然ではないかもしれない。ここを明確にするため、開発後の保守フェーズに入るには、業務内容や責任範囲、特にシステムが正常に動作しない場合のいわゆる異常系について明確にしておく必要がある。ベンダーの営業担当者各位には重々認識していただきたい。