If You Open Source It, They Will Come

Wed 10 Dec 2008 07:49 PM

The Cathedral and The Bazzar

I want to talk about open source and the community and how powerful they can be. One of the most famous examples of open source is the Linux operating system originally developed by Linus Torvald. This development was mentioned in a book that someone recently suggested to me. It is called The Cathedral and the Bazaar by Eric S Raymond, and it was actually published over 9 years ago, but it gives a lot of insight into not only the development of that time, but development today as well.

In the second chapter of his book, bearing the same name as the title of the book, Raymond talks about Cathedral development and Bazaar development. Cathedral development, referring to closed-source or restricted-source projects, is an idea that a piece of software must be painstakingly crafted, much like a cathedral: every brick perfectly placed, and only by people who totally understand the entire structure of the building.

Bazaar development, referring to open-source distributed projects like Linux, is much more like a bazaar (obviously). Anyone can set up there, bring their goods, and sell them. If their goods are quality people will buy them. You don't have to buy all the goods, you can pick and choose. The main point is there is less restrictions to get into a bazaar.

If you actually think about it, and Raymond mentions this in his book, who would have ever believed that this mass amount of disorganization could have ever worked. Hindsight is 20-20, but trying to think back to what Linus must have been thinking is astounding.

My Experiences With Open Source

As some people may be aware of, I started a project a couple months ago called django-schedule. When I started my development, it was like a cathedral. I spent a long time thinking out ways of how pieces of my code would interact, writing documentation, re-writing documentation, and even though the source was open, I still acted as a gatekeeper, scrutinizing every patch as if people who did not understand my complex system could not possible improve it.

During the beginning of November Yann Malet approached me with an idea of implementing recurring events. We disagreed a lot and discussed ideas and he submitted a pretty extensive rework of the project. I again scrutinized it and we had some more discussions. Eventually after much reworking of the code I re-released django-schedule with recurring events, and it was a great success, shortly after this I added Yann on as a contributor with commit access.

This was scary at the time. Some one who I barely knew, who I had only seen a small amount of code that he had written, would be editing my project. And you know what happened, Everything worked amazingly well. The code started to blossom as his areas of expertise complimented mine. The fear dissipated, and I realized that this wasn't my project, it was your project; better yet, it was our project.

Recently, Rock Howard had approached me with a fork of my project that had some bug fixes, better templating, and many other improvements. So I added him to the list of committers. Only, this time, it came with much less angst. Actually it came with relief because I had finally found some one who had a good amount of experience with writing templates.

The beauty with an open source project, is that it is improving everyday. And how much have I been working on it recently? The truth is not very much. I am finishing up college and have been very busy with that process, and when I am finished graduating I will continue to help with the project. But the beauty of it is that this project is still getting better, and I am not doing a thing. So thank you Yann and Rock, thank you Linus, thank you Raymond, and especially thank you everyone.