Ethics in Programming

Some time ago I was bothered by the issue of ethics in programming.
I heard the question best raised during a “game unconference” I attended. There was a panel about monetary systems for games, and people talked about the issues faced when adding money to an online game.
At one point someone from the audience said about ingame monetary systems (such as in WoW) “it’s like gambling and drugs!”, to which one panelist jokingly replied “so we have a proven business model”, and another said “except it’s legal”.

This was all in good spirit, but it got me thinking:

What are the programming jobs I will not take?

To answer this question I gave the subject some more thought, and discussed it with my friends. To make the discussion more concrete, here is a short (partial) list of jobs of which at least one is probably problematical for you:

  • Advertising
  • SEO
  • Pornography
  • Gambling
  • Spam and spam related
    • regular advertising
    • Botnet based spam
    • scams
    • harvesting email addresses
  • Hacking
    • en masse
    • commercial espionage
    • targeted “cons”
  • Costly addictive games
  • Affiliate marketing
  • DRM
  • Weapon R&D
  • Lawful Interception
  • guerilla marketing, specifically astroturfing

A critical issue that came up in discussions is the “victim”. “Victimless” jobs were perceived as ethically better than ones with a victim. Also some people considered gambling ok, because the player agreed to play. Some people considered spam victimless.

Another argument was practicality. Someone argued that while spam is marginally ethical, he still wouldn’t do it, as the returns on doing spam are not worth it. Similarly, many people said that while they don’t see working on pornography as ethically wrong, they would still not do it because of the stigma attached to it.

Still, all the people I talked to pointed out jobs they will not do.
When I tried to reason what jobs are not for me, I came up with the following hypothetical questions to ask:

  • Would you use the product yourself?
  • If appropriate, will you let your children use it?
  • Would you let your spouse use it and pay for it?
  • Would you partner with someone who has that work experience?

Using this guide, it’s easier to think about which jobs I’d rather avoid.

One last note: many times, morality is a luxury that not everyone has. In dire times, I believe many gray-area jobs would be considered less ambiguous. After all, everyone has to pay the mortgage.

Further reading:

ACM’s Code of Ethics
Scamville
The Rules of Acquisition
Jeff Atwood’s take on the subject

This entry was posted in Programming, Programming Philosophy and tagged , . Bookmark the permalink.

7 Responses to Ethics in Programming

  1. R. says:

    You get further into the gray zone when the context changes; for instance, is hacking OK when the target is an individual criminal? a criminal organization? a terrorist organization? an enemy country? a malevolent exterrestrial life form?

  2. avi says:

    Nice post, nice wonderings.
    It’s sometimes funny though to see science majors stumble upon moral issues and react somewhat like teenagers, as they have little experience thinking, discussing and reading about such subjects.

  3. lorg says:

    R:
    You’re right, although different people would consider this less gray, and more of a black white issue.

    Avi:
    1. Thanks for the compliment…
    2. So if you’re not a science major, and you’re a bit more experienced in “thinking, discussing and reading” about this – what do you think?

  4. I’d possibly refine your first question to “Would you refuse to use the product yourself?” – I’ve worked on several products which I have no ethical problem with but which I’m not in the target market for. Made it hard to retain interest sometimes, but it certainly wasn’t an ethical issue.

    I’d also disagree with the blanket indictment of advertising and marketing (and, to a lesser extent, SEO): There are a lot of very bad examples of them, but they’re not inherently evil. Ultimately good advertising is a service to the recipient of the advert as well as the person doing the advertising. It helps them find useful and interesting things which they otherwise might not have. Of course you don’t want to get involved in misleading or intrusive adverts, but that’s just a sign that the domain in question has its own ethical standards which you need to apply when working in it.

  5. lorg says:

    David:
    At no point have I made a “blanket indictment of advertising and marketing”! On the contrary, I’m advertising my own website, http://plnnr.com
    However, it seems to me that some people would consider advertising evil no matter what. I don’t. Maybe the placement in the list was a bit misleading, but my intention was to give a list of jobs in which anyone could find at least one job he/she wouldn’t take.

    Also, even jobs that I don’t like and are on the list are not an indictment. For example, personally, I don’t like DRM too much and would prefer avoiding work in this area. Still, I consider DRM to be an honest work. I also consider “lawful interception” legitimate.

    Lastly, the list is far from a complete. There are more jobs I can think of that can make their way inside.

  6. Daniel Goldberg says:

    I have issues with most of your list (bar the illegal ones like spam/hacking), but it comes down to the particulars. Is this something I’d be proud of doing (like in Atwoods post)? Does this challenge me technologically?

    If a job is pure cash, and I have competing offers to do stuff that is less ethically annoying (advertising >> spam jobs) then yes, I’ll avoid some jobs.

  7. lorg says:

    Daniel:
    Your sentiments are shared by many people I discussed this with.

    By the way, others would avoid jobs even without a competing offer at the time (planning on an offer in the future).

    For example, I know an accountant who gave up a job in a cigarette company. (Talk about “Thank you for smoking” :)