Back when Sam Ramji announced he was leaving his position at Microsoft as director of their open source operations, I shot a couple of questions his way. He was on vacation at the time, but now he's back and has a lot to talk about -- about Microsoft, about open source, and about the two in combination.
InformationWeek: You've done a lot of work at Microsoft to make it more open source friendly from the inside. Is the establishment of CodePlex something you worked directly to achieve, or a by-product of things that happened there?
Sam Ramji: This just would not have been an option for Microsoft a few years back. But the thinking has shifted since then and now folks at Microsoft understand that open source and Microsoft developer communities can grow together for the benefit of customers. A group of us worked together directly to make the CodePlex Foundation happen, including Bill Staples and Mark Stone, who are both now active with the Foundation. The engineering, legal, and business groups all teamed up.
That shift in thinking has taken some time to permeate. But steadily, over the past few years, Microsoft has increased its open source participation. As part of that ongoing open source participation, we are seeing communities flourish and solve real-world interoperability challenges. For example, at OSCON 2009 in July, Microsoft announced that it had contributed 20,000 lines of device driver code to the Linux kernel, which will enhance the performance of Linux on Hyper-V; we've gotten hundreds of patches from the kernel community which we test on an ongoing basis.
We have been looking at the idea of initiating a new open source foundation at various moments over the last few years as open source has increasingly become part of the company's DNA. For example, in Microsoft's acquisition of Powerset, the company gained two committers to Apache Hadoop/HBase; we had a ton of work to do in order to enable them to continue to contribute to HBase as corporate developers for Microsoft. We believe that now is the time to take what we've learned about corporate contribution to open source projects, and we think the CodePlex Foundation is positioned to do just that.
InformationWeek: Apart from CodePlex, how do you feel Microsoft could work better to make people believe that they take open source seriously?
Sam Ramji: What I find is that every time I or my team members speak with people about Microsoft's work on PHP, Linux virtualization for Hyper-V, HBase contributions, Haskell, MPICH2, and other projects, they are a) surprised, b) intrigued, and c) convinced that Microsoft is serious about open source. The major obstacle is reaching all of the people who don't know about these recent developments.
The other thing is that as various Microsoft business groups expand their work with open source communities - like System Center with Open Pegasus, HPC Server and MPICH2, Visual Studio and JQuery, Windows Server and Samba - the information about those interactions will percolate out into the broader IT community.
The Server and Tools business group is working with various communities such as the PHP Community (to improve the PHP on Windows performance, stability and feature-set), the Samba Community (to ensure interoperable implementations of the CIFS, SMB, SMB2 protocols) and the Apache Community (participating in projects such the Qpid project and the Hadoop project).
There are also other examples across the company where product teams are working with an open source community, and open source code, as part of their product strategies. For example, the work the Microsoft HPC teams did with the Argonne National Lab (ANL) to source their MPICH2 implementation. The MS HPC engineering team makes Windows specific improvements and modifications and contributes this code back to ANL who then incorporate it as part of their builds that are then released to the community.
Another example of this can be seen in System Center, which in the upcoming release we will see capacity for managing Linux and Unix servers. The System Center product team did analysis and realized that OpenPegasus (an open-source services broker) was well adopted and structured in the open-source community. The team joined the OpenPegasus committee and chose to implement OpenPegasus as connectors/adapters and plans to contribute back.
Key areas that I think are important for the future are giving grants and assistance to independent open source projects, and embracing the open source development that's being done specifically on Microsoft platforms like open source .NET projects (nUnit, NHibernate, Subsonic, and many others). Programs like the Web Gallery are great examples of how we can help open source projects be distributed and adopted easily by a range of users.
We've made a ton of progress but there's still more work to be done to build trust and respect for Microsoft in the open source community. Microsoft, even after I leave, is committed to continuing that work and participation. Ultimately it's a question of sustained involvement and contribution that will shift peoples' perceptions over time - there's no silver bullet.
InformationWeek: Do you think it's possible that Microsoft will begin to introduce new product lines that are entirely open source? (As opposed to open sourcing existing products.)
Sam Ramji: I think that's unlikely in the near future. We have been applying an "open edge" strategy to enhance the value of our software products by enabling a very wide range of technologies to run on them, and to expand the range of capability that they have - for example, Microsoft released a set of open source plug-ins for Office that enable mathematical and chemical notation in academic documents. That is not a foreshadowing of delivering Microsoft Office as open source; it's a recognition that as a platform company our products are more valuable if they are easy to extend. We historically used this strategy with API documentation and SDKs, and now we are starting to see that an open source application or plug-in is a more specific, more modern offering that complements an SDK and makes it much easier for developers to extend the platform.
As we move to a world of cloud service, purely open source SDKs, connectors and frameworks could start to make sense; you've seen some of this with the PHP and Java connectors to Azure computing and storage. Underneath a cloud service, the technology used to implement it is not exposed to the user or developer, so whether or not it's open source is immaterial to the overall offering.
InformationWeek: What's next for you personally?
Sam Ramji: Later this month, I'll be joining a cloud computing startup in Silicon Valley. You'll hear more specifics on that in the days to come.
For now, I am just glad that my family was able to move back to California. Seattle is a great city with wonderful people, but the Bay Area owns my heart.
InformationWeek has published an in-depth report on Sun's future under Oracle. Download the report here (registration required).