On one of the last pages of the
Dangerous book for boys there is a list of books which every boy should read. Having read none, except of course
The Hitchhiker's Guide to the Galaxy, which is considered required reading if you're ever to join the club of nerd.
So my quest this summer was to read up on my classics. I've so far read "
Brave new world", "
Lord of the flies", "
Of mice and men", "
Animal farm", "
I Robot" and "
The Foundation series". I've never been much of a fantasy or sci-fi man but after the first foundation book I was sold. The minute I came home I ordered the lot of them. I finished "
Foundation's Edge" today and on my way home something struck me.
I was thinking how we software/web/whatever-developers deal with ethics at work. Will you write software for weapons industry? Will you write code to block free speech? Dealing with these questions are all personal. But Asimov can help. I find the
three laws of robotics apply to engineering (software in this case) just as well as they do to robots.
1. Software may not injure a human being or, through inaction, allow a human being to come to harm.
2. Software must obey orders given to it by human beings except where such orders would conflict with the First Law.
3. Software must protect its own existence as long as such protection does not conflict with the First or Second Law.
The third law sticks out as it does not apply as well to software as it does to "hardware" (robots). But in a way it does work when you consider security. "Software must protect itself against haxoring as long as such haxoring does not conflict with the first or second law".
These laws are, of course, very hard to maintain. How can anyone be sure if your code, open source and free software especially, isn't used for evil? But then again as long as code is not self-aware, the keeper of the laws should be us humans. We, as developers, have an obligation to do the right thing when it comes to "instructions" we create.