The one kind of open source, and the other kind

Enterprises can be skittish about open source because they don’t understand there are two types

Open source tends to get thrown into one generalized category. But not all open source software is created equal. There are, in fact, two distinctly different flavors and they behave quite differently. 

a) company first, project second

b) project first, company second

So which kind is superior? Of course, everyone loves the crowdsourcing buzz of the second model, but there are some important advantages to the first model.

In the "company first" model, Version 1.0 is pretty good -- after all, it was produced by a single software development organization, managed by a single set of professional dedicated engineering leaders. And then, it follows pretty closely the lifecycle of software development inside a company - regularly scheduled release dates, updates, fairly well-defined feature enhancements.

The big upside to a company-based project is that everything becomes more predictable. The initial quality, too, is often higher. Why? Development follows the cycle set by the company, with a tightly delineated process of updates, bug fixes and feature additions.

On the other side of the coin, however, these projects can sometimes be steered right onto the rocks. The reasons? Sometimes when a commercial company "goes open" just to reposition their technology, there's just not enough alchemy to turn it into gold. Open source companies still need to be well managed, and many are. And there's no denying that a community involved with a project can provide vital input about market needs -- input that any company ignores at its peril.

Now, the converse -- project first, company second -- like Lucene, Tomcat and Linux, on the other hand, is developed at a grassroots level. Initially you might have one single guru who introduces the original code, such as Linus Torvalds of the Linux projects. And even then, these projects -- especially the successful ones -- quickly grow a community following, and talented developers self-select for broadening the base of the software project. This is just what happened with Linux. A lot of open source projects that are part of The Apache Software Foundation also follow this curve, including Lucene, which our company works on.

To be perfectly candid, the initial quality of the software for "project first" open source is only fair and the rate of progress can be languid in the early stages. But when it reaches a tipping point, the project picks up steam; more people start using it, more contributors jump on board. The rate of innovation can be amazingly fast.

Consider Linux: early on, it was bashed on quality, security usability, being "only for techies," and held at arm's length by the corporate world in general. Yet today it has matured to the point there probably isn't a big corporation on the face of the earth that doesn't use Linux in one way or another. Similarly, Lucene reached a tipping point three or four years ago with the introduction of Solr as a full-featured enterprise search server based on Lucene. At that point, still as a community project, it became competitive technically with commercial alternatives. An open source project in this state feeds on itself. More people use it, more people want to enhance it and a juggernaut is created.

That said, such projects are beyond the absolute control of one company or individual. And this factor can introduce some interesting twists. There are plenty of individuals and groups pushing and pulling in different directions. You might end up with the features people wanted to write rather than those that are most needed. But such a state of affairs is usually short lived. When there is a dire need for a specific tool or enhancement, it attracts more committers who need that feature NOW for their own project. And the community gains valuable pieces of a complete solution as it grows. If circumstances are right, a company can enter the picture to help turn that value into accelerated market adoption.

I am not sure which type of Open Source Project is more appealing - "Project-first" with its blazing rate of innovation, no single point of failure but lack of clear direction or "Company-first" with a stable and somewhat predictable evolution, but very much dependant on one company/organization. Thoughts anyone?

Join the Network World communities on Facebook and LinkedIn to comment on topics that are top of mind.

Copyright © 2010 IDG Communications, Inc.