I had the pleasure of chatting over coffee last Friday with rhomobile CEO Adam Blum. We're doing a panel discussion on Monday 3/23 at the SDForum Open Source Colloquium on the question "Is there still open in open source". We spent some time catching up on rhomobile and their mobile development platform, which by the way, if you're looking for a cross platform (iPhone, Android, Symbian and Windows Mobile) mobile application rapid development tool you should check them out. Anyway, during our chat we discussed the concept of open and what does a project really need to be called "open". Adam has a blog post on this subject that he calls "The 7 Habits of Highly Effective Open Source Products". Our conversation and his post spurred me to think more on this topic and as I've mulled it over I think there are some interesting points and issues that are extremely relevant.
First though, I should say that I think there's a point to this discussion that is not some academic exercise but is in fact fundamental to the reasons open source is such a powerful development model. Open source, at its core, is about the power of a community, not about business models. It's one of the best examples of the power of web 2.0, as the concepts are applied to SW development a self governing community evolves and that community is essential for the development of high quality OS projects. Concepts like transparency, community status and democratization of development drive quality and innovation. At it's heart OSS is high quality because the developers strive for "status" in the community by the high quality and innovative nature of their work. They are motivated by status not money and are passionate about the work they do, after all they mostly do this in their "spare" time. OK, granted some community members make a living offering consulting and custom development on top of the OSS project, but again, that's a strength that many proprietary SW companies struggle with and spend mountains of money to develop, a knowledgeable developer / ISV ecosystem.
So what characteristics should a truly "open" project exhibit? Going back to Adam's 7 Habits I see a couple of threads that jump out at me as key to calling a product "open". I think this can be boiled down to two things: 1. transparency and 2. encouraging community. I suppose you could argue that transparency does encourage community but go with my train of thought for a minute. Project transparency, IMHO, is simply public viewing / reviewing of the source, public source checkins (realtime in a "publicly" available repository) and a completely public bug resolution process from reporting through fix. Transparency is the enabler for the continued existence and health of the community, it's what facilitates quality effort. A project must also encourage and enable its community. This is done through activities like creating a public forum where the community can congregate and share and through making the project available in a way where anyone can contribute. I agree with Adam that community is encouraged and empowered by having publicly available and community modifiable documentation (specifications and user) on a Wiki. Most companies provide documentation but don't provide it in a model where the community can contribute directly. The last issue is the license. By having a license that conforms to the accepted publicly available standards (GNU GPL) the community does not have to struggle to understand project specific terms. The community can simply conform to the terms that are commonly understood in the broader OS community. Why have a company specific and non-standard license agreement? You make it harder for the community and in the end what do you gain?
So for me it boils down to transparency with the source code AND the development support processes; and providing an environment that empowers and enables the community.


