Open Source Currency

Based on anecdotal data I can safely say that most people view “Open Source” as
roughly synonymous with “Free” (as in beer). And in an impressive number of
cases, that’s actually true. Many (maybe even most) open source developers are
happy to give the fruits of their labour away for no cost at all.

This raises an interesting question: how are open source developers rewarded
for their time and effort? These developers, many of whom are quite highly paid
in their day jobs, must surely be receiving some kind of compensation, even if
it isn’t monetary. So what is it?

Whether you’re trying to find a way to show your appreciation to a developer
who helped you out, or you’re just interested in knowing why these people spend
so much of their time working for ostensibly no money, let this be your guide
to the mysteries of open source currency.

There Can Be Only…Three?

In my experience there are roughly three different ways open source developers
get compensated for their work. I’ll tackle these in turn, in increasing order
of importance.

Number 1: Money

“What? But I thought you said that open source was free?” I hear you exclaim.
No, you said that. I said that you thought open source was free.

In fact, many developers make some (emphasis on some) money from their open
source work, and a number make genuinely decent money. They do this in a few
different ways.

Firstly, lots of projects gratefully accept monetary donations. For example,
OpenSSL has a donations page.
In practice, for larger projects this rarely goes directly towards paying
developers (due to the difficulties of fairly assigning such money), but
instead pays for vital infrastructure like CI servers, build servers, and web
hosting.

Projects also frequently get donations from companies
that are grateful for the project. Some good examples of this are
httpbin, whose hosting costs are paid by Runscope, and
Requests, which has its CI servers provided for
free by Rackspace.

Newer methods of financially remunerating developers have appeared in the last
couple of years. The most notable example would have to be the very exciting
Gittip. Gittip is an unusual company in a number of
ways, and I strongly suggest you check them out for that reason if nothing
else, but they also provide a uniquely powerful way of financially rewarding
developers for their work. Small donations on a weekly basis, in aggregate,
become a powerful way of funding work. Some developers, such as
Eric Holscher, have taken the bold step
of giving up on their day jobs entirely, hoping to be funded
entirely through Gittip.

Author’s Note: I am also on Gittip, and
would always appreciate donations. Just saying. We now return to our regularly
scheduled blog post.

The final method of remunerating developers for their open source work is to
employ them full time, and allow them to spend a certain proportion of their
time doing open source work. This is not entirely uncommon: aside from a few
high-profile examples such as Guido van Rossum at Dropbox, companies like
Intel employ a number of people who work full-time on the Linux kernel. For
most open source developers, this is something they’d love. Employers, bear
this in mind: you can improve your attractiveness to open source developers by
letting them spend some work time on open source.

Interestingly, I’ve found that by and large this is the least important of the
three methods of remuneration I’m going to talk about. The main value of the
money is not, in fact, the money. Most open source developers are not sitting
around trying to get filthy rich: if they are, they tend to have day jobs which
will provide that income for them.

The main value of these financial contributions is the fact that it can buy
things: specifically, it can buy the most important open source currency. I’ll
come back to this.

Number 2: Gratitude

It’s amazing how simple rewarding open source developers can be. The key thing
to recall is that all open source developers are fundamentally trying to good
in the world. We believe that free (as in speech) software is the best end
to which we can put our skill set, and we feel good about doing it. But
sometimes we lose sight of this behind the phenomenal weight of our
self-imposed responsibilities.

For that reason, taking time out of your day to contact a developer and to
thank them personally for their work is one of the best ways to do it. This
doesn’t need to be a big long essay about how touched you are: just something
that is personal enough that the person being thanked feels like effort was put
in. This can be a genuine tweet, or an IRC message, or an email. If you meet
them in person, shake their hand. If you both like beer, buy them a beer. If
you both like coffee, buy them a coffee. Do something nice for them.

I’m not kidding about the power of gratitude, either. One person’s genuine
“thank you” can totally turn around an otherwise tremendously shitty day. If
you do nothing else in response to this post, go out of your way to thank
someone who works on an open source project. Not necessarily the maintainer,
either! We all need thanks sometimes.

Number 3: Time

Anyone who has worked in open source for more than a month or two has come to
realise the gargantuan value of someone’s time. Each one of us feels as though
we’re short of time: we don’t have enough time to balance open source with our
day jobs, our family, our friends and our hobbies. So we find ourselves
compromising between one or more of these things, accepting that we can’t do
all of them as well or as extensively as we’d like.

This means that the single biggest gift you can give an open source developer
is time: either theirs or yours. This gift can take many forms. You can spend
time triaging bugs for them. You can fix bugs for them. You can do something
that minimises the time they spend on irrelevant things.

This is what money can buy open source developers: the time they need to get
more done. Pay them enough and they can start doing four day weeks at work, and
spend the fifth day contributing to open source.

For better or worse, time is the scarcest commodity in open source communities.

Give Gifts

It’s worth reiterating from time to time that we should show our appreciation
to those we appreciate. This includes developers who devote hours, days, weeks
and months of their lives to making our lives better.

So I implore you: take some time out of your day and give one of these gifts to
a developer or two. Keep paying it forward. The world ends up better that way.