Generally speaking, the importance of professional ethics for software engineering stems from the vast influence of computers in general and software in particular on life on Earth. On the one hand, software engineers may cause a lot of harm; on the other hand, software engineers may contribute a lot to the quality of life. Thus, software engineers should be aware of what is legitimate and what is forbidden, when they have the freedom to make critical decisions and when they do not, and so forth. The importance of the Code of Ethics of Software Engineering seemed obvious during the 1990s, when many startups focused on their financial success, sometimes without considering what values they deliver and according to what values they work.
|Task: Scenario Analysis|| |
In what follows , seven cases related to software engineering are presented. With respect to each scenario, express your opinion about the described behavior and describe how you would behave in such a case. Then, according to your decision, formulate one or more ethical norms that, in your opinion, should be included in the Code of Ethics of Software Engineering. These norms should guide software developers in similar situations.
A programmer was asked to make a change to a software application used by an international bank. She performed all the needed tests. After all the tests passed, she recalls that one more test is required. This test does not pass. Since she does not have the time for debugging, she submits her work and states that all the tests passed successfully.
A freelance programmer is asked to develop a software project that requires using an expensive IDE (Integrated Development Environment) for two months. His friend, who works in a company that owns the IDE, suggests that he should borrow the IDE for the two-month development period and uninstall it when he completes his project. The programmer accepts the offer.
A programmer who works in a software house hears from a friend that her team leader tells several competitive companies secret information about the next planned version she works on. Since the programmer predicts that she will not be able to go on working for the company if she tells management about the team leader s behavior, she decides to continue working as if nothing has happened .
A programmer is asked to work on a project that causes severe damage to the environment. This project enables his software company to survive. He tells his supervisor about his worries and is informed that part of the money the company will earn for this project will be donated to an environmental fund. He agrees to work on the project.
A programmer is told by her team leader that if she is better than the others on the team, she will be promoted. She decides that she can be promoted only if she does not share essential information with her teammates and behaves accordingly .
A software engineer needs particular software for completing his job on time. A demo version can be downloaded from the Web for a 14-day examination. The engineer keeps downloading the demo version every two weeks and does not purchase it.
A software engineer takes advantage of the free Internet access that her company offers and constructs a Web site that enables free downloading of musical files without paying for them.
Before we move on to review the Code of Ethics of Software Engineering it is important to note that in ethical discussions, there is no unique solution, and in most of the cases, the decision how to behave depends on one s values. This is the essence of ethics, and this characteristic of ethics distinguishes it from the law. This nature of ethics does not allow us, for example, to present strict and definite solutions and modes of behavior when ethical considerations are introduced. In general, each person should determine what his or her ethical values are. As it turns out, in most cases, people eventually work in an environment that reflects their ethical values and standards. For example, an ethical company hires ethical employees and has business relations with ethical partners .
In this spirit, the reader should not expect to find solutions to all the presented problems. Rather, the following discussion aims to help one formulate one s ethical values and to increase reader understanding on how ethical considerations may support software development work.