Why Open Source Works
I'm sure the topic of this post has been written a thousand times, but following up on a recent conversation I had with some friends I thought I'd throw my two cents in to the internets.
I've been developing Drupal websites for over a year now, and can really appreciate the amount of work that has gone into this project. After initially playing with the software, doing some basic work, to building sites professionally, to building highly customized configurations and themes with a combination of contributed modules, and getting slightly involved in bug reporting and issue tracking, I've seen first hand the benefits of developing open source software.
The key benefit being that once an open source project gets some traction (meaning, that a large enough amount of people begin to utilize it in a production environment), there is then enough eyeballs on the project to iron out the bumps in it. The motivation? Because the developer wants or needs the feature to work because they use it.
For a project like Drupal, which is a content management system, or CMS, it makes sense that an open source solution would click with a large community. After all, like the song suggests, "if you've got a website, you need a system to manage your content". So for web developers, this is a common need, to have a system that helps manage the content of a website, and why bother reinventing the wheel every time you build a new site? Why not work with a foundation that is being improved upon by thousands of people, and constantly being tested for issues such as security?
The reason software such as Drupal works so well as an open source project is because as a developer thinks of a new feature and begins to work on it, someone else who needs that feature can grab a development snapshot of it and test it out, submit feature requests, point out bugs and more, and as more people get involved, the feature (be it a module, theme or other) gets refined by more then one mind.
Sure there are certain drawbacks to an open source project, often times money is an issue. Generally, contributions that are made are done so for free, so the developers of the software aren't being paid to focus on programming it, but are relying on payment from building things with the software. There are of course exceptions to this. Other drawbacks usually include lacking, or out of date documentation, and in some cases, too many extra features or plugins, making it difficult to find the right one for the task at hand. In my opinion, these drawbacks are outweighed by the benefits, which of course include the cost (FREE), the ability to dig around and contribute to the project, and in general, the forward thinking mindset of the community.
Not to say that open source software is the only way to go, but for certain applications, it makes more sense then going with a proprietary solution. Open source projects develop features based on the need of their user-base, and development versions of features are available immediately for testing, while proprietary systems can't always anticipate what users are going to need in the next rev, and sometimes certain features don't make the cut occasionally leaving niche groups of users in the dust.
Of course there are benefits to proprietary software as well, many of which are invaluable to users, especially business customers. These include: well documented manuals and books, paid customer support, and in some cases, certification. And of course, from the developers perspective, being paid for developing the software, which might allow for more time and effort spent on it.
While open source solutions can work extremely well, efficiently, and elegantly, it is hard to shake the fact that depending on your pronunciation of the term, it can come out sounding like open sores, which, it can sometimes have :-)
Photo by: Schoschie










