Platforms vs. Applications

Joel Spolsky in one of the interviews stated that he didn’t believe it was good business model to have your business built on a highly closed , proprietary 3rd party platform such as iOS.

Few days back, Steve Yegge’s long rant on Google+ went viral and was widely discussed and reported. Apparently, Yegge had shared the post publicly by mistake. He intended to share it only with few of his Google friends and later on removed from public share. Here is a link to the post (Someone had reshared Yegge’s post and later Google allowed him to keep the post) Hope this link still works.

Although, the post is a great read and talks about a lot of things, including his experience at Amazon, things that Google does well and those it needs to. The jist of the rant was Yegge was pissed with Google’s inability in establishing platforms right.

Here are some excerpts from the post –

On Amazon –

Amazon’s recruiting process is fundamentally flawed by having teams hire for themselves, so their hiring bar is incredibly inconsistent across teams, despite various efforts they’ve made to level it out. And their operations are a mess; they don’t really have SREs and they make engineers pretty much do everything, which leaves almost no time for coding – though again this varies by group, so it’s luck of the draw. They don’t give a single shit about charity or helping the needy or community contributions or anything like that. Never comes up there, except maybe to laugh about it. Their facilities are dirt-smeared cube farms without a dime spent on decor or common meeting areas. Their pay and benefits suck, although much less so lately due to local competition from Google and Facebook. But they don’t have any of our perks or extras — they just try to match the offer-letter numbers, and that’s the end of it. Their code base is a disaster, with no engineering standards whatsoever except what individual teams choose to put in place. To be fair, they do have a nice versioned-library system that we really ought to emulate, and a nice publish-subscribe system that we also have no equivalent for. But for the most part they just have a bunch of crappy tools that read and write state machine information into relational databases. We wouldn’t take most of it even if it were free. I think the pubsub system and their library-shelf system were two out of the grand total of three things Amazon does better than google.

On Jeff Bezos –

Jeff Bezos is an infamous micro-manager. He micro-manages every single pixel of Amazon’s retail site. He hired Larry Tesler, Apple’s Chief Scientist and probably the very most famous and respected human-computer interaction expert in the entire world, and then ignored every goddamn thing Larry said for three years until Larry finally — wisely — left the company. Larry would do these big usability studies and demonstrate beyond any shred of doubt that nobody can understand that frigging website, but Bezos just couldn’t let go of those pixels, all those millions of semantics-packed pixels on the landing page. They were like millions of his own precious children. So they’re all still there, and Larry is not.

On Google –

That one last thing that Google doesn’t do well is Platforms. We don’t understand platforms. We don’t “get” platforms. Some of you do, but you are the minority. This has become painfully clear to me over the past six years. I was kind of hoping that competitive pressure from Microsoft and Amazon and more recently Facebook would make us wake up collectively and start doing universal services. Not in some sort of ad-hoc, half-assed way, but in more or less the same way Amazon did it: all at once, for real, no cheating, and treating it as our top priority from now on. A product is useless without a platform, or more precisely and accurately, a platform-less product will always be replaced by an equivalent platform-ized product.

I recommend you to read the whole post. It gives a good food for thought. What Yegge was trying to tell was that Google has product biased mindset and developing platforms is the key to survive in the game. From my perspective as a developer, agreeing with Joel, I have always believed it to be a bad idea to have your business dependent on someone else’s platform. In certain respects, it is never avoidable. In traditional sense of software development, the software is always built upon a certain operating system.  Even cross platform softwares have to wrestle a balance of being cross platform and providing all the power that a certain platform has to offer.

On the other hand, in the space of web companies, as Dr. Werner Vogles explains all the pieces of building great stuff are at your disposal, which frees you from struggling with the basic infrastructure required to develop great Web Apps and lets you focus on value add. This is quite instrumental in driving innovative ideas. Eg. Twilio, plivo offer ready to consume telephony services. SimpleGeo offers Geographic API for application developers, host of different startups are offering streaming video services, even while established services like PayPal continue to exist, new startups are offering easy payment services. Cloud services such as AWS have super reduced the pain of managing the infrastructure, scalability and reachability while keeping it absolutely affordable.

Now all a developer needs is the next great idea and put all these pieces together.  A number of most successful startups lately have based themselves on one or the other platform. Zynga, now planning to go public, owes its success to Facebook. Angry birds also bet on the success of Android. The list of successful startups who placed themselves on iPhone is virtually endless. Instagram is one such startup. Quora, although not as successful as its creators would have expected it to be, now has a large user-base. As it turns out, Quora is built on Amazon Web Services. What Apple did with AppStore was the ultimate pioneering work for developing such a business model. I guess Facebook followed suit.

Couple of days back, I read a list of startups  on TechCrunch, that Goldman Sachs thinks will most likey IPO. The list is quite interesting and some time back, I was not enthusiastic about most of them. Some of those names I mentioned earlier feature in the list.

A not very unrelated issue, in my opinion, was Apple’s take on Flash for iOS devices. In his now famous blog post, Steve says some very interesting things. Sixth and the most important reason for rejecting Flash –

We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform

So the key takeaway for me is- use the existing infrastructure wisely, if already available. No one is going to pay you for reinventing the wheel. Aim to build an open platform rather than a closed product (and that is easy to say, I know)

Leave a comment