Ethics in Code

A few days ago several news articles came out lambasting Flickr for their auto-tagging system. At the same time, I read another article about the ethics of being a software developer.

As a developer, I saw only a system that needs more training. Given a bunch of pixels, the system tried to attribute a best guess, based on what it has seen before. Following each tag back through the system, there’s no way the system could have known DSC_1337 was taken in a playground or a concentration camp. If anything, it’s a perfect example of Hanlon’s Razor;

Never attribute to malice that which can be adequately explained by stupidity.

And this is why developers are ultimately myopic. We see the symptoms of this system and try and trace back the root cause. We debug human indignity like it’s a bug in a piece of code. It’s the classic tale of an employee feeling violated when they realise a sysadmin can read their email. To the sysadmin it’s nothing, just one more thing they have to check when the need arises. But to the layperson? We seem to be these gatekeepers who can play with people’s most private data on a whim (remember Facebook’s timeline experiment?).

Maybe we need a Hippocratic Oath for developers. Maybe we need to think about how code affects not just hardware, but people as well. At what point does an A/B test required the same rigour as a human drug trial?

Until then, I’m going to try and think about the users more. Not as auto-incremented IDs in a database somewhere but as people who are trying to accomplish something in their life.