I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

August 01, 2006

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?

Posted by Jeff Atwood    View blog reactions

 

« Linus Torvalds, Visual Basic Fan Shortening Long File Paths »

 

Comments

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.

Chris Nahr on August 1, 2006 11:31 PM

> As usual, it would be great if people had a clue what they're writing about...

I LOLed!

Jeff Atwood on August 1, 2006 11:57 PM

I agree, at least about how money is a bad way to contribute to an opensource project, but I disagree that code is the only way to contribute. There are other things that need doing in open source, writing documentation is an obvious one. I'd say that more ppl have the capability to do that then can code.

Factory on August 2, 2006 12:34 AM

Chris - I based that statement on looking at code at http://ndoc.cvs.sourceforge.net/ndoc/ndoc/ that doesn't look that old. Some things are 3-4 months old, including 2.0 changes. What am I missing?

Either way, I do hope that the next developers release more frequently.

Scott Hanselman on August 2, 2006 12:55 AM

Jeff, seriously, you really believe this:

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

It's not THAT hard to contribute a PATCH file when the project includes the source or a debug build includes PDBs. I've contributed fixes to a half dozen projects in the last year or so. Projects I didn't pay for, but projects I needed to get the job done - and bugs I needed fixed.

Considering that programmers are downloading these apps to support their code, is it THAT much to ask that 1% of them contribute a patch occassionally?

Case in point - there's at LEAST 20 bugs that have be reported on DasBlog over the years that *included a pasted in stack trace and explanation of the line of code that was going wrong.*

Is it too much for us to ask for the fix? That's all I'm saying.

And yes, I fixed a few NDoc things in HtmlHelp2 a long long time ago.

Scott Hanselman on August 2, 2006 12:58 AM

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!? ;)

Haacked on August 2, 2006 01:50 AM

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":
http://www.donationcoder.com/Articles/One/index.html

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.)?

mouser on August 2, 2006 02:16 AM

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

George King on August 2, 2006 02:39 AM

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.

SP on August 2, 2006 04:44 AM

Jeff,

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?

Peter on August 2, 2006 05:31 AM

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.

Foxyshadis on August 2, 2006 05:37 AM

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.

Mitch Marcus on August 2, 2006 06:21 AM

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.

Peter on August 2, 2006 06:35 AM

SP: Does this database make me look fat?

Carl Manaster on August 2, 2006 07:11 AM

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.

Metro Sauper on August 2, 2006 07:14 AM

Mitch,

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

Tod Birdsall on August 2, 2006 07:55 AM

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.

Chris Nahr on August 2, 2006 08:03 AM

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

Scott on August 2, 2006 08:16 AM

> If an open source projects intention is to make money, they should be up front about it.
> 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.

Exactly. If money is your goal, then MAKE it your goal. I really dislike the trick where projects start open and suddenly switch to closed-source ($) when a bunch of people have adopted their code. But it happens all the time..

> widespread acceptence of a donation-based approach to funding open source projects

I'm not sure there is such a model. There's certainly the Community Server model, but as Phil points out, that's not really "Open Source", it's "Source Available".

> That's the reason YOU USE open source

It's the reason everyone uses open source, and software in general. The creators and key participants may have different goals, but it really doesn't matter the until needs of the audience are satisfied (or, I suppose, if the only audience is yourself). As you point out, if nobody uses it, who cares? So you have to get past that bar before any of this is relevant.

Jeff Atwood on August 2, 2006 09:37 AM

> It's not THAT hard to contribute a PATCH file when the project includes the source or a debug build includes PDBs. I've contributed fixes to a half dozen projects in the last year or so. Projects I didn't pay for, but projects I needed to get the job done - and bugs I needed fixed.

Fine. Create a new blog entry. Walk us through, step by step, the process for contributing a fix to DasBlog. List EVERY step, starting with finding a bug.

If it's that easy, prove it.

Jeff Atwood on August 2, 2006 09:40 AM

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

My point is that 99.9 percent of people can live by that rule, and projects can still thrive. I'm not *prohibiting* people from participating if they want to, but the true economies of scale come from dominance in the market-- heavy usage and standardization.

Maybe it's a chicken and egg problem, but usage numbers will drive up that 0.01 percent number as well.

Jeff Atwood on August 2, 2006 09:51 AM

Jeff - I did that last year:
http://www.hanselman.com/blog/UsingAWindowsVersionOfGNUPatchexeWithCVSAndDiffFiles.aspx

It involves right-clicking, selecting "Make Patch" and attaching it to the Source Forge bug.

I'll update the post since we use SVN now.

Scott Hanselman on August 2, 2006 10:11 AM

I've said this a few places, but it all comes down to communication. Just read these comments or a forum on GPLv3, and you'll find the term 'Open Source' is not well defined. Some people are in it for money, some for glory. Some people want help, some people refuse help. The best approach is to clearly state your intentions.

It was lack of communication that killed NDoc. Consider that there is still no 'official' word on NDoc's death- only an email posted to other peoples' blogs. It's been the same since Feb. of this year, and largely before. I'm positive if Kevin had come out on the website and clearly stated what the plans were for 2.0 and what he needed to get it done, we'd have NDoc 2.0 now.

Daniel on August 2, 2006 10:23 AM

>> If an open source projects intention is to
>> make money, they should be up front about it.
>> I'm no fan of open source authors who whine
>> about not having enough money donated to them.

> Exactly. If money is your goal, then MAKE it
> your goal.

Listen, if I started a homeless project to feed and clothe the homeless, money is not my goal. But should I be labelled a whiner if I ask people to contribute money to the project. Hey, you all benefit from having cleaner nicer smelling homeless people around.

There are real monetary costs and what is wrong with asking for help?

Although I am starting to understand the issue with the NDoc situation. I wasn't involved, so I don't know the details, but it seems like many are saying that the complaints concerning donations came after the fact. If that is true, and there were no requests for donations before the fact, then I can some of the frustration.

But I see nothing wrong with asking for contributions for a free project.

Haacked on August 2, 2006 10:25 AM

Whoops, I meant "I can understand some of the frustration."

Haacked on August 2, 2006 10:25 AM

"It's the reason everyone uses open source, and software in general."

Yes, but it's not the reason that Open Source projects exist. Which is what you originally stated.

Scott on August 2, 2006 10:27 AM

hmm.. i dont understand what you're getting at. You're trying to say that opensource software is supposed to supply you with minimum effort?? that's just stupid. If the "user", as you describe him, wanted minimum effort software, then they would just buy it from the store to begin with.

paul on August 2, 2006 10:43 AM

> It was lack of communication that killed NDoc.

Definitely. It's almost pathological. Definitely not representative of your typical open source project.

> There are real monetary costs and what is wrong with asking for help?

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. The usefulness of the solution should speak for itself. The project should attract a large enough audience that the .01 percent factor will kick in, and you'll have contributors.

And, for the love of all that's holy, don't change from open source to closed source and start charging people just because you can. See Dare's comment on this here:

http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=11489e58-d6a0-40a6-9ac8-5bd363b8e6d6
--
I have some bad news and some good news. RSS Bandit is built using user interface controls that are not provided by default by the .NET Framework to enhance it's look and feel. A common practice among vendors of such user interface controls is to offer them for free to developers to gain mindshare and once these developers are 'hooked on their product' they withdraw the free version. This means that developers of applications that use these user interface controls will end up having to pay the vendors if they want to use newer versions of these controls. This has happened twice to me with RSS Bandit.
--

> Yes, but it's not the reason that Open Source projects exist.

Does an open source project really exist if nobody uses it?

> If the "user", as you describe him, wanted minimum effort software

Effort factoring in *the cost of software*. Maybe the truly lazy should be buying commercial software. Ironically, lazy people usually have more time than money, though.

Jeff Atwood on August 2, 2006 10:57 AM

What does the NDoc author expect? He releases a freeware opensource app and then complains that no one "donates" money to "support" the project?

Come on! This is the problem with opensource. People are convinced software should be free. Even the author of NDoc was apparently convinced it should be free, yet had the nerve to ask for donations and when he didn't get any, shut the project down.

Openwhat on August 2, 2006 11:01 AM

My philosophy is to help out an Open Source project that helps me in whatever manner I can.

For me, donating $5 to an open source project is like saying "I'd contribute my time to your project if I could, but thanx for saving me time on the project I am working on. Hope this $5 will help you to continue."

Jason Scheuerman on August 2, 2006 11:11 AM

I tell ya what Jeff - it's very much like raising a puppy. The thing you're overlooking is the continual support you need to provide, as well as the overall development. I running the Commerce Starter Kit, I have had all kinds of ups/downs - very much akin to raising a puppy (and a rabbit, turtle, and some fish).

>If your project is worthwhile, you shouldn't need to BEG for help. The usefulness of the solution should speak for itself. The project should attract a large enough audience that the .01 percent factor will kick in, and you'll have contributors.

Tell ya what Jeff - start your own OpenSource project and see if this is true. The line from the very beginning struck me about writing about something you know... and does this apply to you? Scott H runs DasBlog, I run CSK. I have close to 13,000 members in my community with well over 120,000 downloads since November 2005. We average 100 new members a day. I have received 8 donations.

Normally I like your ideas but this one is a bit off.

Rob Conery on August 2, 2006 11:24 AM

> start your own OpenSource project and see if this is true.

I didn't really get into it in the post because I didn't want to come across as too negative. But since you asked, here's my opinion on this:

People are bastard coated bastards with bastard filling.

(via Scrubs). Believe me, any open source project I run would be managed with that expectation in mind.

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

.. and that's quite a bit of work. Maybe that's why there are a hundred failed open source projects for every successful one. And only a handful of blockbusters.

Jeff Atwood on August 2, 2006 11:43 AM

I don't know about anyone else, but what about contributing your own Open Source project? Maybe take another one already started and port it to another platform? I've been fiddling with a couple projects (none seem to have gone anywhere) and even am considering a .NET/Mono version of Azureus.

But, do I do it for money? No. Do I do it for fame? No. (Well, some notoriety would be cool) Would I like donations? Sure, but not required and won't be asked for. Help in creating this puppy? You bet. Time to do this in a reasonable amount of time and feel that I am making a healthy contribution to the project I started? No. Will I still do it and hope that in 2-3 years I'll have at least 1 other user than me? More than likely.

It's about taking an idea and implementing it. Whether you do it for money, the kindness of your heart, to teach others, or just have fun, it's about just implementing your idea. Making it happen. If you get what ever kind of satisfaction out of what you are doing, wasn't it worth it?

You all have your opinions, and all of your opinions are very valid. Don't think I am saying yours is wrong. I'll just choose which parts I agree with and keep them to myself, unless you can glean mine from the above.

I'll continue to use Open Source/Shareware/Closed Source/Freeware as long as I have a need for that application. I will pay for those that require payment for them to continue their use. I may even contribute where I feel there is a true need. But, I won't cheat a programmer/developer out of what is fairly theirs. This stems from my childhood raising of "doing to others only what you would have done to you."

John Baughman on August 2, 2006 11:52 AM

Ok, that first paragraph didn't make much sense upon rereading it again and again; here's a refactoring:

I don't know about anyone else, but when considering contributing something, why not contribute a plugin or tool to work along side or in the application? It may not be directly in the application's source, but isn't that a contribution? What about porting to another platform or framework? I've been fiddling with a couple projects (none seem to have gone anywhere) and even am considering a .NET/Mono version of Azureus. I'm not a big fan of Java and think that some of the regular end users that use apps such as Azureus either: don't like Java or don't know just what the hell Java is other than coffee. My considerations for this porting are also taking into account copyrights. Yes, I would release the application under the same license (it's a derivative) and include the original copyrights right along with mine. This would give the orginal author credit for having done it before, just a little different. What have I contributed? Another version of the same application on a different platform/framework. Who knows, it may become just as popular. If it is started/finished.

Sorry for the extra "rant."

Jeff,

>"People are bastard coated bastards with bastard filling"

is a rather pessimistic outlook on how people are. Most of the people in the Open Source community are actually not that bad. Just busy.

John Baughman on August 2, 2006 12:12 PM

>>People are bastard coated bastards with bastard filling.

Ahh Jeff, you have way with word... I haven't laughed that hard in a while...

They are all bastards but the trick is that occassionally you get one gem in there that pushes your project to new levels. I've been lucky to find 3 of them (J Sawyer, Mark Schiavetta, and Chris Cyvas). But it took a lot of time working with them to know this :):)

All of this said - I didn't fool myself when we started; I knew we needed to get to the money point and soon. There are many models out there - the "Add-on" model (OsCommerce), the upgrade/version model (used by MySQL and CommerceServer even tho it's arguable that CS is OpenSource - more "SharedSource" as Rob H calls it), and the consultant/benefactor model that Shaun W is using with DNN.

It would be interesting to read one of your Blog Studies on the economics of OpenSource and why it fails (and conversely how it can succeed). That could be your service to the OS community :) tell us how to stay in business!

In terms of
>>It's about taking an idea and implementing it. Whether you do it for money, the kindness of your heart, to teach others, or just have fun, it's about just implementing your idea. Making it happen. If you get what ever kind of satisfaction out of what you are doing, wasn't it worth it?

John your point is valid. It's why we want to keep doing this and the cold reality sucks hard when things like NDoc shut down because the well ran dry. I'm sure it was worth it for them to do NDoc, but now we all lose cause it's gone.

>>I've been fiddling with a couple projects

When the fiddling becomes heavy orchestration (ie when your project takes off) it's a whole new ballgame. At that point it's not whether you're doing it for money or not - it's a question of survival and paying the rent as the time curve gets steeper.

Rob Conery on August 2, 2006 12:21 PM

Jeff, I wonder if part of the negative reaction that you and some others are having to this asking-for-donations thing, is the impression that the project moves into a kind of ransomware status which is always on the verge of shutting down and holding users hostage.

I talked about this a bit in my article, and why software development requires a very different approach to asking for donations, compared to something like PBS:

"... Furthermore, while you may be tempted to tell your users that if they don't donate you won't be able to continue coding, this is probably a very bad idea for a software developer. It's not like a public broadcasting station, where there is no penalty for a watcher to start watching a show and then have the show go off the air. In such a scenario, predicting doom unless enough donations are received may be a viable incentive and threat. For software, if the visitors to your site get the feeling that you may stop work on and support of the software if you don't raise enough money, that alone may be enough to scare them away.

Users don't want to invest their time and effort learning to use your software and become dependent upon it only to have it dissapear. Because of this, you really need to adopt a somewhat unusual approach, and make a contract with your users: You will be there for them, through thick and thin, and in return you ask for some monetary support. If you can't make a promise to support the software no matter what, then you can't expect your users to donate, do beta testing, and file bug reports, and then risk finding themselves left out to dry because there aren't enough people supporting you. You need to set a baseline of support you are willing to guarantee no matter what - and then you can offer further incentives for donating beyond that..."

mouser on August 2, 2006 12:49 PM

Strange argument. I think that Scott is right in his analysis and that Kevin really did the best he could. He suggested donations -without- holding users hostage, and provided whatever level of support he was capable of. In return, his users mailbombed him.

This wasn't a case of someone disguising his true intentions about an open-source project. It was simply a case of someone not having the resources to continue development, and getting mailbombed for it. Should he have told users earlier that he was having trouble supporting the project? Maybe, but then people probably would have thrown out the "ransomware" accusation.

In fact Kevin really did the honourable thing here. He *could* have made it ransomware, saying that he needed donations to continue, but he didn't. Instead, he went for the only other possible option - dropping the project and offering to hand it over to someone with more resources. Scott has merely pointed out (rightly, I think) that if the users had been a tad less selfish, the project might have been able to continue.

Open-source developers are mostly well-meaning altruists who sometimes just don't have a good grasp of project management or economics. That's fine. What's not fine is freeloading users who make pathetic attempts to hide their cheapness under a thin veil of altruism, even though they've never managed an open-source project themselves or even contributed to one. They write screeds about how *all* software should be "free", then display utter contempt for the developers who provide it for free because they didn't fix a bug or implement some new feature quickly enough. It's lame enough to criticize something you got for free, but to attack the person who gave it to you!?

Yes, an open-source project really is like a puppy. When people kick it instead of feeding it, it dies. Very rarely do the developers actually want to make a *profit*, but few if any projects can survive in the long-term without financial support. That's not hypocrisy, that's life.

Aaron G on August 2, 2006 02:17 PM

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.

Regards

Fabio Alves on August 2, 2006 02:25 PM

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

;P
Actually, I think the same thing in general, but not of my developer brethren of course. ;)

Haacked on August 2, 2006 02:32 PM

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! :)

John Baughman on August 2, 2006 02:35 PM

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

Paul Norrie on August 2, 2006 02:50 PM

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.

Zaine Ridling on August 2, 2006 07:39 PM

As I already said, the situtation with NDoc was "special". In general, though, I think I agree with Jeff's position on free software. (This debate is really about free software, not open source... you can provide the source for commercial software, after all, and you can hand out free software without the source.)

There are two alternatives which are known to work fine: make software freely available, with an understanding that no payment is expected. Or sell software for money upfront.

If you expect money, don't hand out your software until you get paid. If you offer software for free, don't expect money. It's that simple.

Offering software for free and THEN expecting to get paid is not a logical choice. The impression will be that you don't want to spend to effort to build a proper business, that you don't feel confident enough in yourself and your product to ask money upfront and give proper support, and that you'd rather use moral blackmail instead.

And that impression will annoy your "customers" who will now be doubly reluctant to pay money. If you want money, be honest and straightforward about it -- don't come back like a beggar once you've already given away the software.

Chris Nahr on August 3, 2006 12:11 AM

Jeff,

Idealism or realism? Your blog title belies your attitude.

Is their such a thing as a truly free lunch/beer/puppy/product? Taking into consideration, of course, that all people are bastards. Everything costs somebody *something*.

If all people do work for personal gain (whether that is a warm fuzzy feeling or $$$), then what happens when the return/reward equation stops adding up in favour of the person doing all of that hard work?

Scott's comments are poignant because they are true.

In reality 99% of the world treats freeware like a whipping dog. Download it, use it, tell your friends, bag it if you hate it, review it, blog it, critique it, mail bomb the authors if you dont like what they do.

People rarely then offer to help change it for the better. And the paradigm still seems to thrive. However, by your own admission, so much of it fails.

What if....ideally...that same 99% treated open source in the manner Scott suggests. Do you think freeware would suffer for it? Do you think the percentage of failed attempts would increase or decrease. It seems logical to me that there would be less abortive attempts at good software. And more good, free, wtf free, software at that.

Doesn't the phrase "Help me to help you." Bear any weight here? What about paying it forward?

No, simply using somebodies hard work and using it for your own time saving purposes is *not* the greatest contribution you can make. Thats like saying that advertising is the most important aspect of a product. In reality, that is simply a compliment. Albeit, imitation being the sincerest form.

I came away reading Scott's blog feeling like I should be giving something back to the freeware community, and feeling like the best way I can do that is to a) make some freeware of my own or b) help maintain some existing freeware *any way I can*. But I also recognised that the more people who do that, the better we will all be.

Jim Burger on August 3, 2006 03:03 AM

"""Case in point - there's at LEAST 20 bugs that have be reported on DasBlog over the years that *included a pasted in stack trace and explanation of the line of code that was going wrong.*

Is it too much for us to ask for the fix? That's all I'm saying. """

You have an order of magnitude easier time of fixing a "blah.persist() fails if the drive is full, line 274, blahcode.lang" than any random open source user, even when they could write the actual code for the fix in minutes.

Downloading software - easy and quick.
Watching it bomb into a traceback - quick and easy.
Reading the traceback, seeing the faulty line, and having a guess at why it crashed - possible.
Explaining this in a post to a website - trivial, and with minimal waste of time if it is ignored.


Downloading the current source, and all test cases, supporting build software, patching, testing, diffing, getting in on the right coding and documentation styles, developer's mailing list, finding who/where to submit to, etc. - pain in the ass, and a lot of effort to put in to something you're not sure will help or even be read.


Why not make "submitting a patch" as easy as submitting a traceback and suggestion?
(Open source in general, not you specifically).

sfb on August 3, 2006 08:59 AM

I just wish open-source people would just shut the hell up and stop with the god damned whining. You want to work on a project for no money? What the hell were you expecting? You want everybody to swoon to your supposed superiority?

Look, if you want money for your project, then get someone to sponsor it. Stop begging and prodding for money - it just makes you look like a shill. If you want to release something for free, then you need to realize the consequences of your actions.

It always astonishes me just know ingorant programmers are when it comes to economics.

foobar on August 3, 2006 10:16 PM

I must admit, this whole thread's left me rather puzzled. There seems to be this misconception that the whole point of Open Source is to be free as in beer. Um, that's not quite right. Last time I looked, the big F/OSS slogan was "free as in speech, not free as in beer". The fact that it's possible to get the software for nothing just something that sometimes falls out of the equation.

If you use F/OSS, you're supposed to contribute something back, anything. If you can donate code, donate code; if you're a graphic designer, donate icons, graphics, designs, whatever; if you're a technical writer, donate documentation or improve what's there; if you're a corporation, sponsor it; if you're a user, donate bug reports or a few quid to help keep the project afloat; and if those avenues aren't open to you, just say thanks.

TANSTAAFL. Using the product isn't enough; if you want it to survive, you have to contribute something to its survival.

Keith Gaughan on August 4, 2006 04:57 PM

"There seems to be this misconception that the whole point of Open Source is to be free as in beer."

Probably because this is a fact, not a misconception. Whatever slogans some delusional OSS organizations might invent is irrelevant. Dropping a piece of gold on the marketplace, walking away from it, and later complaining that whoever picked it up didn't do anything for you is merely childish.

It's amusing that you use the "TANSTAAFL" quote, which is supposed to express a brutal reality, in order to justify such a hippie fairy dreamland...

Chris Nahr on August 5, 2006 12:56 AM

Users of free software begin to feel as though they own the product after it becomes part of their workflow. Their reaction is almost the same as it would be if Adobe asked you to pay again for Photoshop after you had already purchased it. The free download is like a virtual purchase.

The way to go is to seek out a few companies whose employees use your product and ask them to make a large donation. If the product is really valuable to their business, you should have no problem getting enough money to fund one man's living expenses.

Look at how projects like Linux and Firefox get all their money from large corporate donations.

John on August 8, 2006 06:04 PM

"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 could be mistaken, but don't you mean it the other way around? that if raising a puppy required as much effort as open source software... etc.

There is no "moral" obligation to donate to open source developers, but you are using tools they made and gave you free of charge. Donating $5 is not the equivalent of paying them for it, it's like buying someone lunch after they let you borrow their lawn mower: you still didn't have to buy one and they are happier for having lent it to you.

As a programmer I have to say that the highest compliment I could be given is not the use of the code/program, but maybe a note in my e-mail saying thanks for the great tool. If/when I start making my own open source tools I will have a donate link, but I would never expect people to be obligated to donate.

~Mazid the Raider

Mazid on August 19, 2006 07:09 AM







(hear it spoken)


(no HTML)




Content (c) 2008 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.