Ballmer is leaving Microsoft, and there are lots of developers complaining about how "stack ranking," the practice of ranking employees on a rigid curve, "killed Microsoft." Now, let's first observe that Microsoft is nowhere near dead; it has transformed itself into an enterprise company and has an immense revenue stream, though it no longer commands the market leader position in all aspects of computing. This attempt to pin the blame for Microsoft's loss of leadership on its necessarily-flawed-like-every-other employee recognition process is silly -- stack ranking is the least of Microsoft's problems.
Microsoft is not the first empire to falter. A pretty big empire before it had a "stack ranking" system that was far more unjust and far more damaging to morale. I am referring, of course, to The Roman Empire, SPQR, and their practice of punishing underperforming legions by "decimating" them. Many people have heard of the term, but few know that the word comes from the Roman practice of lining up an underperforming legion and literally killing off every tenth soldier by having his 9 other colleagues beat him to death. Emperor Ballmerius was nice enough, at least, to rank his soldiers before getting rid of the lower few percent. Imagine what a random culling does for morale. Yet few historians in their right minds would point to decimation as a factor in the fall of the Roman Empire.
For no empire falls because of any single reason. The decline of the Byzantine Empire took approximately half a standard solar millenium, the Ottoman Empire 400 standard solar years, and Microsoft's took 15 Internet years, equivalent to 150 solar years or so. A lot happens in those kinds of time frames. There are so many disparate reasons for any fall that the ones people pick out simply betray their internal anxieties and prejudices.
Ask anyone about the Byzantines, and they'll tell you all about intrigue and internal wrangling among competing royal contenders. These guys gave us the distributed systems term "Byzantine" for failures so complex that they defy any kind of reasoning. For instance, one of the Cantacuzens wishing to ascend to the Byzantian throne sold off a critical castle in Europe, and not just to any buyer, but to the very hordes pounding at the gates, trying to establish a foothold on the European side. Yet even this kind of treason is merely a small tactical blunder in the grand scheme of things; Byzantium was doomed to fall one way or another.
Similarly, many old-school conservative male historians have claimed that the fall of the Ottoman Empire was precipitated by the "increased involvement of the harem women in imperial politics." So many, in fact, that I would have lost track of them, except I kept their names in a folder called "sexist idiots to never read again." What one picks out from a list of many dozen options simply shows what story they want to tell, what their own internal world revolves around.
In reality, all of these empires lost their dominance due to fundamental shifts: changes in trade routes, shifts in alliances that barred their access to lucrative colonies, or global shifts in people's behavior that turned once dominant powers into bit players. Empires fail to follow through these shifts because they lack leaders with vision and upper-level managers who can execute.
Let's catalog some fundamental shifts that left Microsoft behind.
Microsoft missed the Internet. When Gates published his book "The Road Ahead," the first web browser had been out for a few years and everyone could see that it was pointing to the next big thing on the road ahead. Yet the book made no mention of the Internet and paid lip service to wide-area cross-domain network connectivity; these ideas had to be retrofitted into the second edition after the fact.
Microsoft missed control of the server side. Their ecosystem was built on platform tie-down on the client-side with the help of klunky APIs. Throughout the 90's, every thinking programmer forced to develop code for Windows knew that there was something inherently wrong with passing 9 additional NULL arguments to every call, or looking things up in always out-of-date knowledgebase articles that somehow went on for pages without providing a single insight. The resulting systems were neither fast to run nor easy to manage. People do not address total cost of ownership issues with incremental changes -- they fix them by switching to a new platform wholesale. And on the server side, people switched to free and open source Unix, which provided clean APIs designed by and for discerning programmers.
Microsoft missed virtualization. Despite having purchased half a dozen virtualization startups, Microsoft was not able to establish a credible presence in this space, and allowed VMWare and others to creep in under their OS. In retrospect, this blunder was of little consequence, as few people use Windows in settings where virtualization is required, but it was a chink in the armor.
Microsoft missed ad-supported web services. Not "Web Services," a strange buzzword dressed in angle brackets and levels of indirection that I never was able to understand, but regular old services on the web. They copied the portal craze with MSN, but MSN failed like all other portals because no one wants a horoscope or news about Hollywood nobodies when they're trying to get to information. Hotmail was quickly outclassed by Gmail, which offered 10X more storage and higher limits across the board. Perhaps Microsoft lacked the cash to buy some extra hard drives, but their 10Q filings show that what they lacked was vision and the will to fight -- after all, Hotmail wasn't really integrated with Windows, and therefore an orphan. My Microsoft friends tell me that Bing is ok, except the results look terrible every time I use it by accident, and there is a real trust issue that makes discerning users not want to use it. They let their lead in messaging services get usurped by socially-connected messaging a la Twitter. Buying Skype and weakening its security properties was an awful move, one that presaged the Snowden revelations that came soon afterwards, and in any case, all of this happened when Internet telephony was causing the cost of phone calls to go to $0. They had no play in the Internet video space, unless we count Live, a service that fell far short of its name. And most importantly, Microsoft could not monetize these services the way Google could, due to its market position and existing shrink-wrapped-software-oriented business model. Perhaps ad-supported business models were not compatible with Microsoft's DNA, perhaps customers would be put off by Microsoft's history of playing hardball, but perhaps it would have been possible to spin off a unit that was independent and distinct, and not hampered by the baggage associated with the Microsoft name.
Microsoft missed the cloud. And they did this on the analytics side despite having invented Dryad/LINQ, a much more elegant model compared to that of Hadoop. Canceling Dryad/LINQ for Hadoop was a decision to trail the existing market, instead of advancing it with a technically superior system. On the infrastructure side, I don't quite see why Microsoft, or any other American company, should succeed in the long run in a game of providing a standard API with reduced personnel costs.
Microsoft missed social. And good thing, too, as I can't imagine having to maintain one more "friends list." But they could have had their own play in this space. From what I see every time I click on some LinkedIn or Foursquare email, social networks get built through very aggressive friend linking practices in the post-Orkut, post-MySpace, post-Facebook world. Microsoft had the right hooks in place to aggressively mine such connections. Back during the reign of Gatesius and before the Buzz lawsuit, they certainly would not have blinked before mining people's Outlook contacts to build their own network.
Microsoft missed mobile. There was ferocious competition within Microsoft to determine the operating system for mobile systems. The initial winner, Windows CE, was chosen because it was essentially Windows in miniature. Yet carrying the klunky Windows experience onto mobile devices was destined not to be a winning move, as evidenced by how Blackberry, then the iPhone, then Android managed to eat into this space. Surface is an excellent product, except it just doesn't have the developer ecosystem to prop it up, and power laws imply that the third player on the scene gets less than 1/8th of the action.
Let's be quite clear: Microsoft has had some amazing successes as well. Windows was a huge success story up through XP. Office is still the main market leader and still far ahead of all web-based competition. Kinect is a huge success of technical innovation. Surface is an extremely well-engineered device. .NET and C# are clear winners, showing how "embrace and extend" can be done elegantly, without having to corrupt and spoil that which was being embraced. And there is no way anyone can do justice to the amount of groundbreaking work that has come out of Microsoft Research.
It was only a decade ago that people were trying to emulate every aspect of life at Microsoft, including the dynamic between program managers, developers, and STEs/SDETs (a social arrangement that I always found unbalanced and questionable), their release cycles and nomenclature (whose implementation often leads to an early clamp down on critical fixes, and leads to software that is broken until Service Pack 2), and of course, the dreaded stack ranking. One could implement stack ranking in a way that does not distribute low scores across all groups uniformly, but instead recognizes top performing groups. Even though I never grade on a curve, I have taken countless courses that were curved, and never once felt the urge to sabotage my fellow students nor felt that the resulting environment was toxic. In fact, Microsoft prospered quite well with stack ranking firmly in place. Many other companies, including Google, also stack-rank. The Microsoft CEO could stack-rank, inverse-stack-rank, randomly-decimate, or personally tuck every developer to sleep each night muttering sweet songs about monopolies, and it wouldn't change much about the failures I listed above. There will undoubtedly be many current and and ex-Microsofties who will loudly complain about stack ranking, but pinning the entire blame on this one aspect of employee recognition just doesn't make sense. There were fundamental failures of vision and failures to execute, starting at the top and reaching down, not the other way around. There will be many new battles to come, and many new domains to fight over. Some fresh blood is desperately called for, and Ballmer's step down is just the beginning of a much needed transformation.