Blog Post 02: Reading 00

  • Why study Ethics in the context of Computer Science and Engineering?

As Computer Scientists, we must study ethics in this context because society increasingly relies on software for so many things.  It should not be our goal as developers for software to be the reason something bad happens.  The wording here is intentionally vague because software is used in nearly every field imaginable: banking, military, entertainment, aviation, etc.  In banking, something might be considered bad if a software bug causes a person to get more money than he should have.  Military software might be considered bad if a bug causes a weapon to malfunction, killing unintended targets.  Most people would likely agree that the magnitudes of these events vary greatly, but the situations illustrate that both events could happen as the result of software failures.  As creators of software, we must be aware of the worst possible outcomes that could arise from a failure in our code and actively work to prevent such a situation from happening.

These are not only hypothetical situations — there have been software bugs that have caused millions of dollars in damage (Ariane 5) and even deaths (Therac-25).  According to the report published after the failed launch of Ariane 5, the problem was a failure to handle a “conversion from 64-bit floating point to 16-bit signed integer value” when the original floating point number was greater than 32,767.  This sounds very trivial, but this mistake clearly had devastating ramifications.   Even worse, software issues in Therac-25 have led to a “massive overdose” of radiation, ultimately killing patients.  By trusting software to perform such critical operations, we are trusting those who create the software.  That said, not every piece software has potentially devastating possibilities.  A small video game might have game-breaking bugs that can only cause frustration in the player.

Outside of bugs, software still faces ethical issues that must be confronted.  With growing reliability on connected software and services, users are trusting their data with third parties.  A major concern is that these services are sharing user data with governments for national security purposes.  In essence, the ethical issue is whether or not governments should be allowed to breach citizens’ privacy if it might lead to catching a criminal or terrorist.  Because technology has improved over the past few decades, it is easier than ever for developers to add so-called “backdoors” for the government to spy on their service’s users. Aside from government spying, developers must be careful about what and how data is saved in their services.  If sensitive information is improperly stored, hackers with malicious intent might get a hold of the data.  Developers must protect their software and services to the best of their ability.  A common practice for debugging software is to generate log files with useful data for the developer to analyze.  However, because some data might be sensitive, not all data should be included in logs.  Is it unethical for a developer to include sensitive data in logs if it leads to fixing a bug with potentially greater consequences?  As with other ethical issues, the answer depends on the circumstances surrounding the situation, and there is never an overarching answer that fits every case.

 

Leave a comment