Microsoft and Open Source

There’s an interesting article in InformationWeek, entitled “Microsoft’s Bill Hilf Reveals Its Open Source Strategy”, interviewing Bill Hilf of Microsoft. He’s described as Microsoft’s “leading light on open source”. It’s mostly about Linux.

They say he’s involved with Microsoft’s strategy for “dealing with” Linux. That reminds me of John F. Kennedy telling the CIA that they should “deal with” Fidel Castro. And it reminds me of the way Microsoft decided to “deal with” Netscape, when they were competing with its browser – Microsoft’s strategy was to “suck the oxygen out of Netscape”. But that’s just free association on my part! More seriously:

Hilf says “When people buy commercial software, really what they’re buying is a guarantee. You’re buying a guarantee that what you have will perform, and has been tested and there’s someone you can call up, and if things go really bad someone’s liable if something doesn’t work.” Is that so? Look at the end-user license agreement for Windows Server, for example: “LIMITATION ON AND EXCLUSION OF DAMAGES. You can recover from Microsoft and its suppliers only direct damages up to the amount you paid for the software. You cannot recover any other damages, including consequential, lost profits, special, indirect or incidental damages.”

What does a “guarantee” mean? Surely it does not mean “certainty”: plenty of commercial software sometimes performs poorly or has bugs. Does it just mean “there’s someone you can call up?” But that’s true with actively-maintained open source software, too.

Prof. Gerry Sussman of MIT, for whom I have tremendous respect, once tasked me with putting together a plan for a company that would provide open source software that really did come with a legal guarantee. The idea is that the software would be quality-assured really, really well. The goal was to help reassure potential users of open source (or free) software. I wasn’t able to figure out how to make this work, and I’m not sure it would solve the problem it’s intended to solve, but maybe someone else co8uld do better than I could.

The real question is whether the particular open source software in question has higher quality/performance, and whether you get better response time for bugs, than some particular commercial alternative. I don’t think there’s any way to generalize for all open source software. A relatively small number of open source products have a lot of diligent maintainers, and even Q/A people, sometimes paid full-timers; a larger number are written by one person and often abandoned. There’s everything in between. Linux is the most extreme example I know of a very powerful open-source community.

Hilf goes on to say that their big customers have “chosen Linux or Apache or open source in general because of a few simple reasons: either price, or functionality, they want a more modular system or they want something that has a smaller footprint, there are certain needs that they have that are satisfied by that type of software.” Well, those are some pretty good reasons! I’ll add that when I was at BEA, our customers were also interested in the idea that if they needed fast turnaround on a bug, they could attempt to fix it themselves. And when I was at eXcelon, I found that some of the commercial software we bought had woefully inadequate documentation, and I was forced to decompile Java code in order to figure out how the product worked.

There’s another interesting article about Microsoft versus open source: an interview with the authors of a study called “Dynamic Mixed Duopoly: A Model Motivated by Linux vs. Windows”, which has just been accepted for publication in a special issue of “Management Science”.

It’s all based on a simplified formal economic model, assuming that the main benefit of Linux is the shorter development cycle, while Windows’s main advantage is its larger installed base. Under these assumptions, Linux never drives out Windows (they don’t explain why in the interview). But then if you assume governments and large corporations start using Linux because they can audit it for security, and that companies such as IBM support Linux specifically to diminish Microsoft’s dominance, then Windows could get driven out of the market. They add, “This may be one main reason why Microsoft has been providing chunks of Windows’ source code to governments.” The support of IBM et. al. is important because there are tedious portions of the code that would rarely be developed spontaneously by members of the Linux-developer community.

I don’t know how much we can make of a formal model at all, let alone one with such simplified assumptions, as having actual predictive value, but it’s the only thing I’ve seen like this so I thought it was worth looking at.

Their outlook on why developers are motivated to contribute to open source projects in the first place is: “First, some developers see software as scientific knowledge to be shared ‘like the sharing of recipes among cooks.’ In fact, some describe software developers more like artists seeking fun, challenge, and beauty in their work than like calculative, square-minded engineers. Second, some individuals find it fun to go against Microsoft. As the OSS/free software movement gains momentum and developers foresee that victory is within reach, they increase their effort to accomplish this. Third, because most OSS projects have a log file listing all contributors to the code, some developers find it desirable to participate in OSS projects to signal their ability and to enhance their chances of promotion and professional advancement. Finally, user-developers sometimes fix bugs that they find and then release the improved code so that everybody can benefit.” I’d add that some are paid to develop open source software.

Among their list of things Microsoft could do, the juicer ones are: Let governments access the source code. Give binary away free to organizations and individuals who are not willing to spend money on Windows but would be willing to use Linux (this is like what the airline industry calls “revenue management”: charge less to people who can afford less, using various tricky means to identify these people). Make it as hard as possible for Windows applications, and MS Office documents, to work on Linux. “Promote” Linux’s code forking. And finally. “Infuse fear, uncertainty, and doubt into the Linux user community. For this to work, the statements must be perceived as credible. Credibility requires some past FUD announcements to be realized.”

Can you imagine Microsoft infiltrating open source communities with agents provocateurs whose job would be to foment forks? The main deterrent I can see would be bad publicity if they were caught; but Microsoft doing questionable things is hardly news.

Meanwhile, Microsoft continues to maintain that Linux infringes on 235 of their patents, but apparently won’t say which ones! Could they be bluffing? (Citation: It reminds me of Joe McCarthy’s claim of having a list of 205 communists in the State Department. (It was a bogus claim, but the specific number gave it credibility.) Could Microsoft convince companies that they need to pay Microsort royalties on Linux? Apparently Wal-Mart has paid up. Would Microsoft tie up Red Hat in lawsuits, until they are overwhelmed by legal expenses? Would IBM come to their rescue?