Undoubtedly I’ll be trolled by people who will give me Google’s stock price, point out how many billions more it makes than my company or something else as trite. So if you are a Google fanboy, go ahead and skip to the end - no need to read the rest - and begin your flame.
As I write this it will have been exactly 1 year to the day (Oct 12, 2011) since Google engineer Steve Yegge explained what Google is habitually doing wrong. In that time, I’m afraid little progress has been made.
However, first let me admit my bias. I love the Google, I live the Google and I fear the Google. I have an Android phone. If someone asks me a question and I don’t know the answer then I “Google it.” If someone asks me a question that they should know then I tell them to “Google it”. I Bing nothing (except for maps because theirs was cheaper the last time my company did anything geo). I can’t imagine Binging anything because, first of all, Bing is a stupid word and I don’t want to even say it. Second, it’s like shopping for a new toaster if your old one already works and you’re happy with your toast, who even would notice if a better model came out, if it is indeed better?
I even Google+ and prefer it to Facebook because neither my mother or mother-in-law are on there and so they cannot gang up on me. Secondly, there are a number of people I never cared to stay in touch with and still don’t care what they are doing to the point of actually reading their posts, but saying “no” to their friend request would be “unsouthern-like” and so I can’t bring myself to do it... I haven’t done a formal study yet, but those people combined with neckbeards and cat ladies are 90% of the people on Facebook and they aren’t on Google+ yet.
“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.”
However, as a developer, I hate Google. Their concept of open source is “shut up and we’ll deliver unto you what we see fit and if you don’t like it you’re stupid”. A few years ago, the mobile division of my firm even went as far as to develop the geocoding part of an Android and iPhone app using Bing Maps. Strategically, a company with “Open” in it's name isn’t really well aligned to do substantial amounts of business with Microsoft (and this wasn’t substantial). If you read the fine print for the Google Maps API, it costs more and it won’t give you a user-friendly latitude and longitude in the UI, which is a big obstacle to testing.
The other thing is that if I have questions, Microsoft always calls me back promptly, and even if it is free, they are helpful. I can’t claim their support people are awesome, and I’m probably on a list somewhere at Microsoft as “cranky old man” for telling the occasional support person the “Microsoft helicopter joke” that I first heard in the 80s while comparing their answer to it.
However, this is mounds better than Google. Google is basically self-serve. If I don’t understand some long winded pricing statement, getting a human to explain it is not going to be easy. You can do it, but Microsoft will usually call you back first day and either explain it or schedule a call with someone who can. Frankly, as a developer, at least on a tactical basis, I like doing business with Microsoft. Google I could take or leave.
“ It's called Accessibility, and it's the most important thing in the computing world. The. Most. Important. Thing.”
Yeggie would call some of this a failure of accessibility. I think Google thinks they’re fixing that by making all of their websites look like the much fatter and uglier GUI they stuck on gmail. Google knows best and no matter how much everyone writes about how much they hate it, opts of of it until they won’t let you opt out anymore, they still do these UI turdizations. Yet at the same time, Chrome still has no way to save the zoom (when Yeggie first wrote that I didn’t care but in the last year I’ve suddenly became old), and Google Apps actually tells you to go freak yourself if you attempt to zoom more than 1-2 levels. In other words you need to be that same emaciated hipster in your 20s that Apple features in its advertising to be the target for Google Apps UI. Don’t get me wrong, this is one of maybe 2 negative things I have to say about Google Apps.
“Any teams that have successfully internalized the notion that they should be externally programmable platforms from the ground up are underdogs -- Maps and Docs come to mind, and I know GMail is making overtures in that direction.”
The other bad thing about Google Apps is that it is pretty much a UI only. The only API it has is for storage. Google is basically sitting on the end of all overpriced and over engineered CMS systems like Interwoven Teamsite but hasn’t hit the button. Imagine if there were a service API that walked the paragraphs or headings and allowed you to pull out text for instance. Since Google thinks they’re 10x smarter than me (and you), why haven’t they done this? It isn’t hard to do really (yes I have done it before). It would make Google Apps infinitely more useful. Whether it be mashups or whatever.
“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.”
Google does seem to have taken Yegge’s criticism of Google+ seriously and the APIs have been improved, but this seems to be a tactical thing, not the overall wakeup call I’d hoped they’d have. It even looks like they’re trying to improve developers.google.com; however, they’ve done it precisely wrong. I want to use the Google Maps API, I don’t really want to understand the political and business group structure of Google. If you attempt to navigate the mess that is the https://developers.google.com/maps/ site you will navigate a spiraling web of circular logic.
It looks like simultaneously someone has tried to add a friendly Vorlon interface (“Who are you”) as well as a Shadows interface (“What do you want?”) to the developers site, but this is a light drizzling over the disastrous side effects that Conway’s Law can have on a website.
I feel I’ve talked sufficiently about AppEngine for the year, and it is clear that this is some crazy scheme to get me stuck on one of the platforms Google is building and make it so I can never leave. However, let’s talk about the other side, Android. Despite some of the nonsense written, Android proves that Google CAN do platforms when they put their mind to it. They just can’t put together a coherent overarching platform.
WhyThe answer is simple. Ask any developer who is to blame (and they are usually right), management is to blame. Not to say that there aren’t huge disadvantages but there is something to be said for ‘80s Steve Jobs giving out “80 hours and loving it” shirts to his cult-like development group. There is something to be said for Jeff Bezos or any other mush-master whipping their organizations until they march to a single vision.
That is the thing really, how do you motivate people to care about the things that really matter overall when you have them organized into project or product groups? How do you do that in a tight labor market where you can’t be as nasty as you want to be? How do you escape having your organization structure exposed on your website in a way that annoys your customers?
Luckily, I have to deal with this problem in an organization an infinitesimal of the size of google. One way I’ve handled this is through the compensation model. While any book on modern management thinking will tell you how wrong this is, busy people cut corners everywhere but where their base needs are concerned. One base need is money. With engineers it doesn’t always have to be their money sometimes the budget for their group suffices.
I learned this from watching JBoss emerge. When Marc Fleury was more directly in charge and revenue was job #1 (read: before VC money), JBoss’s compensation model was in part variable and based on how much consulting, training or support you did. If you did a whole lot of it, you could make well over $200k per year. If you did none of it, you’d be better getting a job somewhere else. A lot of consulting got done, not much work on JBoss 4 got done. As priorities changed so did the compensation structure. It changed at one point to where unless consulting was made directly part of your job, you had to be harangued into doing it. At some point this got a little too complicated for the people administering it and they gave everyone the bonus all of the time. I remember Wix had to beg people to do services after that. Not that some people aren’t internally motivated, it’s just in unpredictable ways. I’ve always liked the big picture of a whole system working together (as well as debugging deep dark minutia like virtual machine tuning) so I tended to volunteer...but not to the same point where my base needs motivated me.
Another way is social engineering. Who reports to whom and where are those people physically located. At no place was this more obvious for me than when I worked at Cisco from the RTP office. I worked in two different groups and both times most of the team was in California. It was always clear that no matter what your title was, a Californian trumped a Carolinian so long as your team lead or manager was in California. If there were two teams and they had competing interests or had to work together, the team with a manager in California always won. Believe it or not there was nothing sinister about it, the Californian always knew the higher up or could communicate directly with the manager more efficiently and persuasively than the guy over a squawky IP phone. Groups where everyone telecommuted never worked as efficiently as ones where people came in to the office to work together (I know this is every developer’s dream but it is really hard to have a design session over a conference call where a baby is screaming in the background). Virtual teams with no real authority nearly never produced anything fundamentally useful.