Ethics for programmers

Ethics for programmers

Programmers need more ethics.
And I’m not talking about ‘craftsmanship’ ethics such as “always make clean code”, “be agile” or “coffee should be consumed pure and black”.

No, I’m talking about real ethics:

Ethics, also known as moral philosophy, is a branch of philosophy that involves systematizing, defending and recommending concepts of right and wrong conduct.

Source: http://en.wikipedia.org/wiki/Ethics

PRISM

Almost all the programmers I know are very active online, and all of them are condemning the US government project called PRISM. It is a huge electronic surveillance program, recently revealed by Edward Snowden. This program collects (all) data from a huge list of international websites such as Google, Facebook, AOL, Apple, Yahoo, Microsoft, and more.

One can only imagine the magnitude of this project, it handles a humongous amount of data and it would have to filter and match the data. It will have a lot of (secret) API’s and other methods of collecting the data. And this is all created by…. us programmers!

Just say no…

Why would somebody help the government in making these applications? I ethically wouldn’t think about programming this. And I’m serious about it, I’ve already turned down two projects in my young career because of an ethical standpoint:

  1. Helping to tweak an algorithm for the Dutch government for missile guidance (it would have been a cool project!)
  2. A project for a telecom company doing deep packet inspection, enabling them to ask subscription costs for (free) mobile apps
    (such as WhatsApp)

Both these projects might influence my own, or other people’s life in a negative way, and I refuse to help people do that. It’s like being an arms dealer or gun manufacturer condemning the use of weapons. It would feel like selling a crowbar to a thief, making a bit of money, while actually enabling them to break in.

Ethics!

Maybe programmers should have an oath, something like the Hippocratic Oath or the Physician’s Oath. Here are some of the rules I follow:

  • I won’t write code which helps/enables people to harm others
  • I won’t write code which will limit other people’s freedom
  • I won’t work for companies using software patents to bully/attack other people and companies

If you have any good additions to the list, please drop a comment!