Coding Horror

programming and human factors

Open Source: Free as in "Free"

Here's Scott Hanselman on the death of nDoc:

We are blessed. This Open Source stuff is free. But it's free like a puppy. It takes years of care and feeding. You don't get to criticize a free puppy that you bring in to your home.

Free like a puppy is certainly more poignant than free as in beer. But it's an equally terrible metaphor. Nobody has to crate train NUnit. Nobody has to take NCover for regular walks. Nobody has to clean up NDoc's poop. If open source software required as much effort as raising a puppy, your local pound would be even more full than it already is of unwanted dogs.

a cute widdle puppy

The whole point of open source-- the reason any open source project exists-- is to save us time. To keep us from rewriting the same software over and over. Puppies are cute and fuzzy and sweet, but they're also giant timesinks. To imply that an open source project is as labor intensive as a puppy is reinforcing the very worst stereotypes of open source: software that's only free if your time is worthless.

Open source software is at its best when you aren't obligated to do anything at all.

You definitely shouldn't have to pay for it. Scott didn't:

For "base of the pyramid" fundamental stuff like Build, Test, Coverage, Docs, will we pay for them? We should. Should we have given the NDoc project $5? Did NDoc help me personally and my company? Totally. Did I donate? No, and that was a mistake.

How is that a mistake? It's exactly what open source is about: maximum benefit, minimum effort. To suggest that we are morally obligated to make monetary contributions to every open source project we benefit from shows a profound misunderstanding of the economics of open source.

Personally, as an Open Source project co-leader, I'd much rather folks who use DasBlog pick a bug and send me a patch (unified diff format) than give money. I suspect that Kevin would have been happy with a dozen engineers taking on tasks and taking on bugs in their spare time.

Contributing code to an open source project is a far greater extravagance than any monetary contribution could ever be. It's also infeasible for 99 percent of the audience-- the rare few who have both the time and the ability-- which makes it an even more extravagant demand.

If contributing money is foolish and contributing code is an extravagance, what's a poor user to do? Nothing. Nothing at all, that is, other than use the software.

The highest compliment you can pay any piece of open source software is to simply use it, because it's worth using. The more you use it, the more that open source project becomes a part of the fabric of your life, your organization, and ultimately the world.

Isn't that the greatest contribution of all?

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Exchange and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: