The Decline and Fall of Microsoft? Part 4.

Contrary to what many believe, innovation has been central to the success of Microsoft. The reason why some people fail to see the innovative side of the company is because they are looking in the wrong places. Although there has been some innovation in the visible side of software, the innovation at the API level has been much more significant.

Before leaving HP in 1986, I’d spent my last year there working on something called “New Wave.” This project was trying to figure out a software architecture that would support many useful concepts: embedding of documents inside other documents, providing “links” between documents. allowing “drag & drop” between documents. If these features sound familiar, they should. They were enabled by Microsoft’s “OLE” (Object Linking and Embedding) in the late 80s/early 90s. The concept wasn’t invented by Microsoft (nor HP for that matter) but the software mechanism to make the features available and to work in an efficient process was. OLE later morphed into “COM” – a technology that did much to enable software “building blocks”.

Does anyone remember CORBA? Can anyone name 3 major applications that supported it? Probably not. While Microsoft was developing OLE and COM, the Object Management Group (composed of HP, IBM, Sun, Apple and others) was trying to do the same in an multi-vendor, cooperative, fashion. While Microsoft solved the problem exclusively for Windows on Intel architectures and only when using C++ or Visual BASIC, The OMG was trying to solve the problem in an OS-idependent, architecture-independent, and language-independent fashion.

We used to say at Microsoft, “if one person can do a job in a year, two people can do the job in two years.” Imagine the efficiency of 11 companies trying to design CORBA by committee.

OLE/COM is but one example of Microsoft innovations at the API level. The Windows GDI API unified display and printing code (in a way Postscript/News once sought to do). The DirectX API allowed game developers to efficiently access hardware while exploiting graphics and sound accelerators provided via Windows drivers. ODBC, ODB and ADO (and now LinQ) have provided progressively easier ways of accessing data in relational databases.

As a long-time software developer (pre Altair!), I can say that C# and .NET, coupled with Visual Studio, have made programming incredibly productive and even “fun” again.

Beyond these are things like the Microsoft Office API (including the functionality available to built-in macros), the various specialized APIs (driver layer, speech, NLP, etc.) and now Silverlight 2.0 which promises to finally make writing Web 2.0 applications a less-than wretched experience.

Alas, these API innovations are no longer enough to guarantee Microsoft’s success.

Windows has 90%+ of the desktop computer market and 65% or so of the server market. Microsoft office has 90%+ of the office software suite. 

Improving the Windows or Office APIs does not help Microsoft make any more money. Operating systems and productivity applications pretty much do what people need them to do. Purchase decisions are beginning to be made based on criteria other than technical prowess.

To continue to succeed, Microsoft needs to grow into new markets. Here are a few businesses that Microsoft is trying to develop:

  • Mobile-phone and PDA software (Windows Mobile)
  • Web-based search (advertising)
  • Game consoles (XBox) 
  • Media players (Zune)
  • Enterprise line-of-business applications (ERP, CRM, etc.)

In which of these markets has Microsoft achieved at least 50% market share? None! 30%? None! The XBox is most successful at just under 30% market share (sales, not units). Windows mobile is at about 6% (below the iPhone!). MSN? 10%. Zune? Even my Microsoft friends laugh when I tell them I bought a Zune.

That the XBox is the most successful business is consistent with my focus on APIs; game developers are still very much interested in platform features, tools and functionality.

Microsoft started as a developer tools company (Microsoft BASIC). Some prodding by IBM got it into the OS and, thus, the API business. As it grew its Applications business, it never lost its core focus. I heard Bill Gates once comment on how “all great applications have been programmable” and I think he was stating, not only a truism, but also Microsoft’s subconcious mantra.

As long as tools and APIs were driving product functionality and purchasing decisions, Microsoft would see tremendous success. Now that this is no longer the case, Microsoft will begin to suffer.