As senior director of platform technology at Microsoft, Sam Ramji is positioned uniquely at the nexus of proprietary and open source development models. Here's how Ramji sees open source and proprietary development models evolving.
What do you see as the most pressing challenges and opportunities for open source given the current tech climate?
In terms of challenges, I think you have to start with the fact that most software today -- whether measured by usage or by lines of code -- is not open source, and is sold or written by commercial organizations using a proprietary model. For established companies, the shift to open source is not just about understanding what the strategy should be -- it's about "programmatizing" open source in an organization when the primary revenue model is around traditional.
It's also important to distinguish between commercial and community software. The maturity models for assessing community software are not well-established yet, which results in some confusion about what projects are ready to adopt at what level of importance or mission-criticality. This is an unsolved issue and represents an opportunity for the next wave of software companies or consulting organizations.
Finally, the word "open source" has become used to describe development models, licensing models, community models, distribution models, sales and marketing models, philosophical and ethical models, and is now being applied to politics. Clearly there are powerful core concepts of transparency and sharing at the heart of this. It's starting to blur the original ideas articulated by Eric Raymond, Danese Cooper, et al, which are about the source code itself and the developers who share it. The risk is that the term itself loses meaning over time, which is unfortunate as it's a powerful idea.
Where do you see open source heading in the next five years, especially with regard to development, community, and market opportunities?
As a development model, I think that five years from now open source will be like "object orientation" or "extreme programming" -- a once controversial and transformative idea that has found its way into how most people build software. I hope that we'll find ways to consistently reward developers of open source with the fame or revenue that help them continue their work. At the heart of development is a love for problem solving and helping users -- and this focus is often at odds with figuring out business plans and asking for what you deserve. Ideally we'd have a small number of well-known, federated marketplaces for open source applications that can connect these dots worldwide. Information technology has transformed the US economy, and I'm personally grateful that it's the industry I've landed in. I'd like to see a marketplace environment enable developers in emerging markets to transform their lives by making their innovation broadly available and appropriately compensated.
As for market opportunities, the strength of open source development -- diversity -- is also a challenge when it comes to skills availability, consistency of user experience, and manageability. I would expect to see some standards emerge in these areas, or else to see new offerings that focus on integrating existing open source technologies in these three dimensions.
Does widespread adoption and commercialization of open source software create new challenges or pressures for open source projects?
There are at least two dimensions to this. One is simply growth of features and the resulting increase in the code base. If you look at the trajectory of the Linux kernel, as the amount of code increases, so does the complexity. With the added complexity come more defects. This isn't anything new, nor is it a knock against open source software. All software evolves over time in this way. And it's not a question of which model has more or fewer bugs. We have to make critical and strategic decisions about how to evolve the best models to maintain quality software.