Wednesday, May 28, 2008

Feed me an API: He who does not work, shall not eat.

On the road to openness, there is one principle that should not be taken lightly: He who does not work, shall not eat. When you build an application, if you want to feed off someone else's data, the right thing to do is to build an API for your application first.
Take note, Facebook, Plaxo, Google, Microsoft, Yahoo, and every other proprietary system out there! Feed others before you just feed off all their hard work.

A good read for background understanding, try The Value Chain for Information, by Elias Bizannes.

The root of the value chain for information is access to the information in the first place. If you have exclusive access to a piece of information, then you have a monopoly on the entire chain of value for that information. With the dawn of the web, a couple of guys named Larry Page and Sergey Brin (Google) jumped on this fact with a mission to "organize the world's information and make it universally accessible and useful." Good move. They actually took the most logical step. First, we have data. Second, we have to organize it. Third and following are numerous other ways to make use and value out of the data. The reason we like Google is that they [say they aim to] hold the monopoly only on the first step, the step very few of us would want to try to tackle in the first place -- and then they freely open the data to the rest of us to go at adding value in our own innovative ways.

Probably each one of us, when building a web app, have thought about the monopoly of owning the data. But I implore you to study a little closer that value chain of data, and realize that you cannot cover all ways to add value to even the data that you own. You must open it up to others to fill in gaps that you hadn't even thought of.

The ONLY way you can really get by these days is to open up your data. Remember, your app should do one thing and do it well. I've said this before. That one thing should cover a concrete portion of the value chain of information. And you should be providing the data in such a way that it is easy for others to add value to it in whatever way they choose.

Now, if your data is private user data, you'll have to use OAuth to open it up securely only with the user's permission. If all, or even some, of your data is public, then provide it publicly. Its up to you how you want to do it, but remember: Feed others before you feed yourself.

0 comments: