コンピュータのもう一つの重要な基本構成要素であるソフトウェアには、バグと呼ばれるソフトウェアの不具合があります。
ソフトウェアは機械ではないので、突然故障したり動作がおかしくなることはありませんが、ソフトウェアには不具合が潜んでいる可能性が常にあります。それは普段は問題なく動いていても、何かの条件が揃った時に、これまで露見していなかった不具合により、ソフトウェアが正常に動作しなくなることがあります。
このように、常に不具合を抱えている可能性のあるソフトウェアを提供しているIT業界は、基本的に不具合のある商品を提供することが許されない他の業界から考えると、信じられない面があると思いますが、これが現実です。私も当初は違和感があったのですが、長年IT業界に携わっていると特に問題とも思わなくなってくるので、慣れというのは怖いです。
そして、その不具合を修正するために、場合によってはその費用を請求されるというのが、IT業界の慣例になっています。ソフトウェアの不具合に対しては、それが瑕疵なのかどうかというのは常に議論になるところです。大抵のソフトウェア使用契約には、瑕疵担保責任についての条項はあると思いますが、あまり詳細に定義されていないので、そこの解釈については難しいところです。また何か損害を被った時の賠償額についても、基本的にソフトウェア使用料を上限とする場合が多いと思いますが、本当に重大な損害を被った場合はその金額では到底賄えないと思います。
私もソフトウェア使用契約の瑕疵担保責任や損害賠償の条項については、ソフトウェア会社と協議をしたことがありますが、なかなかこちらの要望通りにはできずに、お互いに妥協点を探すことが多かったです。
また、ソフトウェアはハードウェアの仕様に合わせて作られるので、基本的にハードウェアごとに専用のソフトウェアが必要です。ところが、Windows PCのように汎用的なコンピュータは、どのメーカーのハードウェアでも同じWindowsのソフトウェアが動作します。これはユーザー使う側にとってはとても有益なことで、ハードウェアを自由に選択できることになります。ただし、汎用的でないハードウェアには、時々ソフトウェアとの相性問題、つまり正しく動作しない場合があるので、注意が必要です。