The importance of platforms (APIs) to the Web

Why should you, a consumer of the web, care about platforms?

An API is a door that developers can use to plug into software like Facebook and Twitter to gain access to user data. A good example of this is when various apps plugin into your Facebook to connect you to your friends or get contact information. As a consumer, this feature is vitally important to the way you use the web. If platform API access did not exists, then you can kiss goodbye all the apps, webpages, and software that rely on these platforms to posts your pictures, purchases, movies likes, activity, likes, dislikes, et cetera transparently without you having to think about image formats, multiple logins, and file transfers from one device to another or from your device to the web.

Why should you, a developer, care about platforms?

If you are studying computer science then you positively, absolutely, most definitely should learn of the importance of platforms. As code-base size grows larger by the day and expected features become infinite, your only hope at success is to tap into the immense wealth of platforms. You no longer have to worry about servers because you can just tap into Google Cloud or Amazon AWS, which will scale affordable with your user base. You no longer have to start from scratch because you can use Facebook or Google+ to manage all your user connections. You don’t have to pay Microsoft an arm and a leg for Visual Studio (though if you have the money it is well worth it) because you can use Eclipse with various plugins for your need. The future of quality software is in the hands of platforms.

If your in computer science you should read the rant by Google employee Steve Yegge on the one thing that Amazon does significantly better than Google. You must keep in mind that it was written in 2011 back when Google Android and Google+ was still going through major growing pains. Yegge discusses how Amazon understood the importance of Accessibility and how that directly ties to the software as a platform model. Yegge worked at amazon when Jeff Bezos ordered his company to make the transition:

 

“His  [Jeff Bezos] Big Mandate went something along these lines:

1) All teams will henceforth expose their data and functionality through service interfaces.

2) Teams must communicate with each other through these interfaces.

3) There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team’s data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network.

4) It doesn’t matter what technology they use. HTTP, Corba, Pubsub, custom protocols — doesn’t matter. Bezos doesn’t care.

5) All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions.

6) Anyone who doesn’t do this will be fired.

7) Thank you; have a nice day!”

Basically, Bezos ordered his employees to design every bit of internal and external software as a platform. Yegge explains that this forced Amazon to change to a “service-oriented architecture”:

“From the time Bezos issued his edict through the time I left, Amazon had transformed culturally into a company that thinks about everything in a services-first fashion. It is now fundamental to how they approach all designs, including internal designs for stuff that might never see the light of day externally.”

Yegge goes on to explain how Amazon realized that they can’t always build the right feature of software for their users. This is were the platform model allows other companies or users to see the shortcoming in your software and build a solution using the API. This idea of Accessibility is, as Yegge describes it, “the most important thing”:

“I’ve come to understand that there are lots and LOTS of people just like you: people for whom this idea does not have the right Accessibility, so it hasn’t been able to get through to you yet. “

Google has learned a lot during its climb to the top with Android; however, you don’t have to learn the lesson the hard way yourself. Take Yegge’s advice and follow the Golden Rule of Platforms:

‘”Start with a Platform, and Then Use it for Everything.’ You can’t just bolt it on later. Certainly not easily at any rate — ask anyone who worked on platformizing MS Office. Or anyone who worked on platformizing Amazon. If you delay it, it’ll be ten times as much work as just doing it correctly up front. You can’t cheat. You can’t have secret back doors for internal apps to get special priority access, not for ANY reason. You need to solve the hard problems up front.”

And don’t forget to read the article: https://plus.google.com/+RipRowan/posts/eVeouesvaVX

Leave a Reply

Your email address will not be published. Required fields are marked *