Take the 2-minute tour ×

I've been thinking about how the technologies which I see as cool, can provide governments and private corporations with tools to do things which are not so cool.

I'm thinking along the lines of involvement with companies involved in warfare or the weapons industry, but I suppose there are many scenarios where a person's ethical stance might be tested.

Are there jobs and projects that you'd turn down, due to your belief or ethical stance? Do you think that developers and engineers actually hold any responsibility in these cases?

share|improve this question

closed as not constructive by casperOne Apr 5 '12 at 13:24


please make this community wiki –  tvanfosson Nov 2 '08 at 0:35
@tvanfosson -1 I think it's fine the way it is. Wiki is for wiki-type stuff and polls. I think this one deserves to keep its karma. –  Daniel Spiewak Nov 2 '08 at 0:52
I'd argue this question is both constructive and useful. I think closing it takes value away from stackoverflow, rather than the opposite. –  codeinthehole Jul 24 '12 at 13:56

17 Answers 17

From a reply on coding horror


ps. The point of this is that 'profesional ethics' and 'moral ethics' are not the same thing.

share|improve this answer
+1, because I'm on the other side of the world from your example. –  Adam Liss Nov 2 '08 at 3:46
This is originally by Nathaniel S Borenstein, author of my favorite computing quotes. See this answer: stackoverflow.com/questions/58640/… –  Scottie T Dec 4 '08 at 19:50

Integrity vs Compromise

Just to add to the discussion: there is a great article about Ethics and software development

The primary definition in the Merriam-Webster online dictionary says,

One of the secondary definitions says, "The principles of conduct governing an individual or a group."

I realize that there are different views of morality and we could go down a very slippery slope discussing them. So, decide upon what you consider "moral duty and obligation" before reading further.

In practical terms, those who work in IT will likely be responsible for implementing or planning technical components that partly shape their organization's ethical dimension

The article goes on discussing a few ethical dimensions:

  • Privacy
  • Encryption
  • Trust
  • Freedom of speech
  • Intellectual property

The phrase "do no harm" does not appear in the Hippocratic Oath, although most people think it does. While it does not appear in the ethical codes under examination, the essence of the phrase comes through. The ACM code says "avoid harm to others." It elaborates the statement to say that harm "means injury or negative consequences, such as undesirable loss of information, loss of property, property damage, or unwanted environmental impacts." The IEEE code has a broader statement: "to accept responsibility in making decisions consistent with the safety, health and welfare of the public, and to disclose promptly factors that might endanger the public or the environment."

The concept of causing no harm to others is quite a general concept, and one that we find in most professional codes of conduct. The devil, however, is in the details and many grey areas exist. We have already touched on the issue of harm in our discussion of trust. Just as medical professionals have to align their moral compass with the needs of society, software developers must decide what is morally right to them. They must decide upon a definition of harm that reconciles with their concept of morality.

My opinion ?

I am always struck by the "military" example often taken by developer when considering ethical behavior to respect. It supposes you can weight your ethics before applying for a job involving a suspicious activity.

But is it always possible ?

For me, Trust is really what matters most. Will the trust put in your program by your client be well placed ?

Supposed you are developing a system for computing the return rate of house mortgages, and you have initialized your system with 20 years of data... Dealer brokers, banks, Wall Streets institutions will trust your system and demand ever more deals!... with the result will all know.

Was it unethical from your part to build such a system ? Or a system pricing Credit Default Swap ?

I have no easy answer. Those financial systems had some good arguments for them in the beginning and the trust put in them was fonded, your ethics were respected (you were helping people accessing to home property through the financial management done by your software!)... and then the conditions changed (with those NINA loans - No Income No Assets! -... meaning your 20 years of data are now worthless), and everything went downhill from there.

Did you compromise, did you renounce to your integrity back then when you took that job in finance ?
And in regards with recent events, should you turn down every future job proposition in finance ?
Because this time, we are not talking about something as "ominous" as WMD. And yet, the current financial and economic crisis has some clear roots in unethical behavior!
More specifically, the root is in the exclusion of the people from the system: loans were given not because the system trusted the people and their ability to meet their charges, but because it trusted the market, and its ability to provide the money by selling enough homes if there were a credit default.
And that could have worked too, except that it takes people (judge, police, ...) to foreclose the home of other people, and those people in charge of validating/enforcing the massive number of foreclosure need to keep the system afloat, they all say: "wait a minute... something is very wrong here". The system could not get enough foreclosure to get enough money to face massive credit defaults... and basically shutdown on itself.

Again, what was your role, your implication in designing/implementing the financial information systems used to monitor those credits ? Were you convinced, based on the 20-years data, that it would have worked ? Did you closed your eyes on the loan condition changes that made your all data obsolete (and lead to the current crisis) ?

Tough questions.

People and Trust need to be at the center of any ethic behavior definition. And in our line of business (developer), it is easy to "abstract people away" and only consider the "system" (the program we develop), hence shifting unknowingly to some serious unethical behavior...

Note: I do not address here other more classic topics regarding ethics and coding, like intellectual property, but basically "people" and "trust" are still two very important variables in those other "ethical" issues.

But my point is: even if you do respect the ethic code of your company, respect its privacy and intellectual property code, that does not prevent some unethical actions to take place.

share|improve this answer

See the ACM Code of Ethics for some meaningful guidance.

share|improve this answer

Be critical before taking a job. If it doesn't feel right, don't take it. There are obvious cases as if it would be illegal in your country, but then you wouldn't have to use your ethical thinking if you cared about staying within the boundaries of the law.

Personally I wouldn't want to be part of developing anything which would be used to hurt other humans. As I feel that there are enough weapon systems as it is. There are lots of gray areas and I would tackle them as they turn up.

I have to respectfully disagree with another answer. That developing technology is neutral. It certainly is not. If you're developing technology which has obvious use cases involving killing or hurting people you're as much "pulling the trigger" as the operator of your product will be in a later stage. A good example is the atom bomb.

share|improve this answer
What about weapons used as a deterrent? What about technology used to more accurately aim weapons that would otherwise cause "collateral damage"? Those save lives. –  Bill the Lizard Nov 2 '08 at 0:53
I don't believe in weapons as a deterrent. It certainly doesn't work for the US on any level. And weapons never save lives, they take lives. I understand your better aim argument, but I won't be part of creating something which take lives, period. –  user14070 Nov 2 '08 at 0:58
Weapons as a deterrent has been working for the US for decades, and on many levels. Weapons used for defense save many many lives. –  Bill the Lizard Nov 2 '08 at 1:00
You present it as facts, yet they are not. Please provide links to independent studies (i.e. not the NRA) to support your claims. –  user14070 Nov 2 '08 at 1:04
I'm not quoting studies, I'm quoting history. The atom bomb was used to stop a war that could have lasted for many more years, possibly taking millions of more lives. It's only common sense that weapons used defensively save lives. –  Bill the Lizard Nov 2 '08 at 1:07

If we have any ethical obligation, I think it's to develop those technologies you're talking about, not to refuse to develop them. Any technology or weapon can be used for either good or evil, defense or offense. Developing the technology is neutral, how you put it to use is what can be judged as ethical or not.

share|improve this answer
Context matters. Developing big brother tools might be OK, if everybody has access to them and can learn their capabilities and limits. Developing the same tools in some secret context could be very different. –  dmckee Nov 2 '08 at 0:50
You need to develop those technologies. Other countries are certainly developing them. –  Bill the Lizard Nov 2 '08 at 0:53
Maybe a distinction should be made between technology and product? Technologies are neutral, but maybe the products we develop have more specific aims. –  codeinthehole Nov 2 '08 at 0:53
I still think that how the product is used is what determines whether or not it's ethical. We have stockpiles of weapons that we keep around as a deterrent, and I don't see anything wrong with that. It would be abhorrent if we actually used them again (I'm from the US). –  Bill the Lizard Nov 2 '08 at 0:57
Knives can be used to slice bread or to stab people. It's not up to the knife, but to the person using it. –  Rik Nov 2 '08 at 1:01

The internet and cell phone technology were initially developed to support strategic and tactical military goals. Medical trauma units were a technology developed by the military to provide forward troop support. GPS was not initially developed for civilian use.

Insurance companies routinely deny claims they are obligated to pay because they know a certain percentage of their subscribers will not appeal(14%-39% depending on claim amount) and it saves them money.

Banks structure the payment sequence of checks presented from largest to smallest so that if there is on overdraft they can hit you with multiple overdraft charges for the small checks that bounce.

Medical clinics and hospitals unbundle services for billing purposes so that they can charge (and often double dip) more to Medicare and Medicaid for their services.

Lawyers can and do bill more than 24 hrs a day for their services.

The list goes on extensively.

all of the above require a lot of computer and software support to accomplish their goals. What industry can you work for that will not be "ethically" offensive to someone?

This is an angels on the head of a pin question.

share|improve this answer

I have recently resigned from a job and took another job with a decrease in salary because I did not agree with the ethics of the owner.

I will not abuse my conscience, or lie for another person.

Currently I work for people with exceptionally high morals (at least as far as I can tell)

And am much more relaxed and happier than I was. I believe it was the right choice. That also has the effect that I know I won’t have to work for clients that have questionable morals

Just my humble opinion Rihan

share|improve this answer

I think questions like this have come up since early humans started using tools. Technology is neither good nor evil. It's the people that use it. You can't always predict how your stuff is going to be used. When they start asking you to wear a Dr. Evil uniform, though, be wary.

share|improve this answer

I think you need to consider ethical questions before agreeing to work somewhere.

A few years ago I was approached by a short term loan company. They were one of those "payday loan" companies that attempts to sucker low income people into "feeling like they have more money than they really do," in the guise of "helping them." Once someone starts taking these loans, they're stuck in a downward spiral. They can't get out. Once you get it once, you need it forever.

I live in a less affluent neighborhood on the south side of Chicago, and I see this happen all the time. I think it's extremely depressing.

The company continued to press me, trying to convince me that it was a great "opportunity" and that the business was growing rapidly. Just goes to show what kind of a company they really are.

I think ethics are very important in where you choose to work. You'll be spending a lot of time there and giving them the fruit of your intellectual labor. You should do everything in your power to make sure that labor isn't dedicated to something you disagree with at a philosophical level.

If someone can "choose" not to use the product you're building, then you can sure "choose" not to build it.

share|improve this answer

As your title says ethics first and coding second;

also as a programmer;

if( ethics && coding)
  // do
share|improve this answer

Ethics is always first, full stop.

share|improve this answer
The is a singularly un-helpful comment. Very, very few things are ethically binary. Nick - can you give me an example of a time at work where you bucked your employer on ethical grounds? What happened? Do you -always- act ethically? What happens if someone else claims you are un-ethical? –  Foredecker Nov 2 '08 at 4:39

I've run into ethical issues a number of times, though most have been relatively minor compared to the issues talked about here.

Primarily they involved offers for contracts involving software to deliver spam in various forms (email, instant messengers, chatrooms), which has been easy to decline because of how much I hate it.

Also offers to develop cheats for games. I was once offered $20,000 to develop a few cheats for a popular online game. That was a little harder to turn down, but considering some of the recent lawsuits and rulings I'm pretty glad I did even without considering the ethical issues.

I was also asked to develop software for telecommunications companies that would enable the government to monitor calls. That was somewhat of a gray area since it was legal and there were some ethical possibilities for use, but I decided to stay away from it anyway.

share|improve this answer

Ethics and then coding

It's generally not too hard to work out what you're working is going to be used for.

Just watch The Simpsons episode "You Only Move Twice" for an alternative perspective.

share|improve this answer

When the early research into radiation and nuclear substances was done, I think that no one had any idea or intent on using it to kill people. It was only later that those notions were taken into consideration.

Software design seems like it would fall into that gray area where it can either turn out really good or really bad; or in some rare cases both.

If you start talking about programming for weapons guidance systems and doing research for the military, I think something you'd have to take into consideration is: who's going to make it first, me or them ?

share|improve this answer

A friend of my works at a company that develops billing software for telephone PBXs. Mostly their customers are hotels but some large organizations use it to analyze their call charges.

One of their customers turns out to be the military of a country with a poor human rights record. The military themselves are guilty of genocide.

So you don't have to be working with weapons technology to end up in an ethical dilemma.

share|improve this answer
I think your friend's issue regards dealers, not programmers. –  Federico A. Ramponi Nov 2 '08 at 2:14

There was an article published recently in Toronto (sorry, I don't remember where or I would provide a link) which discussed the ethics of writing price-fixing code. You don't have to go as far as military coding to find questionable programming tasks. You could work for a manufacturer and be asked to write code to implement price-fixing with a competitor. Here in Canada, if the company was caught, you would be responsible for having written the code.

This can create a difficult situation where your boss (who in the past has not requested anything remotely unethical) asks you to write such code. You could not have known about this when you took the job, and now you have an ethical decision to make. Deciding about the ethics of writing weaponry code has to do with personal ethics, not programming ethics. If you think working with weapons technology is unethical, don't apply to the military.

share|improve this answer

Great question. My answer is of course. Contrary to what some have said, you can't separate morality from your profession. If you write software whose purpose you feel is evil, then you are responsible. However, if you write software whose purpose you feel is good, yet people use it for evil, then I don't think you are responsible, but you should step back and consider whether it is good to continue its development.

share|improve this answer
