A couple of weeks ago at the Codeapalooza event in Chicago I spent some time in and out of the Open Spaces area. I think that it is really cool that open spaces has even made its way into traditional track based events. Next time you are at an event that has an open spaces area, give it a try, it is a nice break from the traditional sessions and you meet some very cool people there; not that there are not cool people in the sessions, but those are very eyes forward and you may be sitting next to a real cool person and not know it…
One of the topics that kept coming up was work on open source projects. I think it was Aaron Erickson that mentioned that if money was no object, that he would still work in technology, but would spend his time contributing to open source projects. I got to wondering if anyone has cataloged the reasons why people like open source. I searched and searched, but I did not really see the type of list that I was looking for (although Bob Sutor’s list is close), so I thought I would take a crack at making one myself. This list is by no means complete (I am sure that I have missed some reasons).
Also I realize that this subject can be very touchy to some people and I know there have to be some people reading this post who are rolling their eyes at the fact that I am a Microsoft employee and I am writing about open source. There is no hidden agenda that I am trying to impart in this message; I am just collecting the thoughts and observations that I have seen about open source over the years. I have used open source in the past and continue to do so right now – the Blog Engine that is running this site is dasBlog, which is an open source project.
If you think I have things wrong, I would like to hear from you. Either post a comment on this article or contact me.
People like the hard dollar cost
I know there is great debate about the fact that “free software” should mean certain freedoms and not the actual cost of the software. I will set that aside for now and assert that a lot of people like the fact that many open source projects do not cost them hard dollars up front. It is especially appealing to people who are boot-strapping a start-up company and have to watch every dollar. In addition to the startups, I know that many corporate development teams also look at Open source developer tools for the same reason. If you have 300 developers working in an organization arming them each with a $500 piece of software would cost $150,000 – a figure that could push it into a capital purchase depending on the account rules that you follow.
As an editorial note: If you like an open source project, consider donating to it. Donating can be thorough a cash donation, or it could be a contribution of something even more valuable, your time. You don’t have to write code on the project to contribute; you can test the application, answer forum questions, write or proofread documentation (or any of 101 other things that need to be done on a software project).
People like the comfort of having the source code available
What is the first question that people ask when you give them a class library for them to use in their code? ‘Can I have the source code?’ is the question that I hear most often (followed shortly by ‘is the source code in VB or C#”?). People like the utility of using code that has already been written, but there is a natural curiosity to see how it is implemented and a natural distrust if they cannot see how it is implemented. They want to read the code and learn for themselves what you did to implement the solution. There is also a natural fear that if something goes wrong and they don’t have the source code, they will not be able to fix the problem.
When Scott Guthrie announced that Microsoft was releasing the source code to .NET Framework Libraries this is the open source desire that Microsoft was trying to address. The announcement did not change the cost of the framework (which is no cost – as long as you license the operating system), nor did it give the users the right to modify the framework or to redistribute it in any way. It did give the developer the access to the source code to debug problems that they might encounter. It was a big step forward for developer productivity.
People want to extend the software
Generally with Open Source licenses you have the right to extend that software (make changes, add functionality, etc). Some of the licenses require you to release your modified version of the source code if you distribute it and some do not. I would say it is not the great majority of people, but there are a number of people who are interested in “standing on the shoulders of giants” by building on the work already done by open source projects. Examples of this are everywhere:
- Own a TiVo? It is a customized version of Linux (note: they have run into legal problems in the past with the distribution of their modifications – there is even a Word for it – Tivoization).
- Own a hardware router? Probably running a version of Linux under the covers.
- Run Firefox? It uses the Mozilla web browser code that was originally the Netscape code based released into Open Source.
These examples are not just people who have used open source (there are numerous examples of that). These are people that used an open source project as a platform to build something else upon.
People like the open source licenses compared to traditional licenses
There are lots of open source licenses; the OSI keeps a list of the open source licenses that met certain criteria: http://www.opensource.org/licenses/alphabetical. A couple of the names of the licenses might surprise you: Microsoft, IBM, Intel and Apple all have licenses that are open source according to the OSI criteria. There is great variety to the licenses: some are short and some are quite long, some are easy to read and some have lots of legalese. Because of the great variety of licenses, it is important that you read and understand it before you adopt it (or before you incorporate it into your own project).
I must admit that passion for the license is the one thing that I don’t understand. Several months ago I got into a heated discussion with someone about how the Apache license was not “open source” enough, because it did not contain some of the language that the GPL did. I was in the interesting position of defending the Apache license. We agreed to quit talking about it.
People like the sense of community
What brought me to writing this article was the comments that I heard in the Open Space area and it took me a while to “get” that when people where talking about contributions to open source projects that it transcended the items that I have listed before this. Traditional commercial software companies (like Microsoft) try very hard to listen to their customers and deliver improvements that people are asking for in the product. This happens way more than you think and it took me working for “the empire” for two years to fully realize how much we do listen. They also take direct feedback about what is broken in the product, especially during the Beta cycles (have you ever checked out connect?). But open source allows people to contribute directly to the effort. Don’t like that a bug has been around for 2 versions? Then fix it. Want a new feature, implement it.
This direct connection with the effort creates a sense of community (granted, not all communities are harmonious) that you don’t get out of just using commercial software. Building and being a part of something is special. I think that is why you see so many developer and designer communities, but you don’t see a lot of user groups around applications (I love going to Web414 and the .NET User Group, but you won’t see me at an outlook user group).