The Ethics of Web Apps, or, Ever try to get a list of your contacts from Facebook?

Even before I worked at Google, I was pretty impressed by the “don’t be evil” motto. Not that I think any company is perfect or that anyone can hire only saintly employees – but it’s impressive when anyone recognizes the ethical implications for what we do as programmers and web developers.

Now that I work there, I can tell you that everyone really seems to take it to heart (disclaimer: this is my personal blog and I am not representing my employer in any way). At this point, you may be asking, “programs are just lists of instructions, web sites are just products, what’s the ethical dilemma?”

I’ll give you an example.

I’m a big fan of Facebook, I think they’ve really done a great job building a social networking system, and it’s been very useful for keeping up with friends all over the world. But I also have an account at LinkedIn, and Flickr, and Yelp, and an address book in Thunderbird, and another on my iPhone, and… you get the picture. So I’m trying to collect all my contacts together in one system (Gmail) so I can just import/export to keep all these different social networking systems up to date.

But Facebook doesn’t have a function to export a list of contacts and email addresses. What’s more, they’ve apparently actively blocked attempts by developers to build systems to do it and disabled people’s accounts.

They are, of course, not legally obligated to let you export your contacts. And if I were building a social networking site, it probably wouldn’t be the first feature I would implement. But ethically, I think, they should do so. Why? We can refer to Kant’s categorical imperative or Jesus’ golden rule: They should build open systems because they would like other systems to be open.

They certainly take advantage of the openness of other systems, allowing you to import contacts from Gmail. Google’s social networking site, Orkut, will happily export your contacts, and I don’t think that’s an accident. The engineers and product managers at Google make conscious choices to do the right thing.

But wait… am I really asking them to make it easy for their users to take their data and go over to a competitor? Isn’t that a bad business practice?

It’s possible, but beside the point. I’m sure you and I could think of plenty of things that are profitable but morally repugnant. What’s more, I don’t think it is a bad business practice at all. I think that the walled garden approach is a sign of desperation rather than innovation. Orkut is not the only one that lets you take your data with you – LinkedIn allows exports, for example.

When you’re small, you can’t bully customers, so you have to charm them. Whereas when you’re big you can maltreat them at will, and you tend to, because it’s easier than satisfying them. You grow big by being nice, but you can stay big by being mean.

If you’d like to read more about this subject and see what some developers are doing to make your data more portable, check out DataPortability.org.