Open Source: Free as in "Free"

Here's Scott Hanselman on the death of nDoc:

This is a companion discussion topic for the original blog entry at:

As usual, it would be great if people had a clue what they’re writing about…

Scott Hanselman: “I suspect that Kevin would have been happy with a dozen engineers taking on tasks and taking on bugs in their spare time.”

If that was his wish he kept it to himself. The source code for NDoc 2.0 was never released – Kevin claimed licensing issues as the reason. No-one else could contribute, except by mailing him bug reports on his (binary-only) alpha builds.

Kevin is now supposedly passing on the Sourceforge administration of the project to two other guys; I hope we’ll finally see a public source code release again so that willing engineers actually can contribute once again.

As usual, it would be great if people had a clue what they’re writing about…

I LOLed!

Jeff, my friend. I agree about the lack of moral obligation, but I think you have it all wrong regarding the purpose of open source software and the value of contributions.

I wrote a blog post in response, but I can’t seem to post it here:

Your comment could not be submitted due
to questionable content:

What is so questionable about that!? :wink:

i don’t know jeff, i have to disagree with where you end up with this one.

i agree with how you, and some commenters start out:

"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-- those who have both the time and the ability-- which makes it an even more extravagant demand. "

but then you jump here:

"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. "

i don’t understand the segue you make to “contributing money is foolish” - where did that come from?

the point that scott made about donating was pretty straightforward i thought - that it could be in your best interest to help provide enough money so that a coder can afford to spend some time on a project.

i wrote about these issues in my article on donationware, “When Do Users Donate”:

if you back up from your conclusion and simply ask yourself the question: “IS contributing money foolish” - i’m not sure youd often come up with an answer of yes. in fact you might come to the conclusion that donating $5 to an open source project you love, if many people did it, would enable a few developers to quit their day jobs and improve the quality, reliability, documentation, of the projects.

isn’t it at least feasible that widespread acceptence of a donation-based approach to funding open source projects, if we all took it seriously, could make it possible for open source coders to spend more time polishing their software and working on some of the finishing touches that many of us bitch about (lack of docs, etc.)?

I like very much of Open Source projects. But I like much more of FREE projects. Are one vital distinction: “Free” and “Open Source”. A lot of source code can be available, but is not free. Depending of the license, the use of the code can be more restricted than some binary only free softwares.

Why someone put “Closed Source” projects for free?

Each owner has expectatives (and efforts) about your project. Some work only at spare time, another full time…

The problem here is not about open source is free or not, or if need receive donations or not. The point is MOTIVATION.

Someone what develops in spare time and release for free the project, and see the project grows, and the acknowledgment of the community too, certainly can wonder “I can earn some cash with this, I will take this full time now”. And I think this fair. But not exists some guide about “what I can do or speak to my current (large) community about this”.

This is valid about open source or another free software.

I talked about the motivation of the owner/creator. The users has different motivations. Some can get the code to learn different things, other to use “fundamental stuff what is missing in default package” like the NDoc. And a very huge list.

The same motivation what take some spare time coder change to full time coder in one open source project and gain funds, can move some user to think about “I’m really very happy with this tool and my return with this is significative. This project is free, but maybe I can help in something, what I can do?”

The willpower what take some to give freely your time to anothers is the same what does someone what gained time help in the project.

Finally, I think only what this motivation need be clear all time, from both parts. Projects die and birth all day, and the relationship between owner/creator and comunnity is vital. If the NDoc owner says clear "I cannot continue with this project by reason X. I will be happy in help anyone what wish continue or fork the project. The doors are open. The project always was free, and maybe I cannot change this now. " or “It is the last free version… the next version will be charged”, etc, certainly has appeared some solution fine to everybody.


There’s a fine line between asking for help
and begging for help. If your project is
worthwhile, you shouldn’t need to BEG for help.

Agreed. But promotion is not begging. There is indeed a fine line. Question is, did somebody recently cross that line?

I do agree with Phil (and mouser) that it’s
the responsibility of the project owner to

  1. make it easy for people to do the right things
  2. set expectations early
  3. communicate well with your users

Running an Open Source project is much like designing a usable API. Try to make it as easy as possible to do the right thing. Lower the barriers of entry.

People are bastard coated bastards with
bastard filling

No Jeff, just you.

Actually, I think the same thing in general, but not of my developer brethren of course. :wink:

Mouser pointed out something that sounded a lot like Oral Roberts many moons ago. Look what happened to him!?!?!

Yes, buy provoking your user base, you can alienate then and push them away. But if you say things like, “If I could only have this much to keep my domain for this application” and you then turn around and say if “I just get 25% of that I’ll be ok.” or something along those lines. But just turning it into money money money and sounding greedy, it becomes a thorny stick in one’s side.

Being bold enough to actually manage the project at some point when it becomes a full grown dog and asking someone else for help is another option. While you may have a show dog and you don’t really like the idea of letting just anybody feed it, water it, or even take it to the vet, you need to find that one person with the same vision as you and make him/her a member of the family who is willing to take it for a walk and make sure it gets its shots regulary. I’m not saying that that is easy, but if you start early, it isn’t so difficult. And you have to act quick if you see the selected person waivering and not supporting the project as much as he/she could or has been in the past.

In other words, make sure you aren’t bearing the weight of the dog on your shoulders. It gets heavier than you can imagine.

(Thanks, Rob! I now stand a little more straight from your comment! :slight_smile:

I had a quick look at the NDoc2 binary (from Chris’s site) with reflector, and it looks to me like it shares almost nothing with NDoc 1.3.

If Kevin Downs was working on what appears to be a new program, what was preventing anyone commiting patches to the 1.3 codebase in the meantime? He wasn’t the only admin, and there are 12 other developers listed…

Jeff, totally agree with you. The fact that so many successful open-source projects have very few contributes is a testiment to this.

What I love about it the most is that since contributions aren’t (or shouldn’t) be expected then people are free to contribute to what they want, not all of them.

I use a number of open-source tools and libraries, yet I contribute to only two - because they interest me and my work benefits from it (as well as everyone else who uses it). If I felt compelled to contribute to everything I use, well…

I agree Jeff. I’m no fan of open source authors who whine about not having enough money donated to them. If it’s open source it about being free. I hate hidden intentions and innuendo.

It’s like talking to my wife. “Do you think this app is nice? Oh but you didn’t pay me for it. I thought you’d pay me a bit if you really loved me.”

If it’s costing you to develop it, then be up front and charge for it. Otherwise, shut up, or stop calling it Open Source.


I can’t enter my website address when posting a comment, because it is in the dot-info TLD! Do you think only spammers use that TLD?

A developer I know did what I thought was honest: He hit a rough patch in life and started releasing closed source binaries under a new license, with instructions that they’d be reopened as people donated. He wasn’t whiny or preachy about it, just said it was what he had to do. (They’re all open again now.)

And, er, this is a very… interesting conclusion.
“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.”

I’m not sure I see how difficult-to-use open-source software would lead to a rise in dogs in the pound; perhaps a recycle bin full of tried and trashed software.

The range of things you can do between donating and simply using is pretty enormous; advertising, advocation, documentation, design, requests, bug reporting, supporting other users on a forum, and of course patching. The whole point is that it’s strictly voluntary, projects just have to make it easy for people who want to give back to do so. I think if everyone lived by the “just use it, don’t contribute back” rule, open-source as a movement would be long-dead now.

I think there is a big difference between business and personal users of open source. If it is for my own personal use, then I don’t feel obligated to pay. But if it is for a commercial interest, that is different.

The cost of software is minimal (in most cases) compared to everything else involved. Plus, the company is saving money since it is free.

As a society, we expect businesses to be good members of the non-virtual community. We ask them to support charitable organizations in the community, provide good jobs to locals, etc. Our mores hold businesses to a higher standard than individuals. Why not expect businesses to give something back? Sure, it would be great if their developers could contribute to the code, and I think that is best way for businesses to “pay.” But if they can’t, they should send a check.

I think when Scott wrote “Free as in puppy”, he meant it more in a metaphorical sense. As in, metaphorically, if you beat your puppy too much and too severely, the puppy runs away (or dies).

I think that’s what he meant to write.

And when you said “the greatest compliment … is to simply use [open source software]”, I think you left out the part mentioning that the project maintainer, as much as he’s flattered you’re using his open source product, would be that much happier if you’d stop beating him with the rolled-up newspaper. Because it stings.

So that’s what ‘free as in puppy’ means to me–it means you should treat your project maintainer like a puppy, not like a code-writing automaton.

When Scott said that not donating $5 was a mistake. I don’t believe that he was saying that he had an obligation to make the donation. I think it was more like donating $5 was in his best interest. If his paying the $5 (and others also paying $5) would make the different in continuing the development and enhancement of nDoc, it probably would have been worth it. However, it is purely a “value paid for value received” transaction. There is no obligation involved.

I’ll have to disagree with Jeff here. Think of an open source project as you would an organism, or a puppy — neglect to feed it, and it will fade and eventually die.

I’m no coder, but I have a “great software” recommendation list, but in it I try to inform users like myself to:

“Communicate and donate. If you use freeware or Open Source software, make a donation in support of its continued development, and simply in appreciation. Few users realize how much blood, sweat, and tears goes into any good program — especially one that is actively developed. If you use it through an upgrade, make another affordable, modest donation to encourage its continued development. In other words, donate what the program is worth to you, not what it costs you. We all love freeware, but stable, useful software is worth supporting, and by donating small amounts — $5-$20 — you won’t notice it in the pocketbook. Many Open Source projects have to pay for wiki and site hosting costs even though they’re considered “free,” but a good rule of thumb is to give what the program has saved you in the cost of commercial software. And if you cannot afford to donate a small amount, write the author a brief note telling them how you use their program and how much you appreciate it…”

I know LOTS of users hate any software that isn’t absolutely free to them. But as others have mentioned above, who the hell has that kind of time? No one. Eleven donations over the entire life of the project was an insult, and it devalues the hard work and brainwidth it takes to write code that provides solutions for the rest of us. I make $6/hour, but I ain’t that cheap.


I don’t think we should “expect” businesses to give something back. If an open source projects intention is to make money, they should be up front about it.

I think that Community Server is a good example of an open source project that offers a free version of there product, but is up front about wanting to make money. You will have to check with Rob Howard, as to how successful it is.

Now, can someone tell me if CS is free like beer or free like a puppy? I am leaning towards free like a pet rock ('cause it sounds funny).

Scott, I apologize for the snarky comment but NDoc was really a bad example to use in your open source post, and I got somewhat annoyed after seeing the same misrepresentations pop up seemingly everywhere since Kevin’s “resignation letter” became public.

First, please take another look at the SF archive and sort by submission date. Kevin hasn’t submitted anything for 14 months, and that was for the 1.3.x codebase. All the more recent submissions were by another guy (drieseng) and those were apparently fixes to make 1.3.1 run on Mono.

At this point, the NDoc 2.0 codebase still only exists on Kevin’s private hard disk. Moreover, even the binary alphas were released only to a private mailing list.

Given that fact, Kevin’s complaint that he received no donations is somewhat problematic. The project certainly deserved donations for version 1.3.1 which was already immensely useful; but given the near-total public silence on 2.0 progress the reasonable assumption of the general public had to be that NDoc was dead, not that a maintainer was desperately hoping for donations.

Once I became aware of the situation (through the private mailing list which I had eventually discovered) I did make a donation myself and encouraged others to do the same. I had also submitted a bugfix for 1.3.1, by the way.

Yet with NDoc 2.0 the public appearance was not that of a well-maintained project asking for monetary and coding support – it was that of a dead project. Clearly the recent mailbombing is inexcusable, but the lack of support (and people bugging him about a release) was IMO the logical result of this very long period of silence.

Since the extent of donations (i.e. zero) up to the release of 1.3.1 was known to Kevin I cannot imagine how he ever got the idea that it would be any different during his private efforts to create a .NET 2.0 release. Don’t get me wrong, Kevin is a fantastic developer, I’m very grateful for his efforts and the current 2.0 alpha beats the pants off the current Sandcastle pre-release if you ask me – but in all fairness much of his disappointment must be blamed on the situation and his expectations, rather than the community.

"The whole point of open source-- the reason any open source project exists-- is to save us time. "

Wrong, wrong, wrong. (and how often do I get to say that). That’s the reason YOU USE open source. If I create a data access library,license it using the LGPL, and no one downloads or uses it, does that mean it’s not open source? I didn’t save anyone any time.

Open Source projects exist for two reasons, the generosity of the developer and the love of the freedom to change the code if you want to.

errr, IMHO. :wink: