スポンサーリンク

◆検収後のトラブルに備える瑕疵期間とは?

システム開発

◆瑕疵期間
 検収時点で全ての不具合を発見できる可能性が低いとなると、検収して支払いを完了した後に不具合が発生した場合の救済手段を用意しておかなければならない。これを、瑕疵期間と言い、民法では、一般に1年間を瑕疵期間として認めている。検収後に、納品物に瑕疵が発見された場合、1年以内であれば、業者は無償でこれを修理または交換しなければならない。

 コンピュータなどハードウェアの場合には、通常の使用において故障した場合に無償で修理に応じる保証サービスが付帯されているが、ソフトウェアにおいては、当初、正常に稼動していたものが、経年劣化や故障などで突然動かなくなるということがないので、保証サービスは無いのが普通である。

 ソフトウェアで、突然、障害が発生した場合、それは当初から欠陥が内在していたが、たまたま、その欠陥が表面化するデータが、それまで処理されなかったというケースが多い。何万という条件の組合せで論理が組込まれているソフトウェアに対して、検収期間だけで、全ての条件の組合せを網羅するようなテストデータを作り出し検査するのは非現実的であり不可能でもある。

 そこで、この瑕疵期間を契約時点で決めておく必要がある。システムの規模が大きい割りに、検収期間が短く条件が緩やかな場合には、瑕疵期間を長めに設定しておけると安心である。ただし、この瑕疵期間を過ぎた後に不具合が発見された場合は、通常は有償で対応ということになることも忘れてはならない。

 金融機関などのように社会的に影響の大きいシステムの場合、それなりに人と時間を投入して検収を行い完璧を期すこともできるが、通常の社内業務システムでは、そこまでする余裕が無いので、実際には検収、支払い後に、運用試験実運用中に不具合が発見されることが少なくないので、瑕疵期間を事前に取り決め、契約書に明記しておきたい。

 さらに、不具合が発生した場合に、それが欠陥であるか否かを判定する条件まで取り決めておけるとなお良い。通常は、欠陥であることを委託側が、証明しなければならないのが現状である。業者は、なかなか欠陥であるとは認めたがらない。欠陥と認めれば、それが瑕疵期間内であれば、無償で修理しなければならないので当然ではある。しかし、内部的な処理を解析したり、現象を分析して、明らかに欠陥であるということを証明するのは、かなり高度な専門知識が必要となる。

 そこで、できれば内部処理まで言及せずとも、仕様書の要求事項に対して、正しい結果が得られないという現象が再現できれば良いというようにしておければ、かなり安心である。これは、製造物におけるPL法に近い考え方である。例えば、業者の開発環境下では、そういった不具合が再現しないとしても、実際に本番環境において、仕様書に記述された要求事項が満足されない現象が再現できれば、瑕疵の可能性が高く、無償で調査・修理を請求できるというように。そのためにも、仕様書は、あいまいさの無いように質の高いものにしておきたい。

 とにかくシステム構築においては、ソフトウェアの仕様書から曖昧さを完全に排除できないという宿命を背負っているかぎり、契約には慎重に慎重を重ねても、まだ足りない。業者とトラブルを起こして最後に損をするのは、結局、自身である。仮に余分にコストと期間を投入して、なんとか稼動に漕ぎつけたとしても、あるいは、システム構築を途中で断念したとしても、最小の投資で、最大の効果を生むシステムを構築することは、到底できなくなってしまう。  

コメント

タイトルとURLをコピーしました