Recently, I wrote a review of the note-taking application Tomboy. Though I find Tomboy exceptionally useful, I had a minor issue with the inability to create new notebooks from within a note. Within hours of the review appearing on Linux.com, Boyd Timothy, one of the app's developers mentioned in the article's comments that my idea had merit and said he would add the feature to an upcoming build. True to his word, he did. This is a shining example of one of the most valued yet sometimes overlooked features of open source software: it really is for the people, by the people.
To get a better understanding of why I'm so impressed by the responsiveness of open source developers, consider the user's point of view. Say I decide one day that I want to index my entire collection of CDs. I tell my friend Jack and he decides to do the same thing. Since I'm using Linux, I download CDcollect and get to work. Jack, on the other hand, doesn't use Linux and coughs up $19.95 for similar commercial software that will run on his computer. The next day we meet for lunch and discuss how great it would be if we could search for music by track length, but unfortunately neither of our applications has that feature. I go home, email the project's developer with the suggestion, and receive a reply the next day saying he'll add that to the list of enhancements in the next version, due out in a couple weeks. Jack emails tech support at the company where he purchased his software to request the feature in a future upgrade, but they can only help troubleshoot installation issues.
Of course, this is an oversimplification. Naturally developers can't include every feature request they receive, but it's nice to know they have the option; it's nice to know I'll at least be heard. Knowing developers are producing software they're passionate about and have a vested interest in is a compelling reason for me to support open source applications. I'd rather donate to a project when I know the people behind it are doing what they love, not simply showing up at a cubicle farm to mindlessly crank out code 40 hours a week. It's also a wonderful feeling to know that almost every open source application I choose has built-in tech support from other users, so I never have to worry that I'll be left stranded midway through an upgrade or technical glitch.
The ability to take ownership of the apps you use on a regular basis is a fantastic benefit of open source software. I'm certainly no developer, but the option to help squash bugs, write documentation, or create artwork is a practical way for me to give back to the community that listens to me. When many people work on projects in several different capacities, developers are freed up to do what they do best -- add features and enhance functionality -- while some of the less glamorous, but no less important, work can be handled by those with less technical skills.
So, what's in it for the people who develop these apps? Why would anyone want to pour their heart (and spare time) into creating a piece of software -- usually for free -- only to have users expect more and better features just for the asking? I guess it's because they see their contributions as part of an ongoing give-and-take relationship with users. I have the sense that developers appreciate having extra eyeballs on their projects to look for bugs and issues, and are happy tweak their apps for users in return. The more responsive a developer is, the more willing users are to embrace the project, thus the more contributors a project has, and the better it becomes. It's an arrangement where everybody wins; a technological circle of life, if you will.
Knowing that your feature request has the chance to become a reality is heady stuff for software users who are accustomed to being at the mercy of behemoth companies that churn out applications created by faceless programmers. The next time someone you know suggests open source software won't meet their needs because it doesn't do a specific task, tell them sometimes all they have to do is ask.