Sure it’s free but are you doing the right thing by standing idly by and using it without paying?

Everyone is all abuzz about the death of NDoc.  Scott talks about it, and makes a plea to us all to contribute in some way to an open source project that we find valuable.  Jeff takes that on and and essentially says that our contribution requirement extends to us using the software, and that contributions via code or cash are unnecessary.  Phil jumps in and says yeah, that’s probably true, but you also get what you pay for (sorry for the broad summaries guys).

I agree with all three.

There’s a lot of open source out there, and there’s a lot of unusable open source out there.  I don’t want to get into any semantic arguments about open source, open source is software for which the source is available, or may not be available but is in some way a community project and is free.  I use and have used many such projects.  dasBlog, NDoc, NAnt, NUnit and derivatives, Cruise Control.Net, RSSBandit, and many others at one time or another.  What have I contributed?  Little.  I’ve made one monetary contribution, I wrote a RSSBandit plugin and released it to the community, and I’ve evangelized several of them.  Now if I were using any of them to make money I would certainly contribute more, but many projects don’t fall under that header.

However, why should open source or “free” software be any different from shareware/trialware?  Just because they don’t set a price doesn’t mean they don’t deserve to be paid.  I have a policy of purchasing the full versions of software that I find invaluable to my every day life, such as BlogJet, Winamp, Winzip, and a few others.  This is software that most people don’t pay for.  So how is BlogJet different from RSSBandit?  I’m thinking…it’s not so much, and maybe I should kick 20 bucks RSSBandit’s way.  Other companies are charging for RSS readers, but I didn’t choose RSSBandit because it was free, I chose it because it was good. (I may have initially tried it because it is free, but so is SharpReader and I stuck with RSSBandit).

So, open source may be free, but don’t take that as a disincentive to contribute.  Sure, you don’t *have* to give some time or cash, but if it’s something you rely on, and certainly something you make money from, and you are a software developer, I think you may be a little morally bankrupt if you don’t even consider the idea of contributing.  If we as a society only tended to the things we had a moral obligation to tend, we would be worse off for sure.  As a software developer you should understand the effort that goes into these projects, and how maybe a few bucks here and there provides at the very least a morale and motivation boost, even if the monetary impact is minor.  There’s nothing like someone saying “hey, you’re good enough for me to give money to”.

There’s another side of the coin here that nobody is really talking about though.  When you take on an open source project like NDoc that thousands of people come to rely on, like it or not, you have made an implicit commitment to that community.  If you decide to give it all up one day out of the clear blue sky, you may be leaving a lot of people in a lurch, and there’s an element of moral bankruptcy to that as well.  I’m not at all saying that Kevin should have put up with threats and email-bombs, that’s bullshit and I’m ashamed because I know that people who partook of such behavior are in this .Net community with you and I.  The fact remains though that his project was important to our community, and he knew it, and as a result, he and others like him have a duty to keep it alive. 

There is one easy way to get real monetary support for an open source or community project.  Put a price tag on it.  Keep it free to use for personal use, but say it costs $20 for an enterprise license or whatever.  They could be the same thing, you don’t need a “lite” version or anything like that.  It’s all about the labeling.  Sure some people won’t pay, but many will.  I could get my corporate purchasing people to plop down that much for the whole N* group of tools without a second thought if they would just say “this is the professional license version and it costs [x]”.  But convincing companies to “donate” that amount is a lot harder than convincing them to “pay” that amount.  I don’t know why, but it is.  So take that advice and consider it please, because I would love to get my company to pay all of you for your tools.

If you want contributions, say so.  Until I read Scott’s entry and his comments on Jeff’s post, I would never have thought to send an unsolicited bug fix to a project.  I’m sure I’m not alone.  But if you need help, don’t make it a secret.  Say something.  This is a great community, someone will help.  Someone will donate money.  Someone will donate time.  Someone will donate MSDN.  You will get help if you ask.  And if you don’t want the help because you don’t want other hands in your pot, then you can’t complain about doing it on your own.  If you don’t ask, then you can’t complain about not receiving.

For the rest of us though, just keep this one thing in mind:  just because you are under no obligation to do a thing doesn’t mean you shouldn’t do that thing.  I think that’s the real meaning to take from Scott’s post.  If you think a project is valuable, then you should be willing to toss it some love in one form or another.


Tags: