By Nathan Willis
September 6, 2012
At LinuxCon 2012, Bradley Kuhn, executive director of the Software
Freedom Conservancy (SFC), presented a session on funding free software
development. SFC's primary mission is to provide organizational and
legal support to free software projects, but it has also been
successful at raising funds to support development time — a task
that many projects find difficult.
Ancient history
Kuhn started the discussion with an account of his introduction to
free software, which began when he accidentally hit a key sequence in
Emacs that brought up the text of Richard Stallman's GNU Manifesto.
Reading the Manifesto was inspirational, said Kuhn, who has subsequently
pursued a career in free software — even serving as director of the
Free Software Foundation (FSF).
But on this occasion, he told the story not just as an
introduction, but also to point out an oft-overlooked section of the
document. Toward the end of the Manifesto, Stallman discusses several
possible alternatives to the proprietary software funding model.
Stallman argues that (contrary to the common objection that "no one
will code for free") free software
will always have developers, they will just earn smaller salaries than
they would writing proprietary software. He cites examples of people
who take jobs writing software in not-for-profit situations like MIT's
Artificial Intelligence Lab, and says that free software is no
different. Developers do tend to move to higher-paying jobs when they
can work on the same projects, he said, but there are many who write
free software out of commitment to the ideals.
Stallman suggests several alternative funding models under which
developers could make money working on free software. One is a
"Software Tax" in which software users each pay a small
amount into a general National Science Foundation (NSF)-like fund that
makes grants to developers. Another is that hardware manufacturers
will underwrite porting efforts; a third is that user groups will
form and collect money through dues, then pay developers with it.
Few people remember it, Kuhn said, but in the early days FSF itself
functioned much like one of the user groups Stallman describes in the
Manifesto. It accepted donations and directly paid developers to work
on GNU software. A long list of core projects, including GNU Make,
glibc, and GDB, were originally written by paid FSF employees. It
was only later, as these original developers took jobs working on free
software at companies like Red Hat and Google, that FSF turned its
primary attention to advocacy issues.
The non-profits
Today, Kuhn said, the majority of free software is written by
for-profit companies. Although that situation is a boon for free
software, the resulting code bases tend to drift in the direction of
the company's needs. He then quoted Samba's Jeremy Allison (a Google
employee) as saying "It's the duty of all Free Software
developers to steal as much time as they can from their employers for
software freedom." Since not everyone is in a position to
"be a Jeremy," Kuhn said, some developers need to be
funded by non-profit organizations in order to mitigate the risks of
for-profit control.
But proliferation of free software non-profits can be detrimental: it
confuses users, and each organization has administrative overhead
(boards, officers, and legal filings) that can steal time from
development. There are several "umbrella" non-profits that attempt to
offload the administrative overhead from the developers, including
the Apache Software Foundation (ASF), Software in the Public Interest
(SPI), and the SFC.
In addition to the administrative and legal functions of these
organizations, each has some mechanism for funding or underwriting
software development for its members. Donations to the ASF go into a
general fund, from which individual member projects can apply for
disbursement for specific work. SFC and SPI use a different model, in
which each member project has separate earmarked funds.
Most of SFC's disbursement goes toward funding developer travel to
conferences and workshops, Kuhn said. It also handles financial
arrangements for conference organizing, Google Summer of Code, and
other contracts, but the most interesting thing it does is manage
paid contracts for software developers. Typically these contracts are
fixed-length affairs that raised targeted funds for the contract
through donation drives — as opposed to, for example, earmarking
funds that accumulate through an ongoing donation button on the
project's web site.
Fundraising successes
Kuhn recounted several recent success stories from different SFC
member projects. The first was the Twisted engine for Python. Back
in 2008, the project was confronted with a familiar scenario: it was
successful enough that many core developers got high-paying jobs
working on Twisted consulting, which in turn led to bit-rot of core
functionality. The project decided to hold a fundraising drive, and
collected enough donations to pay founder Jean-Paul Calderone to work
for two years on bug-squashing, integration, and maintenance of the
core — work that was vital to the project, but not exciting
enough to attract a full-time position from the typical corporate
Twisted user.
In 2010, SFC did a similar fundraising drive to pay Matt Mackall to
maintain the Mercurial source code management system. Mackall said he
was able to support himself full-time on Linux kernel-space
development, but that it was hard to repeatedly "context
switch" to Python userspace and work on Mercurial. The SFC
fundraising drive funded Mackall full time from April 2010 through
June 2012.
The PyPy Python interpreter project launched three successful
fundraising initiatives in one year to support specific development
projects. The initiatives for PyPy's Py3k implementation of Python 3
and its port of the Numpy scientific computing package each raised
$42,000 in drives held a month apart in late 2011. The project has
also raised more than $21,000 and counting this year to fund
development of software transactional memory support. Kuhn related
that he had been concerned at one point that the frequency of the
fundraising drives would wear out the potential donor pool, but the
project forged ahead, and SFC is now funding four PyPy developers.
Fundraising challenges
A member of the audience asked what SFC thought about using
Kickstarter for fundraising, to which Kuhn replied "who is going
to Kickstarter for Python stuff who isn't also reading your
blog?" PyPy's recent success, he explained, probably owes more
to the fact that PyPy is a hot commodity in Python circles right now.
It has little trouble finding donors as a result, but by raising the
funds through drives hosted at its own site, it avoids having to pay
Kickstarter or another broker a potentially hefty cut of the
donations.
The tough part, he continued, is what to do when you are no longer on
top of the popularity bubble. Free software has a big "I gave
at the office" problem, he said. Many of free software's most
passionate users (and thus potential donors) already spend their own
time working on free software. Consequently, they react to
fundraising efforts with questions like "I code all day long, now you
want me to give money, too?"
Kuhn did not offer any simple solutions to the ongoing fundraising
issue, but clearly there are none. Like Yorba, SFC is interested
in exploring the possibility of funding free software projects, which
makes Kuhn's report on SFC's successes an interesting counterpart to
Yorba director Adam Dingle's examination of other funding methods.
It is clear that SFC's success stories differ from generic Kickstarter
or bounty-style drives in a few key respects. First, they are tied to
funding work by well-known contributors with good standing in the
projects — often key maintainers. Second, they are
tied to a development contract of specific length. But they still
differ in other important details: although the PyPy initiatives were
also tied to a specific feature set, the Twisted and Mercurial drives
were done to fund the harder-to-price tasks of bug fixing and routine
maintenance. Free software development is not a homogeneous
process, so there is certainly no one-size-fits-all answer to the
fundraising question. But it is reassuring to know that organizations
like SFC (with its commitment to software freedom) can still find
success where money is involved.
(
Log in to post comments)