Thinking Outside the Outboxby Andy Oram
It's easy to feel jerked back and forth by arguments over the Microsoft anti-trust case. Microsoft backers say the company has been enormously innovative; detractors insist it's held back innovation. It took me a long time to realize that both sides are right. The key is in how Microsoft sees the world and people's relationships in it.
Projecting the corporate persona
Microsoft is an astoundingly successful corporate culture: firmly goal-directed from the top down, adept at fostering creativity within the goals set by management, and intensely collaborative on the team level. (Some of these judgments I derive from a February 2000 Atlantic Monthly article written by leading journalist James Fallows, who spent six months at Microsoft. But my own intuition confirms what he reports. I think those traits are necessary for the kind of successful product development coming out of the company.)
Just as programmers tend to make tools that are comfortable for other programmers, some companies aim products at customers like them. And it happened that Microsoft struck it rich catering to companies with similar cultures and needs. That's not necessarily bad; I think O'Reilly & Associates is also a company that delivers to like-minded customers. But where there's essentially a monopoly, such an orientation becomes a liability for all.
Microsoft and the DOM
DOM, the Document Object Model, is a standard API that rigorously classifies and organizes a Web page according to its structural elements (tags, attributes, entities, and text strings). XML, the Extensible Markup Language, provides tags, attributes, and entities appropriate to the content of the Web page. So you can write a relatively straightforward program to reliably do anything you want with documents, so long as applications like Microsoft Office offer the DOM API and accept XML as a format. And if Microsoft restrains itself from breaking the standard, the documents can be freely exchanged with applications on other systems. For instance, the KDE free software desktop provides a DOM Level 1 interface, which they plan to upgrade to DOM Level 2, and uses XML as the storage format in its suite. Applications in the GNOME desktop also recognize XML documents and can parse them using DOM or SAX, a more light-weight API.
I've tried to summarize the Microsoft corporate personality. But as far as its products go, they took a long time to develop a personality. There wasn't much one could say about MS-DOS and early versions of Windows. Then the company pushed into the market for office software and found its true destiny. However, that destiny is shaped by the environment into which Microsoft insinuated itself. To wax a bit cynical, it sees its role as providing offices with electronically enhanced typewriters and adding machines, not to mention the inboxes and outboxes where bureaucrats of the world have always spent their hours shuffling papers.
I believe that the Microsoft world view dictates the kinds of innovation it puts forward as well as the types it shuts off. It hasn't thought beyond the Outbox. This theory has helped a lot of things make more sense to me, ranging from the success of Microsoft Office to the success of the love bug virus.
Innovation and its undertow
Don't waste time telling me that Microsoft has no ideas of its own and just takes them from other people; that kind of criticism doesn't hold up. Find me a single product feature in any working software package that can't be traced back to some obscure postdoc, who probably published the original idea in an IEEE journal read by 20 people. Microsoft didn't invent the idea of providing a well-defined structure for every document, for instance (among other places, that's in SGML, the progenitor of XML). But it still constitutes innovation for Microsoft to declare that every one of its office products would be based on a documented, exposed structure that could be represented in XML. Better yet, Microsoft component libraries and tools allow people to manipulate that structure through programs in a variety of languages.
Because of the standardization of structure, not only can programmers customize Word, Excel, and other Office software to the needs of their office workers, but output from one tool can be embedded in or fed to another tool seamlessly. Such flexibility may yet come to benefit us all, if the company doesn't muck up the basic DOM and XML DOM APIs with propriety extensions as they are so famous for doing.
I honor the advances that Microsoft has managed to bring into being, but what about the advances they've missed? What lurks in the blind spots at the retinal edges of Bill Gates's steady vision?
The problem can be summarized as this: Microsoft views end-user collaboration as part of a uniform, department-wide or company-wide system serving technically unsophisticated staff with no independent needs of their own, where the distribution of software is controlled by a benevolent system administrator who makes sure nothing buggy is sent out. (A strange vision for a company that reputedly broke the "glass house" mainframe model of computing.)