Jeff “The CodingHorror”
Atwood takes issue
that software developers have any moral obligation to contribute to Open
Source projects. And you know what? I agree. However I do take issue
with his conclusion as well as some of the points that he makes in an
attempt to bolster his argument.
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.
It’s exactly what open source is about: maximum benefit, minimum
Well no. Not really. Back in the day, software was just an afterthought
provided by hardware companies to complement and run their hardware.
This software was widely shared freely, until companies began to impose
restrictions with licensing agreements and started protecting their code
by hiding the source.
Many developers grew frustrated as they lost control over their working
environment and were unable to modify the programs to fit their needs.
Hence Richard Stallman started the Free Software movement, hoping to
give users the right to:
- run the program, for any purpose.
- modify the program to suit their needs. (To make this freedom
effective in practice, they must have access to the source code,
since making changes in a program without having the source code
is exceedingly difficult.) They must have the freedom to
redistribute copies, either gratis or for a fee.
- redistribute copies, either gratis or free.
- distribute modified versions of the program, so that the community
can benefit from your improvements.
Thus originally, the whole point of open source was to provide users
the freedom to regain control over software in order to get their jobs
Of course later, the movement split into the Free Software movement
which was absolutist about the freedom issue, and the Open Source
movement which sought to be more pragmatic and provide a business case
for open source software. Open Source focuses on the intrinsic benefit
of having communities of developers improving a software codebase.
Enough with the history lesson and please, I do know that I glossed over
that with a big hand wave. That is called a rough history.
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?
If I read a book you wrote because I found it worth reading, have I made
a contribution? Hardly! Apart from the contribution I paid at Amazon.com
for the pleasure of reading the book, I am merely using something worth
using. That is not a contribution, it is just good sense.
Now if I post a positive review on my blog, that would be a
The way I see it, Jeff’s right, there is no moral obligation to
contribute to an Open Source project. However I am not quite sure the
puppy analogy he mentions suggests that. At the risk of yet another bad
analogy, allow me to propose one that works for me. I think of Open
Source software as being like a nice set of flowers in a common space
such as a courtyard. Nobody that lives around the common space owns the
flowers, yet they all enjoy the presense of the flowers.
Fortunately, one or two volunteers tend to the flowers and the flowers
thrive. Some flowers seem to do fine with very little care, others
require lots of care. But everybody benefits and there is no cost, nor
moral obligation to others to contribute to the upkeep of the flowers.
However, should the caretakers decide to stop tending to the flowers,
the others certainly have no right to complain to the caretakers. And
while it is true that in some cases, others may take up the slack and
tend to the flowers, or other flowers might grow as replacements, if
nobody takes up the cause, or if the new flowers are simply weeds, then
everybody loses out. Including those who had the time, means, and even
desire to help with the flowers, but just never thought to because
someone else was taking care of it.
So while I do not think contributing to Open Source software is a moral
obligation, I do think it is a worthy practical consideration. No
offense to my homie, but I think it is Jeff who misunderstands the
economics of open source. Minimum effort does not equate to free
For example, should you begin to rely more and more on some piece of
Open Source software, consider the effort to replace the software (which
might tack on a monetary cost for a proprietary replacement) and learn a
new toolkit if development of the software dies out. Hardly a minimal
True, a contribution in this situation is no guarantee that a project
will succeed. But doesn’t the same risk apply to purchasing proprietary
software? It certainly applied to contributing to a political party (if
you were a Democrat in the last couple of elections).
And while it may be infeasible for a large portion of the audience (Jeff
pulls the figure 99% out of his rear, which is probably close to the
truth) to contribute the extravagance of a bug fix, for the remainder
for whom it is feasible, it is certainly worth considering. Every
contribution not only helps in a small way to keep the project viable,
but it improves the software for your own purposes. It is an entirely
So again, please do not confuse exhortations to contribute to Open
Source as a claim for moral obligation. I honestly believe that those
who contribute will benefit from the contribution as much as the
recipients of the contribution, which is why I am such a big proponent
If you have the means, why not water the flowers for a bit? There are
many forms of contributing to an open source project. I list several on
the Subtext contribution web