2009-09-13

The CodePlex Foundation; Why is Microsoft founding it?

The CodePlex Foundation was announced this week by Microsoft. Most reactions have been quite positive, but there has, of course, also been skepticism and concerns from Open Source advocates. The two main worries can be summarized as "the CodePlex Foundation is a ploy" (e.g. TechNews World) and "what's in it for them?" (e.g. Open Bytes).

I will try to explain why I think that the CodePlex Foundation is a good idea, and why I agreed to be an advisor for the Foundation.

N.B. All of the following is my own interpretation based on conversations with the people behind the Foundation. Any misinterpretations of issues and all speculations are my own.

It's important to keep a few salient points in mind as you think about Microsoft's possible motivations:
  • Microsoft goes to great lengths to satisfy the demands of their important customers.

  • Microsoft has many customers that are using both Microsoft products and Open Source software, and they (the customers) wants the open source product to work as seamlessly and reliable as possible with Microsoft products.

  • Microsoft is already contributing quite a lot of Open Source code into many projects, including the Linux kernel.

  • Being a big public company with a lot of lawyers creates a lot of bureaucracy and it becomes very hard for a developer in the company to participate in an Open Source project because of the many different contributor agreements / licenses / project policies that exits. (I can easily relate to this after seeing how hard it was to do release something as Open Source even at Sun).

I suspect many other software companies have similar issues.

Personally, I believe it was in order to solve the above that Microsoft created the CodePlex Foundation. By having a single independent entity, verified and approved by the Microsoft lawyers, to which to donate code, the whole process of being involved with Open Source projects becomes so much easier for Microsoft developers. CodePlex allows Microsoft developers to more easily participate in Open Source projects, without a lot of red tape. There are many developers at Microsoft that are very pro Open Source, and would like to participate more than they are able to at present. Note that since CodePlex supports all relevant Open Source licenses, there is nothing hindering contributions to CodePlex to find its way into projects elsewhere in the FOSS ecosystem from there.

But why should Microsoft be trusted to have good intentions with the CodePlex Foundation? Simply, I believe that it's in Microsoft's direct interest that the CodePlex foundations becomes a success. Of course, we all know that Microsoft will primarily ensure that the Open Source projects in which they participate will run better on Windows and with Microsoft products. But this doesn't change the fact that this is a still a great thing for Open Source software.

Of course, people will continue to worry about Microsoft's intents and maybe that is understandable. In my experience, Microsoft as a big company seems to be a "company divided," with some segments appearing to understand and embrace Open Source, and others acting against these understandings. (In fact, this is another thing I can relate to from my personal history.) But now we have an opportunity to see Microsoft at their best as regards Open Source and Free Software, and even help them out in the effort. This is, indeed, an unusual opportunity.

Clearly developers and users of software, be it Open Source or proprietary, benefit from Microsoft's benevolence toward and understanding of the Open Source ecosystem. Thus, it is my hope that Microsoft is being forthright about their intentions for the CodePlex Foundation, and can maintain their level of commitment in the years to come; even in times of difficulty.

Bear in mind, the CodePlex Foundation is an independent entity. If we succeed in launching it as such, and getting good Open Source people on the Board of Directors and in the Advisory board, it should become a worthwhile addition to the Open Source ecosystem regardless of what Microsoft is going to do. There is already a lot of vocal Open Source advocates involved in the Foundation, and if we think the CodePlex foundation starts to go astray, we will ensure it will be known.

It should be be noted that the Foundation was released in a "beta" state, allowing companies, partners, communities, and other interested parties to influence the Foundation in its early stages. I already have a concrete example that the Foundation is open to change and genuinely wants to do "the right thing" to make CodePlex work. The people from the Foundation board and advisory board had a phone meeting one day before the launch of the Foundation (my first contact with the Foundation) and some other advisors (myself included) were worried about some of the words in the original mission statement and some statements in the FAQ that could easily be misinterpreted. The Foundation board agreed to get changes done, even considering the time pressure they were under. This impressed me greatly.

There are still many issues to solve, and even more that can be improved over time. I want to be involved to ensure that the Foundation does it in a transparent and proper way, allowing it to work as smoothly as possible and for the benefit of the Open Source community. This is much easier to do from the inside. As I said, I feel that I was already listened to in reviewing the material related to the launch.

I also hope that the Foundation will begin to work to make life easier for Open Source developers and companies working in the Open Source space by providing easily replicable and reusable directions, guidelines, and standard contracts. All of this is still in an early stage and the future is wide open for what the CodePlex Foundation can and will do.

All in all, I think this is a major opportunity for the Open Source community and for Microsoft. I'll be working to ensure it works the way we all hope it will, and that it will benefit companies, developers and users alike.