The Three Laws of Computer Ethics

Julie Amero is a substitute teacher who faces the possibility of jail time because the classroom computer displayed pornographic popups to teenage kids. Though she tried to stop it, she was somehow blamed by an incompetent and overreaching school administration. Thankfully, she recently obtained a new trial. I hope this one is a bit less of a sham than the previous one.

There’s a new group called The Julie Group, which posts information about folks like Julie who get caught up in a mess of criminal charges, jail time, lawsuits, and other horrible events, when they are but the victims of badware. Badware is software that does things to your computer without properly notifying you, sometimes not even letting you know it’s being installed, e.g. pornographic popups, relaying spammers’ email, etc… I suspect we’re going to see a lot more of this kind of activity, because there are far too many innocent folks suffering from these incompetent proceedings, and far too many being sentenced excessively because of other people’s wrongdoings.

There’s a deep problem here. It’s not just the shady underground Russian botnet coordinators. It’s also the email marketing firms that make it particularly difficult to unsubscribe from their mailing lists. And the bundlers who install adware along with their otherwise useful software. The techniques adjust rapidly as the web moves forward, but the core concepts are the same: a number of technologists are working against the user.

I think it’s high time to define a code of ethics for computer scientists. The Three Laws of Computer Ethics, to borrow Asimov’s meme. Something along the lines of:

  • The First Law of Computer Ethics: I will not create, distribute, or recommend software that harms the user or her data, or allows the user or her data to come to harm.
  • The Second Law of Computer Ethics: I will not create, distribute or recommend software that disobeys a user’s instructions or places unnecessary obstacles in the user’s way when the user is dealing with her data. Where this conflicts with the First Law, I will only create, distribute, or recommend software that warns the user accordingly before taking action.
  • The Third Law of Computer Ethics: I will not create, distribute, or recommend software that leads another program to violate the First or Second Law.

With technology moving so quickly, there’s no point in skill-based accreditation tests in software. These laws – and I’m sure there could more – are meant to represent the long-term principles of software development, whether you write Fortran or JavaScript. They’re meant to provide an answer to a narrow but concrete question: who controls the computer? The user does. Always.

bonus question: where does DRM fit into this story?