Path: utzoo!utgpu!attcan!uunet!seismo!sundc!pitstop!sun!decwrl!labrea!rutgers!mcnc!thorin!coggins!coggins From: coggins@coggins.cs.unc.edu (Dr. James Coggins) Newsgroups: comp.software-eng Subject: Re: ethics Message-ID: <5084@thorin.cs.unc.edu> Date: 4 Nov 88 16:48:23 GMT References: <1902@daisy.UUCP> Sender: news@thorin.cs.unc.edu Reply-To: coggins@coggins.cs.unc.edu (Dr. James Coggins) Organization: University Of North Carolina, Chapel Hill Lines: 62 In article <1902@daisy.UUCP> klee@daisy.UUCP (Ken Lee) writes: >Some activity that some software people could consider unethical: > Ken's list was good; here are some rather more subtle failures of professional ethics that occur to me: 1. Deliberately underestimate the cost/time of a project in order to get a more favorable response in contract competition. 2. Engage in what Brooks calls "gutless estimating": Customer: "How long will it take?" Programmer: "When do you want it?" Customer: "Six months from now." Programmer: (thinking) "My estimates say 12 months minimum but the customer can't prove that I can't finish in six months, so" (aloud): "Sure, I can do it in six months." 3. Bait-and-switch tactics: Promise the customer what he wants and then when it's too late to back out force the customer to accept what you are able to produce conveniently. 4. The whole category of violations of intellectual property rights could yield many ethical problem cases, but I do have other work to do today. 5. Fail to perform services for which you have contracted, like software maintenance, consultation, or set-up/installation. 6. As a manager, place a subordinate in a situation he or she is not qualified to handle (i.e. set up a scapegoat). 7. Fail to carefully design and evaluate a user interface that is going to be forced on employees who are powerless to evaluate it or complain about its awkwardness. You have a responsibility to your USERS as well as to your CLIENT. A good user interface can make the system a joy to use. A bad user interface can inflict real pain on its users. 8. Fail to inform your client of the relative costs of features he claims are desirable. I do not accept the dictum "The client is always right". In many cases, the client is ignorant and needs to be enlightened. If I am worth my pay, there should be some things I know better than the client. It is part of my professional responsibility to question the client's requests and to inform the client of the relative costs of his requests. "Yes sir, we can build a marble fireplace for your living room, but it will cost half as much as the whole rest of the house. Are you sure you want it that bad?" From Money magazine, Sept 1976, p. 48: "Deciding what to do is toughest when you're not directly involved in a questionable practice but you know it's going on." In my Software Engineering course last year, I had been mentioning ethical concerns in the context of other (usually technical) issues through the semester. I was pleased later when I was asked by some students to give a special lecture on ethics in software engineering. I did, of course. What's important here is that the students requested it. I was very pleased (even though it meant some more work for me) that the topics I had been covering caused them to think along those lines and ask for an hour to be devoted to ethical issues. The discussion was lively and that turned into one of the best class meetings all semester.