tags:

views:

552

answers:

21

Software can have ethical implications in real life. One obvious example is the software that controls a military drone. A more subtle example is software that creates statistical reports for management about an employee's days off because of illness (that could be used to decide who will be fired).

To what extent should a programmer be aware of the ethics of his job? Is it reasonable to argue that his software is only a tool, and the users of this software are the wrongdoers? Or should he take a stronger stance, and avoid programming software with strong ethical implications?

A: 

Shouldn't a programmer make their own mind up about this?

RichardOD
Souldn't there some general consensus, like in medicine?
Mnementh
There is no "general consensus" in medicine. To my knowledge the "Hippocratic Oath" is tradition and has no further meaning. We saw this in Germany, in Japan, in Gitmo, in Irak and see this now every day in our TVs when 14 years old get their bodies "improved"...
merkuro
Yes, it's a tradition not a legal construct. But because of the 'convention' of the "Hippocratic Oath" it's easier to publicly judge about people violating this.
Mnementh
Read the Hippocratic oath sometime. Some of it is clearly outdated, and flat wrong in a modern context. Some of it (the forbidding of abortion) is highly controversial. Some is still dead on. It doesn't show a consensus in medicine.
David Thornley
+10  A: 

I would say that a software developer should be very aware of the ethical implications and use of his work (just like everyone should), but that ultimately it is up to the individual where (or if) the line should be drawn as to what they are prepared to work on.

To use your example of military software. The developers of that should definitely consider what their software will be used for, but no one apart from the individual can decide if they are prepared to work on software that plays a part in war.

The ethical implications of many software applications are difficult to assess. Modelling packages for example could be used to model explosions and flight pattens to improve bomb efficiency. Operating systems could run on military (or terrorist) kill-bots. Ultimately, each developer must decide for each project.

Simon P Stevens
+7  A: 

I have something of a divided view about this.

  1. I work for companies and organisations where I support their aims and, where possible, methods and ethics.

  2. I support the principles of the Free Software Movement (e.g. Free Software Foundation). However, one of those is that software is indeed, free and I cannot control who uses it or for what (The freedom to run the program, for any purpose (freedom 0).). Similarly, I answer questions here without knowing the questioner or the purpose to which the information might be put.

  3. I, as are many of us on these fora, am a member of several professional societies and thereby subscribe to their ethical policies. For example, the ACM Code of Ethics and the BCS Code of Conduct and Code of Practice.

mas
+13  A: 

No less and no more than a person in any other profession should consider the consequences of her work. How much that amounts to would depend on:

  • Law, if your work is illegal, or used solely for illegal activities, you are probably in trouble
  • Personal ethics, no absolutes here
Nils Weinander
+3  A: 

A friend of mine works in a factory that make lathes, milling machines, and other heavy duty tools.

Should he worry that the devices he builds are used ethically? Should he down his tools if he finds out the lathes are bought by people that make guns?

The drone software could equally be used by the Red Cross to drop food and medical supplies into disaster areas.

Is it the programmers fault the military use it offensively?

I don't think so.

Binary Worrier
its always programmer's fault.
01
I make an axe. I use it to chop wood to keep my family from freezing to death in the winter. Some psycho steals the axe and uses it to kill the family next door. Are their deaths my responsibility because I made the axe? Or the psycho who killed them?
Binary Worrier
Of course. But I think the axe analogy is a bit obvious. How about if you make an axe on commission for a person who intends to kill people with it. You could still argue that it wasn't you, it was the killer that did it. You could argue that he could just go elsewhere to buy the axe. You could argue that even if no one sold him an axe, he'd find another way to do it. Still, I think you'd be looking a pretty barren set of ethics.
Beska
This is true for the axe but if you build a tank with a very big gun on top of it?
Janusz
+2  A: 

As with anything in life, if you have a choice, you shouldn't work on anything that you regret later (and you can already see it's going to happen).

Of course, reality is more complicated. If you are working on some project and you have some second thoughts, think about it, talk about it and act. Better to be a little hurt now, than major pain later.

The current company I work for, has an explicit ethic statement (both environmental and political) and act like it.

Gamecat
Ah, I wish more companies would give themself such an ethical statement. Even if you don't agree, at least you know which standards the company tries to apply.
Mnementh
+2  A: 

Yes, absolutely.

Legally, part of the definition of a profession (e.g. doctor) is to adopt a code of ethics imposing standards higher than those normally tolerated in the marketplace.

The two largest professional organizations for software developers in the US (the ACM and the IEEE Computer Society) defined and adopted a Code of Ethics and Professional Conduct for software engineers in 1992. Check out this powerpoint for more information.

MarkJ
+1  A: 

As long as you can look yourself in the mirror in the morning, so sometimes you need to put your foot down and say no.

When, is up to you and your situation.

Johan
A: 

I think the question is too general to give you a definitive answer, but in my opinion in every situation you are jointly responsible as soon as you guess or know that something is going in the wrong direction. Of course this is not limited to programming jobs or your position in the company in any way.

Therefore the question of "how much" does not matter. So what does matter and how to proceed?

Depending on the situation you can carefully try to speak with others in the team and find a solution that fits current ethical standards. If the topic is too important or cannot be resolved, simply make it public by going to the press and/or by using anonymous services like Wikileaks.

I see no reason to decline any offer to join a dubious project, because they will find enough volunteers anyway. But the advantage to join such a project is, that you can follow the progress, report from the inside and make the public aware. Good luck!

merkuro
+5  A: 

Whether you're writing software, assembling cars, or selling machines -- there's always the question of ethics. Software is not special in that respect.

Even though every hammer can be abused to kill people, there is a difference between producing hammers and producing cannons. Hammers are aimed at building things, cannons are aimed at destroying things and killing people. I would avoid jobs making cannons, but would help building hammers. In software, hammers might equal to an office suite and cannons might equal to the software used to drive a military missile -- but the same principles still apply.

Of course, there's a lot of room between cannons and hammers. What about hunting rifles? If you like hunting, you will most likely not have a problem with producing hunting rifles. If you are a vegetarian, chances are you have. If you are neither, you'll have to find out about your own ethics yourself.

Keep in mind, though, that sometimes jobs aren't what they seemed to be. I once worked for a company that equipped transport ships with newer technology. The shop was great, nice and creative people around, and the job very interesting. Only after I had been there for several weeks, I found out that their main deal was military transport ships. If I had a family and four children to feed then, would I have quit the job and start applying for other jobs?

sbi
Great answer, especially because you point out the difference between hammers and guns. Many people argue, that not guns kill people, people do. That's why also my starting question, because never software kills people (or release them from job to be less drastic), people do. But some software is more clearly written in the intention of doing that things, than other software.
Mnementh
To rephrase: Hammers are aimed at building things; cannons are aimed at buildings. :-)
Carl Manaster
+6  A: 

There are two areas to consider - direct use of code and indirect use of code. Direct use of code is code written for a specific, known purpose or for a specific, known client. In this case, the programmer can make an ethical choice whether or not to do the work. Personally, I won't work on anything or for anyone directly related to weapon/military systems. But you could argue that by doing so, I'm putting the lives of miltary personel from my country at risk by failing to provide system to improve their defensive capabilities. The question said "should a programmer care" and I think they should, in this case.

Indirect use of code is anything that can be done with the code without your knowledge of it. For example, developing a database seems innocent enough but the database could be used for, say, implementing a UK National Identity Register (personal pet hate); or Google Streetview used to scout neighbourhoods for burglary targets; or the internet used to distribute suspect/illegal material. This is like the "hammers can be used to kill people" argument sbi mentions. How someone deals with this is entirely up to them. Although I think programmers should care about the implications of their work, thinking along these lines, i.e. considering possible outlier cases, would drive most people to go live on a desert island - even paying taxes leads to funding the military!

Skizz
+1  A: 

If you're contracting I think it's essential you look at the ethics of any company your working for, even if it's just for self-preservation, because if that company is not operating to ethical standards for others then they'll have no issues not operating to ethical standards with you later.

I recently had a case in point. I was asked, via another company I regularly do work for, to make some enhancements to the website for a big international event in Edinburgh operated by an apparently well regarded Scottish Events company. The website was selling tickets online via Paypal, and wanted to add Paypal's Payments Pro interface to the site so they could take payments without presenting the Paypal interface to the purchaser. I should have, in retrospect, realised that this was suspect because the Event company would not use the more normal WorldPay (which they had available and were using for telephone bookings) as WorldPay insisted that because payment was being taken for an event the money would be held in ESCROW until after the event, but Paypal were quite happy to hand the money over as they recieved it. To my mind avoiding the ESCROW was dubious and I didn't feel at all happy about it.

We had a lot of difficulties with the Paypal interface. We traced this so far as we could to the ISPs network configuration, and at one point I'd spent so much time trying to sort out the issues, including about two days spent from a bar while I was supposed to be on holiday, that I asked that they'd pay me for the additional work over and above the existing contract as the source of the ongoing problems were outside my control. They agreed and I committed more time, only to find subsequently that they turned around and declared point blank that they wouldn't pay as technically I was subcontracting and technically no contract existed between us.

Unfortunately they are correct. I can't enforce anything and in retrospect I was naive, but this is the first time in 10 years contracting with scores of clients I've ever had anything like this sort of issue and I've always found previously that if you work with people on a basis of trust then it pays off handsomely. My mistake here was to extend that trust to a company that I should have realised from their own behaviour could not be trusted.

Cruachan
Sort of like what the "other woman" gets if she lures her guy away and marries him - a husband known to cheat on his wife. BTW, you can work with people you don't trust - just don't let the pay you haven't gotten yet get bigger than you'd really regret losing.
David Thornley
+3  A: 

In the end, you have to be able to live with yourself. I quit one job specifically because they asked me to do something both unethical and illegal.

I've watched several people die from diseases related to smoking. It wouldn't matter what the job was or how much it paid, I would not consider working for Phillip Morris.

Buddhism has a concept of Right Work. It is up to the individual to make sure his paid work is something that helps or does not harm (or balancing the two together at least harms less than it helps). To do less than that is to harm your own spiritual growth.

Taking the example given of being asked to provide reports that could result in employees being fired. Can this harm? Yes Can this help? Yes because the other employees are being asked to make up the slack for the nonproductive and because bad employees tend to create problems for organizations and cost them money. It even often helps the employee fired in the long run (by giving him or the the kick in the pants they needed or by enabling him or her to find a job they are better suited for or happier in). So in this case, I would not think there was an ethical issue in doing this kind of work. But in the end, everyone has to make their own analysis of what they will and will not do.

HLGEM
A: 

Even if you will deny to build a bomb, there will be others that will do that.
What really cares is what you will tell to Allmighty when you get there.

Andrejs Cainikovs
So, if you don't believe in "Allmighty" you can do whatever you want?
Beska
Even atheists have feelings. You can rephrase that to: What my granchilds will think about me after I'm gone.
Andrejs Cainikovs
Or what will I think of myself when I get old? What will I look back on?
David Thornley
A: 

The Developer should know to the fullest possible extent the desired use of their software, and should know the ethics involved to the extent they care. They should ensure the combat drone has the highest safety, lethality, etc as determined by the requirements. If the Developer has conflicts that may affect his work he needs to resolve them or quit.

tsilb
+2  A: 

I think for people in software development this a very important thing to keep in mind. There are many issues where software harms other people some of them are simply the change of ways things work, like programming robots to build cars so that more workers are unemployed, others are more harmful like programming drones, or building the system that censors the internet in china.

You as a programmer should at least be aware if you are building an hammer or a tank. And if you are building a hammer know for whom you are building it. There is always a possibility for everything to be used in two ways and this means there is always an excuse for what you are doing and most of the times if you don't do it somebody else will do it. But... in ten years I would like to look back at my jobs and see that I have done something that was worth doing without regretting the use of my work. I hope that many other developers see this the same way and think about the purpose of their work and if this purpose fits into their ethical standards.

Janusz
Economic progress comes from eliminating jobs. A healthy economy will adjust by finding new work for the displaced workers. It can of course be awfully hard on the workers, but as you point out that's changes that have to be lived with.
David Thornley
It is awful for the people but if I can write a program that completely does the work of the person is that a job that is worth saving?
Janusz
@Janusz: Short answer, no. You can't make things better for the next generation without progress. You can't progress without change. You can't change things without hurting people. This isn't a perfect world, and people just have to deal with it (and I'm all for getting them help if they need it).
David Thornley
A: 

The military question is more complicated than some people think.

Are you a pacifist? That's a morally respectable position, but it goes farther than most people are willing to go.

If not, shouldn't we have weapons we can use when we need to? We can argue about whether this war is necessary and whether that one is not, but if I'm not a pacifist I really do have to believe that some weapons are necessary.

If we are going to have weapons, shouldn't we have good ones? If we don't, then our soldiers will suffer more for no good reason. If we do, then we do need to continue to improve them.

If somebody is working on developing better weapons, and I have no moral objection to that, should I have a moral objection to working on them?

I can understand not wanting to work on something because it's distasteful. There are a lot of jobs I would really not want to have, although not for moral reasons. However, I don't feel that I can refuse to work on something for ethical reasons while I believe it's ethical for others to do it.

There are unethical projects, but I don't see that weapon projects are among them.

That said, remember that you'll live for the rest of your life with what you do today. Don't take that lightly.

David Thornley
Nuclear weapons? Biological weapons? Napalm? Is there a line somewhere?
MarkJ
My best analysis is that nuclear weapons have saved a great many lives, both by stopping WWII in the Pacific early and in deterring large wars. Napalm is a horrible way to go, but there really aren't any good ways. You may feel that the horror of some weapons outweighs their usefulness, and that's fine. That's even codified in the international law of war. However, personally, I'd like to know how much of any objections I have are from ethics and how much from squeamishness.
David Thornley
A: 

First of all, a programmer should consider all the possibilities his/her software would be capable of. Human intellect is a very powerful tool, it can change lives, the society, and the world. Abuse and misuse are both results of failure to consider ethics in the first place. Careful planning on these is the first step.

Second, is to liberate one's self of negative influences, like a colleague asking you to help him hack through the payroll system. "It is better to deceive than to be deceived" is nonsense, rather, "It is better to perceive than to deceive".

Mabuhay ang mga pinoy!

A: 

A hell of a lot.

It is never justified to "just be a tool for the system". If you have ethical issues about what you are doing, (even if it is only for a paycheck) you shouldn't be doing it. Life is way too short to be losing sleep at night about your job, and money isn't everything.

Of course, some answers have said "but someone else will step up if you don't". Let them. If you really feel strongly about changing the system, become an activist (which I highly recommend, by the way).

"My software hurts people in some way, but I did not stand up, for I am just a cog in the machine and I need a paycheck."

temp2290
+1  A: 

Care deeply, but do not take yourself too seriously.

I have worked for some deeply ethical companies, and some rather shady ones. I felt better about myself and what I did when I worked for the ethical ones, even if their choices differed from the ones I would have made.

There are degrees. A not-so-stellar company can still be a reasonable choice to work for, as long as they have not gone so far down the path of evil that you are compelled to quit. To give an example: I have many friends at Apple. I do not agree with some of the recent App Store decisions Apple has made, but I do not think they have made the company unethical, merely foolish on occasion. I thus do not think my friends should switch jobs.

A different company I worked for did things that I felt were attempts to mislead the government while applying for grants. While the company was "minority and women owned", the minority/woman owner was not involved in any way with the company beyond the articles of incorporation. Legal, yes, but ethical, no. I finished my contract, but was happy that they did not get the contract they were trying for.

Had they gotten closer to winning the contract, I would have had a much harder choice.

Another friend of mine works in the porn industry, and is not at all happy about some of the things he has done. I am glad I do not have his choices.

There is a temptation to equate the importance of our work with the importance it had for us. It is of some importance to me that my "life's work" be a net good for our species and our world, but not every day, or every job, is going to count for much on the positive side. I wrote a front end for a product that was cancelled, and while I would rather have had the product shine, I am content that I learned a lot, have taught the lessons the cancelled project taught me, and have been able to make a living that let me bring up my daughter well.

Failed projects had best not be a pattern. I will view it differently if several such products tank. Some failure is a proxy for having taken a risk. Other failures mean you are shooting at the wrong targets. So far, it feels like this one project was in the first category.

So, were I to take myself too seriously, I would probably lose sleep thinking about whether I had spent those irreplaceable hours well. Instead, I try to make sure that I am always either content with what I am doing and learning, or I am working actively to change that which offends me.

I do find that working for a company with a clear code of ethics really makes it easier to sleep at night. I have done so several times, and it makes a difference.

Scott

Scott Ellsworth
A: 

Not every scientist who was asked to work on the atom bomb accepted. Unfortunately, too many looked at it as a great challenge of physics instead of a way to blow up the planet.

Jeff O