+2 votes
in Software Engineering by
Software failures can cause considerable inconvenience to users of the software. Is it ethical for companies to release software that they know includes faults that could lead to software failures? Should they be liable for compensating users for losses that are caused by the failure of their software? Should they be required by law to offer software warranties in the same way that consumer goods manufacturers must guarantee their products?

1 Answer

+1 vote
selected by (user.guest)
Best answer

Ethics for software failure

Failure is state of the system due to which a system stops functioning and it was raised by the fault in software application. If any organization is releasing any software with faults and they knew it, then, it is highly unethical. The reasons are as given below:

1. It can lead to great financial loses to customer.

2. The trust of customer towards company will not be maintained.

3. Competitors can take this as an advantage.

4. It can lead to ethical and financial loses to the developing company also.

Yes, the company is liable for user’s loss if the company is doing this knowingly. The customer is not aware of problems associated with the software, so, the user will not bother for this type of incidents. The company must not have to release any software product, if that product is having bugs which are leading to system failure.

Yes, it is possible that companies can provide warranties for their software product like other products. But, the beta version will never contain any warranty. The software companies are charging customers like other products. If any product leads to failure, then, they provide guarantee for replacement or at-least warranty for maintenance. Thus, the same things must be followed software companies.

I think it depends on the type of software being built.  Some faults are transient meaning that the problem quickly goes away and the user doesn't even know about it or finds an easy work around.  Some software where transactions are long eg Word Processors and CAD systems have mechanisms built in that restore it at some restore point.  The company can update the software with patches.  However, when the transaction time is small such as an e-commerce website, then it is critical that failure doesn't occur.  Also if the software is a critical system or a control system such as an aircraft system, then this would be catastrophic and that is why there are usually governing bodies and regulators that need to give certificates of approval for these kinds of software.
by (user.guest)
Very insightful contribution. I however think that this question bothers on software engineering ethics. Regardless of the type of software, it would be unethical for a software company to release a software with known faults without at least documenting it properly such that the end-user is made aware. Most Transient faults go undetected during software testing, which is why they make it through the product release. Software updates and patches can be rolled out for solving that as you mentioned.

While no software can be completely free of defects at the time of release (Ref: https://cpentalk.com/474/explain-necessary-program-completely-delivered-customers), software with identified defects, especially defects already established to cause system failure must never be released to the end-user. Doing so would be purely unethical.

Thank you for sharing this new perspective.

Related questions

Welcome to CPEN Talk
Solution-oriented students of computer engineering on one platform to get you that