Product or Platform?
Posted by Nick Sieger Sat, 20 Oct 2007 03:34:45 GMT
This week, I attended the Sun 2007 Open Source Summit on the Sun Microsystems Santa Clara campus. This was a conference put on by Sun for Sun employees. I happened to be in the bay area, so I took it in.
Open Source at Sun
First off, let me say that it was comforting being in the company of 200+ colleagues, most of them smarter and more experienced in open source than me. These are the vanguard of the company, the people spreading the message inside and outside Sun about our decision to open source all of our software, and the ramifications of that. The message is in good hands, but the only downside is what a tiny fraction of the overall company this group represents. So for those of you observing Sun representatives seemingly going in many different directions, behaving subtly differently from project to project and community to community, we want to hear your feedback. The fact that we’re meeting this week can certainly be an indicator that we’re still figuring out how to do open source effectively, to retrofit the message into the company culture, to build and contribute to communities and to raise all boats.
Some of the topics discussed include:
- Community building (around Sun-originated projects)
- Community participation (in projects external to Sun)
- Open (source) testing, documentation, and standardization
- Marketing and legal: podcasting, public relations, trademarking issue
- Going open source on a previously closed-source product, dealing with code encumbrances, etc.
Product or Platform?
Among other topics discussed is the notion of a product versus a platform, and what it means for an open source project and its surrounding community. Dalibor Topic brought up this point in a panel session discussing the perception of Sun from the outside that included several participants external to Sun.
Without providing definitions of those two, take a moment and think of a few thriving open source communities. Would you think of these projects as products or platforms? In general, does one kind of project foster community better than the other?
Dalibor pointed out that projects that form platforms tend to be more fertile ground for community-building. Why is this? After discussing this with him, a few attributes came to mind.
Variety. Platforms are likely to be more extensible and offer more modularity and variety. As a consequence, developers have more possibilities to “scratch their itch”.
Loosely connected communities. Platforms are more likely to be broken into component projects, and each component offers a more intimate community setting. The smaller size is an incentive to developers to invest time, as the reward of gaining a reputation as a community leader becomes easier to visualize and obtain. Thriving communities have a face, and that face should be a real person. The chance to be the face of a project and gain the prestige that comes with it is a big incentive for open source developers.
Low barrier to entry. The sub-projects’ codebases are not gargantuan or monolithic. Developers can bootstrap more quickly and get to the stage where they’re contributing much faster. As a counter-example, consider three of Sun’s largest open source projects: OpenJDK, OpenSolaris, and OpenOffice. Checking out source from source control, building and running these codebases is not a 10 minute proposition, and that presents a big barrier to entry.
Balance of contributions. If the barrier to entry is lower, the likelihood of attracting contributors is higher. Projects are more likely to be seen as worthwhile if contributions are not lopsided and they are not controlled by a single entity.
OpenJDK: Pushing Toward “Platform”
Dalibor stated in the panel session that he thought Sun had done an admirable thing by releasing OpenJDK under the GPL, and that everything had been executed well up to this point. OpenJDK is on the cusp of being a platform with a lot of energy and mojo, but there are still some barriers that need to be knocked down to allow the community to grow and prosper. Encumbrances and proprietary TCK licenses are one item, but the “product”-ness of the JDK are another. If OpenJDK can become a “platform” in the ways that Dalibor and I talked about, it will go a long way towards ensuring the long-term viability of the project, the community, and even the ubiquity of Java itself as a technology.
Footnote: Thanks to Simon Phipps and his team for leading an engaging, thought-provoking discussion. Looking forward to next time!