It is no secret that Microsoft has helped get DotNetNuke where we are today. It is even mentioned in the first chapter of the Professional DotNetNuke Asp.Net Portals and Professional DotNetNuke 4 books. In his latest blog, Phil Haack asks "Should Microsoft Financially Support Open Source?". Phil's post is a follow up to the post at Dave's Tech Shop asking the same question.
I believe that open source on the .Net platform must live and die by the same rules as on the LAMP and Java platform. Even though we are talking about Microsoft, I believe the same rules apply to any corporate entity which ultimately must answer to shareholders. Microsoft cannot and I think should not become a corporate sugar daddy running around and artificially prolonging longevity of a project simply because it is Open Source. Each project should succeed or fail based on the project's merits and the leadership skills of the development team. I do however believe that there is a time and a place for corporate support.
In his 2004 article, "Seven open source business strategies for competitive advantage", John Koenig maps out business strategies that have been successful in the open source world. In the discussion on The Patronage Strategy, John lays out the reasons he believes most companies become patrons of open source efforts. It is not for some altruistic reason, but because it makes business sense. Each corporate patron needs to determine if it is in their best interest, and then act accordingly. Sometimes, that will be in the form of technical assistance, in other cases it will be through direct financial support.
Ultimately, though, I think that finding a patron falls on the shoulders of the open source project's management team. Just like a company seeking investors, an open source project seeking patron needs to develop a strategy for getting the support it requires to succeed. Occasionally a company will step forward and offer to support a project without any prompting, however, an open source project relies on that to occur at their own peril. Early in the life of the project, the founders need to be thinking about how they will support the overhead costs associated with running the project. What will happen if the project grows rapidly? Does the project have relationships or a plan to build the relationships needed to sustain the project, even as the costs of maintaining the project increases?
I believe it is in Microsoft's best interests to identify a handful of open source projects to support, especially where those projects fill a void in the Microsoft product line, or where the project promotes the adoption of Microsoft products. However, I think the project bears even more responsibility to identify how they can benefit a potential corporate sponsor, and then actively pitch the idea to the corporation whose sponsorship is being sought. The project should care more about developing and growing this relationship than the corporate sponsor, since the project could well die without the support, while the corporation only looses one of many potential opportunities.
As I look back, I see the NDoc project, not as a major failing of Microsoft, but as a failing of the project team. If they wanted the project to succeed, then it was incumbent on them to identify the means to make that happen. If corporate sponsorship did not occur, then they should have sought other avenues of getting the financial support they needed. Yes, I think it was in Microsoft's interests for NDoc to succeed, but if the management team of the project did not see the importance of putting a support framework in place for their project, then they were probably doomed anyway, with or without Microsoft's support.
Finally, I want to address the issue of using the donation method for supporting a project. I have seen it tried by many different projects, but I have yet to find a single open source project of any substantial size where user donations were ever sufficient to fully support the project. I could be wrong, and such a project may indeed exist, but I have yet to find that mythical project.
In the end, if an open source project wants to succeed and get the financial or technical support it needs, then it is up to the project management team to take the project seriously enough to put a plan in place to get the needed support. They need to treat the project like any other business and determine how the project is going to survive given their current and future anticipated support needs.