- Over the weekend I had the...um, good fortune (?) to see this supposedly motivational poster:
While the sentiment is trite and cheesy, it's still somewhat pertinent to the world of .Net, especially when it comes to Open Source Software.
While I've been a software developer for a long time, until recently my activities were limited to work for hire. I'd used a couple of open source libraries here and there, and usually have a selection of open source applications and utilities installed; but I'd never taken the step of contributing code to an open source project of any kind, and I certainly didn't have the guts to start one from scratch.
That all changed earlier this year when Daniel Crenna (aka Dimebrain) asked me to join the TweetSharp project as a contributor while we worked on a (closed source) Twitter client built using the library. What has followed has been an experience that has been rewarding, eye opening, and at times frustrating.
The rewarding part has been a more visible profile within my community (appearances on popular podcasts for example) and the sincere "thank-you" and and virtual high-fives received from the members of the community who appreciate the work, use it, and recognize that a lot of sweat and effort goes into keeping it up to date and functional for the people who depend on it. These people are truly appreciative, and occasionally will even contribute a patch or at very least take the time to submit a detailed bug report when they have a problem.
The frustrating part comes as a result of those people who I classify as "the takers". The takers don't overlap at all with the grateful people I mentioned above. The takers either don't understand or don't care that most open source projects don't have a corporate sponsor or benevolent millionaire funding the development so most or all of the development happens as a result of developers donating their spare time. The takers aren't anonymous downloaders who use the project quietly and don't say anything one way or the other, oh no. They actively flaunt their taker status by posting, tweeting, or emailing us stuff like:
hey, your library needs DOCUMENTATION, where is it??
I tried using your library but it crashed, HELP!?, or most commonly:
I need to do this and that with your library, can you write the code for me?
As I understand it, this is much more common in the .Net OSS realm than in other realms where OSS is more the standard than the exception. I realize that as .Net devs we are used to a flood of new (commercial) tech coming out of Redmond and from various vendors selling add-ons and libraries and that there is a certain sense of entitlement to support and documentation when money is involved so the shift to an open-source mentality of cooperation and appreciation may be hard for some people who don't take the time to think about it.
Realistically, there will probably always be takers, I know this. But for the rest of us, who (like I used to), quietly use open source stuff without contributing back, I challenge you to find a project that interests you, take a look at the code and find a way to contribute something. You don't even need prior permission, just find a bug that needs fixing, fix it, create a diff file and attach it to the bug report. Chances are it will be greatly appreciated and you'll find it rewarding, despite the takers.