Session 13

Determining the Professional Responsibilities of Computer Scientists


Software Systems

Opening Remarks

Here are some thoughts I had while reading the conversation with Harry Yoder:

Exercise 19: A Code of Professional Conduct for Computer Scientists


  1. To consider the various ethical responsibilities of computing professionals.
  2. To develop a coherent code of conduct by which to judge the professional behavior of a computing professionals.


Work in teams of three or four people based on the number in the upper right hand corner of this page.

  1. Dr. Yoder refers to a set of five tests one can apply to help determine whether an act is ethical. Which of these tests is the hardest to pass? Why?

  2. Many companies have "codes of behavior", in which the company affirms a set of principles by which it and its employees intend to live. Suppose that you have been asked by your boss to outline such a code for your software development organization. Your code should be in the form of an outline.

    Each entry in your outline should be a complete sentence.

You may not refer to any books while doing this exercise. Your group's result should be the product of your own ideas. Select a spokesperson for the group, but each of you should be prepared to discuss the ideas behind your code.


Your group submits in writing its Code of Ethics and Professional Conduct.

The class as a whole will discuss a framework for a workable code based on the work of the individual groups.

Summary of Exercise 19

Which of Kallman and Grillo's five tests is the hardest to pass? To what extent does this differ across the general population? To what extent do cultural standards affect this?

We can think of a computer scientist, software engineer, programmer, ..., as having responsibilities to a number of different groups of people, including some subset of:

To the extent that computing professionals have a responsibility to one of these "systems", they have a responsibility to help sustain the system.

Why bother doing this? Many of you say, "But I already know how to behave...". Good! There are several reasons to do this anyway:

One difficulty in developing a code of professional behavior is that everything in the world seems related to everything else. A principle beneficial to achieving one goal will often be detrimental to achieving some other goal. One must try to find overarching principles that can be applied to real problems in a way that helps to balance out these forces and achieve, as much as possible, all of the goals. Like all design tasks, this one requires us to make trade-offs in an attempt to achieve competing goals.

Sometimes, the law sets a higher standard than a person's ethics, and sometimes one's ethics set a higher standard than the law. Frankly, for both human and political-philosophical reasons, I hope that the latter is far the more common,

Exercise 20: Ethical Dilemmas for Computer Scientists


  1. To consider the various ethical responsibilities of computing professionals.
  2. To consider the professional code of conduct adopted by the ACM.


Work in the same teams as you did for Exercise 19.

Read the scenario given below. It calls for one or more professional decisions to be made. Discuss the scenario with your partners, focusing on the points at which the protagonist made decisions and what the ethical implications of those decisions might be.

Were the decisions made by the actor ethical ones? Identify the imperatives from the ACM Code of Ethics that pertain to the scenario and that justify your answer. This scenario should bring to mind several different imperatives.

Describe three changes to the scenario that would have changed your answer to the previous question. Try to identify small, subtle changes, rather than extreme changes that make extreme changes in the ethical implications of the scenario. Again, identify the imperatives from the ACM Code of Ethics that relate to your modifications.


Your group submits in writing its evaluation of the dilemma and the points in the ACM code that apply.

We will discuss each scenario and its ethical considerations before moving on to the next scenario.


A small software company is working on an integrated inventory control system for a large national shoe manufacturer. The system will gather sales information daily from shoe stores nationwide. This information will be used by the accounting, shipping, and ordering departments to control the functions of this large corporation. The inventory functions are critical to the smooth and profitable operation of the company.

John, a quality assurance engineer with the software company, suspects that the inventory functions of the system are not sufficiently tested, although they have already passed all contracted tests. He is being pressured by his employers to sign off on the system. Legally, he is only obligated to perform the tests specified in the original contract. However, his considerable experience in software testing has led him to be concerned about the function of the system. His employers say that they will go out of business if they do not deliver the software on time. John contends that, if the inventory subsystem fails, it will significantly harm the client and its employees. If the potential failure were to threaten lives, it would be clear to John that he can't sign off. But since the threatened harm is only financial, John signs off.

[ From "Using the New ACM Code of Ethics in Decision Making" by Ronald E. Anderson, Deborah G. Johnson, Donald Gottarbarn, and Judith Perolle, in Communications of the ACM 36(2):98, February 1993. ]

Summary of Exercise 20

Coming soon to a theater near you...

Eugene Wallingford ==== ==== February 20, 2001