[comp.software-eng] ethics

lb0q+@andrew.cmu.edu (Leslie Burkholder) (11/02/88)

I'd appreciate lists or accounts of ethical problems faced by software engineers
in practicing their profession.
Thanks,
Leslie Burkholder

maner@bgsuvax.UUCP (Walter Maner) (11/02/88)

From article <sXPWxty00Wo345oGM2@andrew.cmu.edu>, by lb0q+@andrew.cmu.edu (Leslie Burkholder):
> I'd appreciate lists or accounts of ethical problems faced by software engineers
> in practicing their profession.

As you are probably aware, such discussions can often be found in comp.risks
and ETHICS-L.  If you have trouble subscribing to these lists, I'll be glad
to help.
WALT

klee@daisy.UUCP (Ken Lee) (11/04/88)

Some activity that some software people could consider unethical:

1.  being asked by your manager to do something illegal (usually white
collar crime, like lying on your expense reports)

2.  violating promises/contracts with clients (this may also be illegal)

3.  questionable advertising (claiming something is done when it isn't,
announcing products then not delivering, etc.)

4.  working on projects that you think are immoral, even if they are
legal (you can probably think of something here)

5.  working on a "moral" project for a company that does things you
think are immoral

There are probably lots of others.  A good professional knows how to
identify these problems and knows what do to about them.  Sometimes the
action varies from person to person, especially on the legal, but
unethical issues.

Ken
-- 
uucp:  {ames!atari, ucbvax!sgi, pyramid, uunet}!daisy!klee
arpanet:  daisy!klee@sgi.com or daisy!klee@uunet.uu.net

I'm not a tourist, I was born in California.

coggins@coggins.cs.unc.edu (Dr. James Coggins) (11/05/88)

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.

john@basser.oz (John Mackin) (11/16/88)

In article <5084@thorin.cs.unc.edu>,
	coggins@coggins.cs.unc.edu (Dr. James Coggins) writes:

> >Some activity that some software people could consider unethical:

> 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."

Well, back in the Bad Old Days when I used to work in the
commercial world (as a programmer), I would very commonly
get asked that dreaded question, `How long will it take?'
I knew there was no way I could answer that question with
any accuracy, so I developed a method that kept me happy.

For those of you faced with this problem I offer the method.
I call it `Estimating by Threes'.

If you think the task will take under ten minutes, tell them
three days.

If you think the task will take more than ten minutes but
less than an hour, tell them three weeks.

If you think the task will take more than an hour but less
than a day, tell them three months.

Otherwise, tell them three years.

You'll be amazed at how often you manage to predict the
exact time it will in fact take.

John Mackin, Basser Department of Computer Science,
             University of Sydney, Sydney, Australia

john@basser.oz.AU (john%basser.oz.AU@UUNET.UU.NET)
{uunet,mcvax,ukc,nttlab}!munnari!basser.oz!john

friedl@vsi.COM (Stephen J. Friedl) (11/17/88)

In article <1616@basser.oz>, john@basser.oz (John Mackin) writes:
< For those of you faced with this problem I offer the method.
< I call it `Estimating by Threes'.
< 
< If you think the task will take under ten minutes, tell them
< three days.
< 
< If you think the task will take more than ten minutes but
< less than an hour, tell them three weeks.
< 
< If you think the task will take more than an hour but less
< than a day, tell them three months.
< 
< Otherwise, tell them three years.

Alternate mechanism:

* take your best guess as to how long the project will take,
  double it, then go up to the next unit of time :-).

      Steve

-- 
Steve Friedl    V-Systems, Inc.  +1 714 545 6442    3B2-kind-of-guy
friedl@vsi.com     {backbones}!vsi.com!friedl    attmail!vsi!friedl
------------Nancy Reagan on the worm: "Just say OH NO!"------------

whbr@cgchd6.uucp (Hellmuth Broda) (11/23/88)

In article <941@vsi.COM> friedl@vsi.COM (Stephen J. Friedl) writes:
|In article <1616@basser.oz>, john@basser.oz (John Mackin) writes:
|< For those of you faced with this problem I offer the method.
|< I call it `Estimating by Threes'.
|< [...]
|
|Alternate mechanism:
|
|* take your best guess as to how long the project will take,
|  double it, then go up to the next unit of time :-).
|
|      Steve

From /usr/lib/cookies:

	Westheimer's Rule
		To estimate the time to do a task: estimate
		the time it should take, multiply by 2, and
		change  the unit  of measure  to  the  next
		highest unit. Thus we allocate 2 days for a
		one hour task.

This wording sounds so scientific that you can put it into your design
documentation as a motto on page 3 ;-}

Hellmuth

____________________________________________________________________________
| Dr. Hellmuth W. Broda         | c/o CIBA-GEIGY Scientific Computing Ctr. |
| Biologist and Systems Analyst | R-1045.3.16, P.O.Box, Tel:+4161 697-7109 |
|       UUCP:   whbr@cgch.uucp  | CH-4002 Basel                Switzerland |
|       Old uucp:       ...!uunet!mcvax!cernvax!cgch!whbr                  |
|       Internet:       whbr%cgch.uucp@uunet.uu.net                        |
|       BITNET:         whbr%cgch.uucp@cernvax.bitnet                      |
----------------------------------------------------------------------------
	    <<< Everybody is a foreigner... almost everywhere >>>