No one would have believed me if I had said five years ago that Microsoft would have a page on its Web site called "Open Source at Microsoft" with the following remarkably sane and reasonable statement on the subject:
" Microsoft is focused on helping customers and partners succeed in a heterogeneous technology world. This starts with participating and contributing to a broad range of choices for developing and deploying software, including open source approaches and applications. From thousands of lines of code and scripts on MSDN and TechNet, to open source applications like IronPython, ASP.NET AJAX, SharePoint Learning Kit, and WiX on CodePlex and SourceForge, Microsoft is continually growing the number of products released with open source access. "
That's right: Microsoft has released not one but several pieces of code as open source. Moreover, it's submitting some of its home-grown licences to the Open Source Initiative for approval. So what is going on here?
In part, I think that Microsoft's own analysis of its motives is true: we do live in a heterogeneous world of technology, and the creation of Microsoft's open source pages and projects reflects a long-overdue reflection of this fact. It is also testimony to the continuing success of free software. Initially Microsoft obviously hoped it would prove a fashion that would eventually fade way, but as its own FAQ states:
"Open source is neither an industry fad, nor a magic bullet."
Another major factor is that Microsoft is clearly keen to try out new development methodologies in the light of the growing failure of its traditional approaches to deliver products anywhere near to their original launch dates (Vista, anyone?). In order to do that, it needs to drop the rather crass Manichean view of "closed source good, open source bad", for something a little more nuanced.
Now, as the opening statement on the Open Source page states, the official line is that there are "a broad range of choices for developing and deploying software, including open source approaches and applications". This obviously allows Microsoft itself to adopt open source methodologies without appearing hypocritical and ridiculous.
But I think there is another aspect to Microsoft's latest moves that is more worrying. The clue is to be found in the company's submission of its licences to the OSI for approval. Again, this might seem a tremendous victory for the free software world, since it sees Microsoft apparently bending its knee before an open source institution. But its action needs to be seen in the wider context of a new-found enthusiasm for open standards.
It looks increasingly likely that Microsoft's OOXML file format will become an ISO standard alongside the OpenDocument Format. As others are tracking in detail, the way in which this is happening is unsatisfactory, to say the least. The end-result will be two directly competing standards in the area of office file formats. This in itself is unhelpful, since the whole idea of standardisation is have one standard, not lots of them. But it's worse than that. Microsoft's OOXML is nominally open, as standards should be, but in practice its 6000+ pages of documentation mean that nobody except Microsoft will be implementing this standard, which is largely a re-definition of a closed standard as open, without any change of substance.
This, I think, goes to the heart of Microsoft's open source strategy. As well as adopting those aspects of an alternative development model that it finds useful, Microsoft is aiming to blunt the undeniable power of openness by hollowing it out. If OOXML is an open standard, and some of its own software licences become OSI-approved, Microsoft will be able to claim that it, too, is an open standard, open source company. For many busy managers, subject to all kinds of demands – including increasing pressure to "go open source" - the difference between Microsoft's open source and real open source won't matter, in the same way that the difference between Microsoft's open file formats and those of the OpenDocument Format won't really matter. In terms of keeping people happy, what matters for many is the label – the appearance of going open – and Microsoft's moves aim to provide just that.
In many ways this new approach is exactly the reverse of that espoused in the famous first Halloween Document. There, the idea was to "de-commoditise" open protocols by adding proprietary elements. Today, the technique is to pseudo-commoditise proprietary standards by getting them defined as open.
Despite this essentially hostile intent, I believe (and have done for a while) that the power of open source will eventually win out over all of Microsoft's remaining fears and concerns, and that the company will embrace real open source fully for all of its products (at least where it is able to do so for legal reasons). It's just a question of time.