Tuesday, January 29, 2008

Ethics in Critical Software


If a software error causes harm to a user, should the software developer be held responsible? If the software developer was clearly negligent in testing the software and ensuring its proper function, then yes the developer should be held responsible. However, if the developer thoroughly tested the code and it still caused a user harm, we enter an ethical gray area. Should the developer have tried more test cases? Is the software merely an implement by which the developer harms others the way a driver can with a vehicle? Perhaps the developer is guilty of manslaughter for negligently failing to test every possible input.

This thinking has two flaws. First, software of significant size or with analog input cannot have all possible inputs tested. For some software, testing all inputs would take longer than the life of the solar system, while others could never be fully tested. Second, the hardware that the software is run on has flaws of its own. There is no such thing as perfect hardware. Logic gates fail with very low probability, but high enough that it can happen. In short, it is not possible to guarantee that software will always work. In these situations, it is only ethical to release the developer from responsibility if they have done a good job of testing their software.

1 comment:

Eyezick said...

Now you've got me worried that Windows is going to kill me and I won't even get to sue