Thursday, September 23, 2010

The Principles of Open Source Software

I believe that, over time, Jaspersoft’s distinction will be less about it being an open source software company and more about its abilities as a great business intelligence software company. I expect declining distinction for our open source-ness will partly occur because the success of open source software and the benefit it brings the community and customers become better accepted and understood each year (and, therefore, less unique). I also believe that the most valuable aspect of the open source model will long endure, way after the sheen fades from the download, forum post or roadmap voting. That is, the principles of open source software are its most distinguishing characteristic and will eventually reach not just all technology companies, but all other industries as well.

As I’ve described in many settings, the principles of open source software are Transparency, Participation and Collaboration. These principles stand, in many ways, in stark contrast to the aged, proprietary ways of doing business. I’ll briefly define and explain each of these three principles.

Transparency

Doing the right thing when no one is watching may be the best definition of integrity. You combine that with frankness and honesty and you have the first open source principle, Transparency. With open source software, anyone can watch. Jaspersoft software engineers and our community contributors know that every line of code they write will be made available for inspection and comment by a very large community. If they have any discomfort with transparency, they would choose a different vocation.

This transparency transcends software engineering, though, to all aspects of the business. In every way possible, an open source company should be transparent; that is, frank, honest and operating with integrity. If a mistake is made – admit it, describe how you’ll make it right and move on. If an important milestone is reached that deserves celebration – announce it, enjoy the moment of pride and move on. This is the obligation an open source company maintains with its customers and community. And, those using the open source projects/products must be equally transparent through their actions and deeds. For example, the community must adhere to the terms of the particular open source license, using the software only as those terms allow, reflecting their transparency. In short, transparency is about doing what you know is right. In a community, the effects of transparency are amplified.

Participation

Actively giving back in a very tangible way is the heart of participation. Making the open source projects, of which each community member is part, more successful and more capable should be the common goal. Giving back can mean many things, including and especially either committing time through code contributions (for those community members with the skill and expertise) or purchasing / licensing the software if the project is in any way commercial open source. Code contributions can include not just feature advancements, but language translations, bug fixes, and quality assurance testing assistance, among others.

Open source community distinction emerges because its members participate by using either their time (i.e., skill) or their money. Either is valuable and helps to make the open source project thrive. The only sin in open source is not participating. In other words, if a community member is using open source software and deriving real benefit from its existence, then participating by providing time or money should be seen as basic and reasonable reciprocity.

Collaboration

Collaboration is about collective engagement for the common good and is the fastest route to open source project success. If an open source project is a neighborhood, then collaboration is the barn raising. Distinguishing this from “participation”, collaboration is about helping others in the community because doing so advances the project and its usefulness for everyone.

My favorite example of collaboration is knowledge sharing through forums, blogs and idea exchanges (in some circles, called ideagoras). On JasperForge, Jaspersoft’s open source community web site, there are more than 160,000 registered members who have collectively offered nearly 80,000 forum entries across all the listed top-level projects. The variety of questions and issues being addressed by and for community members within the forums is staggering. And, the vibrancy that emerges through this exchange of skill is core to large-scale community success.

While forum activity remains brisk, I’m equally proud of our guided use of an idea exchange within JasperForge. Each top-level project includes a roadmap where community members can comment and vote on planned features. This not only allows many voices to be heard, but provides a valuable calibration for Jaspersoft and its community, ultimately yielding the most important product features and advancements in approximately the best priority order.

There are many more examples of collaboration in action, across JasperForge and other leading open source sites, but these are some of my favorites.

I talk about these three principles of open source regularly, and I’m fond of concluding that the real benefit of collaboration accrues to those who participate transparently. That’s just my clever way of mentioning all three the open source principles in one actionable sentence. What are your favorite examples of these open source principles in action? Your thoughts and comments are always welcome.

Brian Gentile

Chief Executive Officer

Jaspersoft