5 Things Microsoft Can Do to Encourage Open Source on Windows & .NET
Tuesday, July 28, 2009 at 3:48PM |
Kevin Rohrbaugh Yesterday, Microsoft’s Phil Haack (@haacked) and Scott Hanselman (@shanselman) tweeted about a new job posting for an open-source application developer position with the company. This set off some discussions on Twitter that could be summed up as the company focusing too much on competition instead of value.
I agree to some extent, but it’s important to point out that the job listing is a positive development and that MSFT’s continued interest in investing in open-source on its platform is a good thing.
With that said, here are five things Microsoft could do to encourage more OSS development in the .NET and Windows worlds:
- Hire OSS project leads to work on their current projects: Instead of hiring somebody to work on OSS projects that MSFT defines, the company could find existing OSS projects that align with MSFT’s strategic needs and hire them to continue working on their projects (without license modifications). This is the approach that IBM and Sun are notorious for, and which has yielded some pretty impressive results (jRuby, CouchDB, among many others). Admittedly, MSFT has hired some of the better known .NET OSS developers, but never to work solely on their existing projects. They’ve been using OSS for talent identification, but not legitimizing the projects being developed.
Why it’s good for MSFT: It brings validity to the .NET OSS ecosystem, instead of Redmond always dictating what’s important. If the MSFT developer community is always a slave to MSFT, innovation on their platform is limited by the amount of research dollars they have. If MSFT wants to change the “strict father” mentality within their developer base (which carries the long-term risk of marginalization), elevating community projects through direct hire sponsorship is one way to do it. Otherwise, MSFT risks their development community becoming the programmer equivalent of late-90’s AOL users. - Truly open-source some Microsoft frameworks: The company has been making some encouraging steps in this area, including pseudo open-sourcing ASP.NET MVC. However, they remain extremely guarded on accepting patches, let alone commits, from the public. High-level frameworks such as ASP.NET MVC could make a relatively low-risk proving ground for direct community involvement in MSFT efforts. Since they’ll still run the projects, the company will maintain control over the overall direction, just as Linus and DHH still have a lot of influence on Linux and Rails, respectively. Other options are to open-source certain technologies that the company may be deciding to sunset, so the community can extend them should they so choose (the jury’s still out, but LINQ to SQL may soon fall into this category).
Why it’s good for MSFT: Companies spend millions of dollars trying to divine what customers want, yet within the software world accepting patches and commits is a pretty clear way to see what customers are in need of. Commits and optimizations based on actual, real-world usage of their frameworks in dozens of configurations and business verticals is likely to lead to greater customer understanding, yielding better feature development and possibly new products or services. - Adopt OSS solutions as part of Microsoft platforms: Last year’s adoption of jQuery as a supported, central part of MSFT’s web development framework was a major change in the company’s stance on open-source. More such decisions would continue to bolster the community, such as adopting existing Inversion of Control or Isolation (Mock) frameworks instead of duplicating community projects as was done with MSTest. Admittedly, product integration sometimes make this required, but it also undermines OSS work within the developer community, so it shouldn’t be the status quo.
Why it’s good for MSFT: The company can adopt existing technology and work with the OSS team to influence features & capabilities (just like with the VSDOC files for jQuery). This allows MSFT’s stack to stay competitive without the company having to fund 100% of the development. - Extend Microsoft platforms to embrace popular OSS frameworks: An example would be to put IIS team resources toward building an IIS equivalent of Phusion Passenger for hosting Ruby on Rails applications within IIS and open-sourcing the project. MSFT has been doing this with PHP, but it’s largely driven by the product team and not the community. Granted, this kind of work may just never take off because parts of the community view extending OSS to work on proprietary platforms such as Windows as heresy, but at least MSFT would be attempting to meet customer demand through community collaboration.
Why it’s good for MSFT: Many shops are heavily invested in Microsoft’s server stack, with a lot of expertise built up around it. Due to this, such shops may want to use certain OSS frameworks but still host them in Windows. By starting an OSS project to support such endeavors, MSFT can ensure their platform stays relevant without always having to invest their own resources. This is precisely the tact Sun has been adopting with the JVM, given the Java language’s relative stagnation. - Keep chipping away at the old perceptions internally: As an outsider, it’s easy to point out all the possible improvements that could be made here, but I’m sure the most difficult change necessary is to alter the internal perception of OSS. As with any large company, MSFT is likely to have an entrenched culture whose collective perceptions inform decisions up and down the management chain. The key is to drive realization that, as Tim O’Reilly argues, long-term success is about creating more value than you capture and a successful OSS strategy at MSFT is likely to exhibit such traits.
Why it’s good for MSFT: The software industry continues to change, as must MSFT to stay competitive. Selectively open-sourcing and adopting existing OSS solutions allows the company to better employ its limited (albeit vast) resources while still meeting innovation- and customer demands.
Here’s hoping that the software that comes out of the job listing will be truly open-source and that it will be yet another step toward a more open and transparent Microsoft.
Ramblings 
Reader Comments