Google now has its own version of the Yahoo “peanut butter” manifesto, where Google staff software engineer Steve Yegge wrote a “family intervention” memo about Google’s failure to build accessible platforms, leaving it vulnerable to the likes of Facebook.
There are some harsh words about Google+, but the memo is broader than that. It offers an intriguing look inside Google, including being a place where engineers, as least, can send such strong declarations around the company without fear of retribution.
Yegge didn’t intend for his post to be public. That was an accident, as he explains here. It was meant to be shared internally, and given that it does a call out to people like Larry Page and Sergey Brin, it was apparently intended for wide distribution within Google. As best I can tell, he addressed it to everyone in Google (there must be an internal Google+ circle that allows this).
Yegge since deleted his post, saying:
I contacted our internal PR folks and asked what to do, and they were also nice and supportive. But they didn’t want me to think that they were even hinting at censoring me — they went out of their way to help me understand that we’re an opinionated company, and not one of the kinds of companies that censors their employees. That was cool and all, but I still didn’t know what to do.
So I made the call myself and deleted it. Part of the reason is that for internal posts, it’s obvious to everyone that you’re posting your own opinion and not representing the company in any way, whereas external posts need lots of disclaimers so people don’t misunderstand. And I can assure you, in case it was not obvious, that the whole post was my own opinions and not Google’s. I mean, I was kind of taking them to task for not sharing my opinions. :)
The other reason I deleted it is that it’s really a private conversation between me and my peers and co-workers at Google. I love working at Google, and I especially love the fact that I’m comfortable posting something as inflammatory as my post may have been. The company is super open internally, and as I said several times in my post, they really try hard to do everything right. That includes being open to strongly differing opinions, and that has certainly not been true at every company I’ve worked at.
The post did get shared on Google+ before it was removed, perhaps most notably by Rip Rowan here. Yegge specifically said he wouldn’t ask Rowan or anyone to take copies down, which is probably smart. It’s already circulated outside Google and can’t really be pulled back.
Amazon Sucks In So Many Ways….
So what have we got? It starts out with a long summary of his nearly six years time at Amazon, as a set-up to concerns he has about Google. Here are some excerpts:
I was at Amazon for about six and a half years, and now I’ve been at Google for that long. One thing that struck me immediately about the two companies — an impression that has been reinforced almost daily — is that Amazon does everything wrong, and Google does everything right. Sure, it’s a sweeping generalization, but a surprisingly accurate one. It’s pretty crazy. There are probably a hundred or even two hundred different ways you can compare the two companies, and Google is superior in all but three of them, if I recall correctly. I actually did a spreadsheet at one point but Legal wouldn’t let me show it to anyone, even though recruiting loved it.
I mean, just to give you a very brief taste: 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.
But Bezos Was Wise On Building Amazon As Platform
Next, Yegge talks about a mandate that Amazon CEO Jeff Bezos made that Amazon had to make all its data machine readable by different teams within Amazon and further, accessible to those outside of it:
So one day Jeff Bezos issued a mandate. He’s doing that all the time, of course, and people scramble like ants being pounded with a rubber mallet whenever it happens. But on one occasion — back around 2002 I think, plus or minus a year — he issued a mandate that was so out there, so huge and eye-bulgingly ponderous, that it made all of his other mandates look like unsolicited peer bonuses.
His 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!
Ha, ha! You 150-odd ex-Amazon folks here will of course realize immediately that #7 was a little joke I threw in, because Bezos most definitely does not give a shit about your day.
Yegge is talking APIs here, application program interfaces, a way for computers to talk directly to each other. APIs will be important to his concerns about Google, as he’ll get to. And doing APIs or services is now part of Amazon’s culture:
At this point they don’t even do it out of fear of being fired. I mean, they’re still afraid of that; it’s pretty much part of daily life there, working for the Dread Pirate Bezos and all. But they do services because they’ve come to understand that it’s the Right Thing. There are without question pros and cons to the SOA approach, and some of the cons are pretty long. But overall it’s the right thing because SOA-driven design enables Platforms.
That’s what Bezos was up to with his edict, of course. He didn’t (and doesn’t) care even a tiny bit about the well-being of the teams, nor about what technologies they use, nor in fact any detail whatsoever about how they go about their business unless they happen to be screwing up. But Bezos realized long before the vast majority of Amazonians that Amazon needs to be a platform.
Google’s Not A Platform
All this build-up leads to the point of Yegge’s post, that Google is failing to be a platform, something he considers the “the most important thing in the computing world.” From his post:
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.
But no. No, it’s like our tenth or eleventh priority. Or fifteenth, I don’t know. It’s pretty low. There are a few teams who treat the idea very seriously, but most teams either don’t think about it all, ever, or only a small percentage of them think about it in a very small way.
Google+ Is Poster Child For Platform Failure
Further in, we get to where you may be reading headlines for days to come, where Yegge applies his concerns about platforms to failures with Google Plus.
But perhaps what’s most remarkable is that it’s clear from his opening sentences that this memo is going out to the highest part of Google and the lowest. He seems to have shared it companywide, without worry about who saw it or perhaps was upset by it.
That speaks a lot about Google’s culture. Perhaps Yegge is fairly highly ranked, so it’s easier for him to do this type of thing that a lower ranked Google employee. His title, like most titles at Google, gives no clue about that. But given that he appears to be a highly regarded programmer outside of Google, probably what’s most important is that he’s a programmer, an engineer — and engineers are treasured by Google to speak their minds.
Anyway, back to his post:
Google+ is a prime example of our complete failure to understand platforms from the very highest levels of executive leadership (hi Larry, Sergey, Eric, Vic, howdy howdy) down to the very lowest leaf workers (hey yo). We all don’t get it. The Golden Rule of platforms is that you Eat Your Own Dogfood. The Google+ platform is a pathetic afterthought. We had no API at all at launch, and last I checked, we had one measly API call. One of the team members marched in and told me about it when they launched, and I asked: “So is it the Stalker API?” She got all glum and said “Yeah.” I mean, I was joking, but no… the only API call we offer is to get someone’s stream. So I guess the joke was on me.
Google+ Was “Knee-Jerk” Reaction; We Have No Steve Jobs
Soon after, Yegge calls Google+ a “knee-jerk” response to Facebook, which seems to fit in with his larger theme that rather than let a developer community access Google+ and help it grow, Google seems to have taken a top-down it’ll control how Google+ grows attitude. That would be fine perhaps if Google had a Steve Jobs person who knew what consumers should be given. But it doesn’t, he says.
Google+ is a knee-jerk reaction, a study in short-term thinking, predicated on the incorrect notion that Facebook is successful because they built a great product. But that’s not why they are successful. Facebook is successful because they built an entire constellation of products by allowing other people to do the work. So Facebook is different for everyone. Some people spend all their time on Mafia Wars. Some spend all their time on Farmville. There are hundreds or maybe thousands of different high-quality time sinks available, so there’s something there for everyone.
Our Google+ team took a look at the aftermarket and said: “Gosh, it looks like we need some games. Let’s go contract someone to, um, write some games for us.” Do you begin to see how incredibly wrong that thinking is now? The problem is that we are trying to predict what people want and deliver it for them.
You can’t do that. Not really. Not reliably. There have been precious few people in the world, over the entire history of computing, who have been able to do it reliably. Steve Jobs was one of them. We don’t have a Steve Jobs here. I’m sorry, but we don’t.
Microsoft, Apple, Facebook All Get Platforms
Earlier, Yegge talked about accessibility, not meaning making things accessible to those who are disabled in some way but rather making computer data accessible, which is a key to building a successful platform. And who gets that? Microsoft. Amazon. Apple. Facebook.
I apologize to those (many) of you for whom all this stuff I’m saying is incredibly obvious, because yeah. It’s incredibly frigging obvious. Except we’re not doing it. We don’t get Platforms, and we don’t get Accessibility. The two are basically the same thing, because platforms solve accessibility. A platform is accessibility.
So yeah, Microsoft gets it. And you know as well as I do how surprising that is, because they don’t “get” much of anything, really. But they understand platforms as a purely accidental outgrowth of having started life in the business of providing platforms. So they have thirty-plus years of learning in this space. And if you go to msdn.com, and spend some time browsing, and you’ve never seen it before, prepare to be amazed. Because it’s staggeringly huge. They have thousands, and thousands, and THOUSANDS of API calls. They have a HUGE platform. Too big in fact, because they can’t design for squat, but at least they’re doing it.
Amazon gets it. Amazon’s AWS (aws.amazon.com) is incredible. Just go look at it. Click around. It’s embarrassing. We don’t have any of that stuff.
Apple gets it, obviously. They’ve made some fundamentally non-open choices, particularly around their mobile platform. But they understand accessibility and they understand the power of third-party development and they eat their dogfood. And you know what? They make pretty good dogfood. Their APIs are a hell of a lot cleaner than Microsoft’s, and have been since time immemorial.
Facebook gets it. That’s what really worries me. That’s what got me off my lazy butt to write this thing. I hate blogging. I hate… plussing, or whatever it’s called when you do a massive rant in Google+ even though it’s a terrible venue for it but you do it anyway because in the end you really do want Google to be successful. And I do! I mean, Facebook wants me there, and it’d be pretty easy to just go. But Google is home, so I’m insisting that we have this little family intervention, uncomfortable as it might be.
A Fifth Grader Could Do Better
Yegge goes on to highlight the sad state of Google’s APIs beyond Google+, which compared to internal ones that exist, leave Google far from being platform ready, in his view:
After you’ve marveled at the platform offerings of Microsoft and Amazon, and Facebook I guess (I didn’t look because I didn’t want to get too depressed), head over to developers.google.com and browse a little. Pretty big difference, eh? It’s like what your fifth-grade nephew might mock up if he were doing an assignment to demonstrate what a big powerful platform company might be building if all they had, resource-wise, was one fifth grader.
Please don’t get me wrong here — I know for a fact that the dev-rel team has had to FIGHT to get even this much available externally. They’re kicking ass as far as I’m concerned, because they DO get platforms, and they are struggling heroically to try to create one in an environment that is at best platform-apathetic, and at worst often openly hostile to the idea.
I’m just frankly describing what developers.google.com looks like to an outsider. It looks childish. Where’s the Maps APIs in there for Christ’s sake? Some of the things in there are labs projects. And the APIs for everything I clicked were… they were paltry. They were obviously dog food. Not even good organic stuff. Compared to our internal APIs it’s all snouts and horse hooves.
And also don’t get me wrong about Google+. They’re far from the only offenders. This is a cultural thing. What we have going on internally is basically a war, with the underdog minority Platformers fighting a more or less losing battle against the Mighty Funded Confident Producters.
Google’s Not Arrogant But Foolish About Perfect Products
Yegge continues on, saying that Google really isn’t arrogant as some outsiders feel. Rather, it’s being foolish in assuming it knows how to build the perfect product, which causes the perceptions of arrogance. More important, it’s hindering Google’s success.
You know how people are always saying Google is arrogant? I’m a Googler, so I get as irritated as you do when people say that. We’re not arrogant, by and large. We’re, like, 99% Arrogance-Free. I did start this post — if you’ll reach back into distant memory — by describing Google as “doing everything right”. We do mean well, and for the most part when people say we’re arrogant it’s because we didn’t hire them, or they’re unhappy with our policies, or something along those lines. They’re inferring arrogance because it makes them feel better.
But when we take the stance that we know how to design the perfect product for everyone, and believe you me, I hear that a lot, then we’re being fools. You can attribute it to arrogance, or naivete, or whatever — it doesn’t matter in the end, because it’s foolishness. There IS no perfect product for everyone.
And so we wind up with a browser that doesn’t let you set the default font size. Talk about an affront to Accessibility. I mean, as I get older I’m actually going blind. For real. I’ve been nearsighted all my life, and once you hit 40 years old you stop being able to see things up close. So font selection becomes this life-or-death thing: it can lock you out of the product completely. But the Chrome team is flat-out arrogant here: they want to build a zero-configuration product, and they’re quite brazen about it, and Fuck You if you’re blind or deaf or whatever. Hit Ctrl-+ on every single page visit for the rest of your life.
“Google, The Product Company” Needs To Be “Google, The Platform Company”
Continuing on, Yegge draws the straight-comparison. Google has been building products. It need to be building platforms, and time is running out, in his view.
It’s not just them. It’s everyone. The problem is that we’re a Product Company through and through. We built a successful product with broad appeal — our search, that is — and that wild success has biased us.
Amazon was a product company too, so it took an out-of-band force to make Bezos understand the need for a platform. That force was their evaporating margins; he was cornered and had to think of a way out. But all he had was a bunch of engineers and all these computers… if only they could be monetized somehow… you can see how he arrived at AWS, in hindsight.
Microsoft started out as a platform, so they’ve just had lots of practice at it.
Facebook, though: they worry me. I’m no expert, but I’m pretty sure they started off as a Product and they rode that success pretty far. So I’m not sure exactly how they made the transition to a platform. It was a relatively long time ago, since they had to be a platform before (now very old) things like Mafia Wars could come along.
Maybe they just looked at us and asked: “How can we beat Google? What are they missing?”
The problem we face is pretty huge, because it will take a dramatic cultural change in order for us to start catching up. We don’t do internal service-oriented platforms, and we just as equally don’t do external ones. This means that the “not getting it” is endemic across the company: the PMs don’t get it, the engineers don’t get it, the product teams don’t get it, nobody gets it. Even if individuals do, even if YOU do, it doesn’t matter one bit unless we’re treating it as an all-hands-on-deck emergency. We can’t keep launching products and pretending we’ll turn them into magical beautiful extensible platforms later. We’ve tried that and it’s not working.
The Golden Rule of Platforms, “Eat Your Own Dogfood”, can be rephrased as “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.
I’m not saying it’s too late for us, but the longer we wait, the closer we get to being Too Late.
Aside from the inner look, one of the things I love about this memo is that it clearly points out how you can have internal divisions within a company that can be helped by external feedback.
The lack of a Google+ API at launch was strange to me. I called it out in an article and in posts on Google+ twice, here and here. On Google+, I’d get some people who acted as if any questioning of Google was somehow inappropriate, that we should all just sit back and wait for some master plan to unfold.
The reality is that within any organization, there are people who might be fighting battles that can be won if they can point to external critics calling for the same. One of the worst things I’ve encountered on Google+ as been a strong community culture that Google is somehow perfect and shouldn’t be questioned. Perhaps posts like Yegge’s memo will change some of this.
As for what happens internally, that remains to be seen. Whether he’s right on the platform stance sounds like it’s already been an on-going debate and one that’s likely to shift into high gear.