James Dixon’s Blog

James Dixon’s thoughts on commercial open source and open source business intelligence

3. The Principles of Open Source

with 2 comments

In order to understand commercial open source software companies there certain facts about open source that need to be understood.

Free as in ‘Freedom’ Not ‘Zero Cost’

Open source is not free. In 1998 the term ‘open source’ was coined to because many people assume any use of the word ‘free’ to mean ‘zero cost’ and so assume ‘free’ software the same as freeware. In the context of open source the freeness relates to the freedoms that are provided by the licenses.

If you consider the barriers to adoption of open source listed above it becomes clear that the notion of ‘free stuff’ is false. It is true that an organization could use open source software and support itself by hiring technical staff with the necessary skills to:

  • Evaluate and select the most suitable open source software or software distribution.
  • Integrate and embed the open source software into internal systems.
  • Fix any critical defects that are found.
  • Decide which patches and releases to migrate to and ensure migrations between versions are free from problems.
  • Participate in the communities to ensure the direction that the software is taking suits the organization.
  • Train any users or new technical staff.

Organizations have the freedom to do all these things but they should not consider fulfilling these needs to be of zero cost.

If you accept that open source software is not a zero cost solution you must then accept that these costs can occur in the form of time (internal man hours) or money (given to some external organization) or both.

In addition to the costs above there are also risks to be managed. In fact if you look at the commonly listed barriers to the adoption of open source software you will find that most of them are related to some kind of risk. It is difficult for many organizations to manage all of these risks themselves: the number of people and the range of skills required to do so is prohibitive. For small organizations or low-risk projects these risks can be tolerated but for larger projects risk management is a significant issue.

This leads to the basic rational of commercial open source software: to provide organizations with an alternative to ‘going it alone’ with open source.

Principle of ‘Openness’

Accepting feedback through a web page and providing mechanisms for people to report defects is one thing. Allowing everyone else to see that feedback and all those defects is another, much more uncomfortable, step. Allowing everyone to see the source code so they can review it and try it is also an act of faith. Providing a public forum where people can openly criticize and contribute to the design and implementation of the software is another act of faith. These are difficult behaviors for a proprietary organization to accept but open source projects rely on them. If the project administrators do not provide mechanisms for people to communicate openly amongst themselves there can be no community.

The availability of the design documents and source code enables the community to provide peer reviews and to use the software for their purposes and provide feedback on the quality.

Principle of ‘Transparency’

Transparency is the ability of the community to see what’s going on. This involves:

  • A published road map so they know where the administrators plan to take the project.
  • A public defect tracking system so they can report and review defects.
  • Published design documentation.
  • Communication about schedules and hurdles.

Without transparency it is hard to grow a community.

Transparency and openness are not the same thing. A glass door is transparent but whether it is open or not is a different matter. Transparency is the ability to witness the inner workings, openness is the letting outsiders ‘in’ so they can participate.

Principle of ‘Early and Often’

This is the philosophy of making information available in its earliest drafts and updating it often. This includes, but is not limited to, the source code of the software. Zipped archives of the source code are available for every open source project. Many projects go further and have a public repository where the current code is always available. As the developers change the source code and check it in, it is available to anyone who wants to review it or use it.

The principles of open source compound and combine together. Each one is a leap of faith.

In order to be successful all the principles must be observed: merely letting someone view source code, or giving someone a free evaluation license does not have the same disruptive power of the open source model. The tendency of the open source model to resolve design defects early in the software development cycle only occurs if all three principles are applied.

Re-Use and Modularity

Engineers in general are obsessed with efficiency and architectural elegance. Software engineers are no exception and this is evident in the open source movement in different ways:

  • Re-use: One of the most inefficient and inelegant aspects of proprietary software development is that every software company has to develop (pay in time) or license (pay in money) everything that goes into the software. In the proprietary model there is little re-use of common or commodity components. A comparable analogy would be if every house builder manufactured their own screws, bolts, and cables. Inopen source software the incentive is to re-use rather than re-create, because it more efficient.
  • Simplicity: In order to be ‘re-useful’ you have to design simple software. You have to write it to do a specific thing very well and avoid the tendency to add things that are peripheral. A web server should be a web
    server, it should not also be an email server, and a file server, and a fax server. As a really bad example you can buy an external battery for an iPhone that is also a laser pointer and a LED flashlight.

Expectation of ‘Community’

Every generation grows up with a new set of expectations. For example my parents had the expectation that they needed to buy encyclopedias if they wanted access to reference knowledge at home. I grew up with the expectation that I could get Encarta(tm) on a CD and later that I could search the Internet. My son is growing up in the Web 2.0 era where he can participate by submitting Wikipedia entries.

When it comes to open source the web site, source code, roadmap, defect tracking system, and forums are the ‘project’ and the community participates in the project. The fact that the source code and roadmap are available is a result of ‘openness’. The fact that the defect tracking system and forums are available is a result of transparency. The fact that the design and initial code is available is a result of ‘early and often’. It is these principles and the results of using them that ultimately attract and retain the community.

The community is a byproduct of the project. The project is a byproduct of the open source principles.

Participants in open source have an expectation of a community and the development model and commercial open source software company relies on it.

Next: The Wild Hive Model for Open Source Projects

Written by James

May 29, 2009 at 6:51 pm

2 Responses

Subscribe to comments with RSS.

  1. Hi , when browsing at your site i see some sort of weird codes all over the page, in case it’s important I just thought I’d let you know it says this with all sorts of other stuff after it: “Warning: Cannot modify header information – headers already sent in wp-settings.php line 12”

    Joanna Mori

    February 17, 2010 at 8:08 pm

  2. Interesting, (at least the bits I could make out easily). I suffer from color blindness (tritanopia to be exact). I mostly use Konqueror browser (unsure if that matters), and much of this web page is a little difficult for me to read. I know it is my problem to deal with, in truth, however it would be nice if you could consider color blind visitors whilst doing the next site re-working.

    colin brakewell

    February 22, 2010 at 2:39 pm


Leave a comment