Defining "sustainable" for an open-source project
Bradley Kuhn of the Software Freedom Conservancy (SFC) first heard the term "sustainability" being applied to free and open-source software (FOSS) four or five years ago in the wake of Heartbleed. He wondered what the term meant in that context, so he looked into it some. He came to SCALE 17x in Pasadena, CA to give his thoughts on the topic in a talk entitled "If Open Source Isn't Sustainable, Maybe Software Freedom Is?".
After wondering what was meant by "sustainability", Kuhn looked up definitions of it, first in Google, then in Wikipedia, which is freely licensed, unlike Google's dictionary. Both definitions agreed that "sustainability" is maintaining a balance between resource usage and future needs, particularly with respect to the environment—all of which sounded good to him. So his first thoughts about FOSS sustainability were that people were working on software to help the environment be more sustainable, perhaps by writing forest-management software or software to assist activist organizations. But that is not what was meant.
Money
There is no clear definition of "FOSS sustainability", he said. The closest he could get to one, though, is that maintainers of FOSS don't get paid enough money and/or are not paid often enough. So FOSS sustainability is about changing that situation, which he is in favor of; much of his career has been spent figuring out how to ensure that people get paid to write FOSS. The idea that the sustainability folks have is that we should be putting money into FOSS projects like the way venture capitalists (VCs) put money into software startup companies. That kind of money infusion would fuel the rapid growth of these projects. He is not a fan of that model for building software, but it is the standard way that the industry funds new software.
$ sudo subscribe todaySubscribe today and elevate your LWN privileges. You’ll have access to all of LWN’s high-quality articles as soon as they’re published, and help support LWN in the process. Act now and you can start with a free trial subscription.
He tends to think of FOSS projects more like restaurants than like VC-funded startups. FOSS projects are often a labor of love, much like many restaurants. Most restaurants do not make incredible amounts of money; they are generally considered successful if they can continue to pay all of the employees and cover the other expenses without much left over. There are counterexamples, however, including chains like McDonald's that make bundles of money. Just as with restaurant food, he doesn't want "McDonald's software"; he would much prefer the "local restaurant version of software" that is crafted for its community.
After Heartbleed, a large number of companies "freaked out" about open source, but it was different than the usual freak out. Historically, companies got concerned when they realized that there was open-source code in their infrastructure and products. This time it was concern that the "crazy free-software hackers" working on the code that went into their products were not being supervised or controlled. That led to the companies thinking that maybe they needed more control over these FOSS projects, so that, hopefully, situations like Heartbleed did not recur.
He noted that he would be somewhat critical of companies and the organizations they form in this part of the talk. He said that along the way he has been accused of being a communist and of hating capitalism. He does not hate capitalism, but believes that a good culture has a counterbalance to "unbridled capitalism". We learned through the early days of the industrial revolution that allowing free rein to capitalism had some terrible effects on society, so constraints and watchdogs were added into the mix. Unfortunately, in his view, pushing back against unbridled capitalism has been lost in the US; but it has also been lost in the FOSS world, he said.
Watershed
Heartbleed was a watershed moment for companies and FOSS; lots of money suddenly became available to be pushed at FOSS projects due to Heartbleed. That process had already started before Heartbleed for other reasons, but the security incident really accelerated the process. Companies wanted to channel money to FOSS projects as a means of controlling them, Kuhn said; the companies couldn't simply hire all of the developers, which is the traditional way to gain control of a project. Much of this money has been funneled through the trade associations (e.g. the Linux Foundation and the Eclipse Foundation) that have been created by companies with an interest in FOSS.
Even after all the "oodles of money" that were aimed at these projects, it still did not make FOSS sustainable. There are still meetups and an annual conference devoted to the topic of open-source sustainability. "The problem has not been solved", he said. He asked: is more corporate money what we need? Is this really a money problem? He is not completely convinced that it is a money problem.
He gave one example to illustrate how much money he is talking about. In 2013, he attended the OpenStack party at OSCON. It featured food, cakes and cupcakes with logos from OpenStack members, and a giant open bar where you could get artisanal mojitos, margaritas, and other drinks. While he did admit to getting in the cupcake line more than once, the party was "really over the top" and not what he had come to expect from parties in the open-source world. In addition, there was a giant table with hundreds of small Fiji water bottles, which certainly failed on the environmentally sustainable metric. The party obviously had an enormous price tag.
That led him to look into the Form 990 for the OpenStack Foundation. All non-profit organizations in the US have to file a Form 990 with the tax authorities. The most recent he could find for OpenStack was 2016 [PDF], which showed it had spent nearly $30 million for the year. In fact, OpenStack had a loss of $6 million in 2016, which is roughly six times the SFC annual budget.
He dug further into the form, noting that there were fairly large outlays to several other companies and organizations, including law firms, web-site development companies, and others. Around $250K was sent to another trade association, the Linux Foundation, for "community development", which is also not getting code written. The list of the highest salaries showed a number of executives in the organization, with salaries ranging from $200K to $400K, who were not part of developing the code according to several OpenStack developers that Kuhn talked to.
As noted on its 990, the OpenStack Foundation is a trade association, which is a 501(c)(6) organization in the US; it is something that is formed by a group of companies to promote common business interests. A classic example of this would be the Pasadena Chamber of Commerce, which gathers up money from various businesses in the city and uses that to promote the city, provide maps for tourists, and the like; it is "totally reasonable activity" that helps local businesses.
These 501(c)(6) organizations have become the most popular model for non-profit work in the FOSS world; there are many examples of these organizations in our community. Trade associations exist to promote the interests of the for-profit companies that are the members of the association; those interests may or may not align with the interests of the community or the general public.
If you contrast that with the 501(c)(3) designation that is used for charitable non-profits, the difference is striking; 501(c)(3) organizations are set up to promote the public good, not the interests of a smaller group, but to "do things that help everybody". He noted that he is biased, because he works for a charitable organization, but he does like that when he gets up every morning he goes to work to "help everyone equally": individuals, companies, hobbyists, the employed and unemployed, commercial concerns, non-commercial entities, and so on.
Historically, organizations in the FOSS world have been charities; the first, the Free Software Foundation, was started that way back in 1985. "That was the way you formed organizations in our community for a very long time", he said, "until companies said 'let's put money together to influence this stuff'". In the 1990s and 2000s, a lot of free software was written sustainably.
But the free software in those days was not written in the VC style, with growth graphs that "look like hockey sticks". The projects grew slowly but surely; Linux is a great example of this, he said. Historically, Linux was a slow-moving project with a relatively small number of participants, but that has all changed. Linux also used to be a counter-culture project, but is no longer in his view; beyond that, the project is shunning counter-culture influences, which is troubling to him.
Kuhn feels that there is "kind of a 'slash and burn' attitude toward open source" these days. Companies have come to open source, but want things to work the way they are used to things working: with startups, rapid growth, and so on. An interesting thing about slash-and-burn agriculture is that it works great in the short term: the burned vegetation makes great fertilizer for next year's crop. But for long-term sustainability, it is terrible. This is a new problem for FOSS that was not really present before. Thinking in terms of this quarter's numbers and how to accelerate growth are, arguably, not even sensible for for-profit companies, but they are likely not at all right for most FOSS projects.
Slow, steady growth
As a kind of counterexample, he pointed to the phpMyAdmin project, which is a PHP program for doing MySQL administration via the web. It is a long-running project that was started in late 1998 and joined SFC in 2013. One of the things that SFC does for its member projects is to try to help them become sustainable. It does that by helping the projects raise money and to use it in a sustainable, not slash-and-burn, fashion.
The phpMyAdmin project raised $16K in 2013 and spent none of it on development. The next year it raised almost double that, but only spent $3K on development. That continued for the next few years; income kept going up, as did the money spent on developers, but the money spent was always a fairly small fraction of what was brought in. By 2016, the project was funding three developers for part-time work for a total of $21K.
He noted that the contractors doing the work were in places where they didn't need a tremendous amount of money to live comfortably, so they were willing to work for substantially less than normal US wages, in part because they got to do something they loved to do. But Kuhn did note that they were each making more than his wife does at a domestic violence shelter, though her position requires a Masters degree. Her boss supervises 40 people and has been working in the field for 40 years but, at $60K, makes less than nearly any software developer he knows.
He is a bit disturbed by this notion that salaries have to be at the high levels expected by US developers, which seems to permeate the FOSS sustainability effort. He said that he is often accused of wanting developers to starve, but that is not true at all: he wants people to get reasonable pay for reasonable work, to have health care, be able to live a comfortable middle-class life, and so on. But if being sustainable as a project means paying salaries at Silicon Valley levels, it simply will not work—it is not something we should bring back to FOSS, he said. We should look at what people need to live comfortably, while working on something they enjoy.
PhpMyAdmin is doing an "amazing job" building that kind of project, Kuhn said. It is not a "jet-setting project" with a high profile yearly conference; there is an annual developer meeting that has around 20 attendees. It is written in a language (PHP) that is relatively unpopular, doesn't have wildly over-the-top parties, and doesn't pay "giant salaries" ($500K, say) that some people are getting to work on open source. He thinks it is great if people can get those kinds of salaries, but the idea that we should strive to pay those kinds of salaries is highly problematic.
However, phpMyAdmin is a good example of doing sustainable FOSS. This is what SFC has been trying to do for its projects, though he again noted that he is biased since that is where he works. Instead of the accelerating growth pattern favored by much of the software industry today, phpMyAdmin has had slow, steady growth that is modeled after many free software projects that came before it.
OpenStack and phpMyAdmin are simply the examples that he used; there are others that fall elsewhere on the continuum of different funding and spending models. The point he is trying to make is that a sustainable project may not necessarily follow the VC-style path, with huge salaries and hockey-stick graphs; that may well not be the right path for a lot of projects. Many long-term FOSS projects have found a way to be sustainable without going down that road.
FOSS projects as small towns
He finished his talk with an extended metaphor based on the movie "It's a Wonderful Life". Kuhn would like to be known as "the George Bailey of free software" after he is gone, he said with a grin. Bailey is the protagonist of the movie who spends his whole life in a small town keeping the local bank afloat so that townspeople can buy and build their own homes, rather than rent them from the villainous Mr. Potter. Kuhn warned that his talk contained spoilers for the film, which was released in 1946; he noted that he is "a little bit obsessed" with the movie.
Potter owns nearly everything in the town, except Bailey's bank; in the FOSS world, we have our Mr. Potters, Kuhn said. These are "corporate tyrants" that exist within our world, but there are far more people like Sam Wainwright, one of Bailey's childhood friends. Wainwright is kind of a jerk, but a successful one who is, at least ostensibly, still a friend of Bailey's. At the end of the film, after the townspeople raise the funds necessary to keep the bank solvent, Wainwright offers an advance to cover the loss. At that point, it actually isn't needed and, as a loan, comes with strings attached. Wainwright is well-meaning and Kuhn thinks there are a lot of well-meaning people in FOSS who are pushing money into open source, "but there's strings attached".
He would like to see a diverse world of how free software is developed. He works for a charity and raises money from "townspeople" who like the work that the projects are doing—it may not be much money, but can be enough to sustain a project like phpMyAdmin. He would like to see more of that being done in the FOSS world. If all of the money to develop FOSS comes from large for-profit companies, the software will have a tendency to only focus on the computing needs of those companies.
It is a paradox that more and more FOSS is being created, but that it is getting harder to avoid proprietary software in our lives. Kuhn and his SFC colleague Karen Sandler gave a keynote at FOSDEM this year on just that topic. The problem is that much of the FOSS that is being created is in very specific domains, solving problems that companies have.
As a community, we need to consider ways to prioritize the needs of the general public, not necessarily the needs of big business, he said. While it isn't a perfect analogy, most FOSS projects are kind of like small towns. They are a small community of people who are working together for the most part. Small towns, like FOSS projects, have various problems but, given the option, he would choose a small town over a corporate campus any day. Small towns need George Baileys, however, so he would like to see lots more of those in FOSS—and fewer Sam Wainwrights and Mr. Potters.
The slides of the talk are available, as is a YouTube video.
[I would like to thank LWN's travel sponsor, the Linux Foundation, for
travel assistance to Pasadena for SCALE.]
Index entries for this article | |
---|---|
Conference | Southern California Linux Expo/2019 |
Posted Mar 19, 2019 19:40 UTC (Tue)
by halla (subscriber, #14185)
[Link] (3 responses)
I've been managing to pay a full-time developer for Krita since 2013, on donations, myself since 2016 (more or less, I got through my savings during some dark periods), another person since 2017, and this month a fourth person has started. I've also funded the initial development of training materials. Nobody is earning Silicon Valley money, but on the other, we're having lots of fun.
The Blender Foundation is doing extremely well with their new development fund system, something I'm very eager to copy as well.
Even Inkscape, which long held out against funding development, seems to be considering starting to fund some development because they're recognizing that there are just things that are too hard to develop in one's spare time -- like we did when we hired Lukas Tvrdy in 2009 (https://dot.kde.org/2009/12/02/krita-team-seeking-sponsor...)
The GNOME Foundation is sponsoring development of GTK. There are quite a few other examples, each with their own particular quirks, of course.
And, yes, there are still plenty of free software organizations that aren't trying to fund development, but only collect funds for things like sprints and hardware -- which I do feel is indeed a bit of a pity.
Posted Mar 19, 2019 20:03 UTC (Tue)
by bkuhn (subscriber, #58642)
[Link] (2 responses)
Admittedly I haven't vetted your project (Krita) in the way I did my few examples in my talk, but from what you describe, this sounds like exactly the kind of "real sustainability" that I was talking about. I see Krita has a non-profit foundation with an affiliation to a for-profit company, similar to what Blender does. I'd love to see someone write more about this non-profit model, as it seems to be unique to the Netherlands and you're right that early results on these models look interesting and promising.
I'd note also that Inkscape is a member project of Conservancy. I didn't use them as an example as they are just beginning the plans (as you linked to), whereas phpMyAdmin has been executing on their plan for some time, but I would expect Inkscape will eventually do something similar.
Posted Mar 19, 2019 20:33 UTC (Tue)
by halla (subscriber, #14185)
[Link]
So we had to split up our activities into a non-profit that receives donations and doesn't have to pay VAT over expenses made outside the Netherlands in the Netherlands. (Basically, where Dmitry lives, there's no VAT on coding, and where Ramon lives there's no VAT on producing art.)
The commercial activity -- a little bit of sales of training materials, income from Steam and the Windows Store and the occasional project we do together with Intel, is handled through my company. When work is done on those projects, my company is billed, otherwise the Krita Foundation.
We're still running on a shoestring budget, of course, but that's fine. We probably could do more with donations, given that we have about 2000 euros a month in donation at 2,000,000 downloads a year. Our yearly fundraiser provides the other half of the donation income.
Posted Mar 20, 2019 1:28 UTC (Wed)
by KaiRo (subscriber, #1987)
[Link]
All that said, thanks for all your work in this area from a happy supporter of LWN, SFC, and Mozilla. ;-)
Posted Mar 20, 2019 10:43 UTC (Wed)
by nilsmeyer (guest, #122604)
[Link] (11 responses)
Posted Mar 20, 2019 11:56 UTC (Wed)
by pizza (subscriber, #46)
[Link] (5 responses)
But on an individual level, donations need to hit a non-trivial threshold (on a recurring basis) before they will allow someone to quit $dayjob in favor of F/OSS. One has to keep a roof over one's head and food on one's plate, after all.
Posted Mar 20, 2019 12:34 UTC (Wed)
by hkario (subscriber, #94864)
[Link] (4 responses)
Posted Mar 20, 2019 13:38 UTC (Wed)
by halla (subscriber, #14185)
[Link] (3 responses)
Posted Mar 20, 2019 13:51 UTC (Wed)
by pizza (subscriber, #46)
[Link] (2 responses)
Posted Mar 20, 2019 14:31 UTC (Wed)
by halla (subscriber, #14185)
[Link] (1 responses)
Besides, projects that are useful for end-users instead of companies is exactly what Bradley was talking about: "As a community, we need to consider ways to prioritize the needs of the general public, not necessarily the needs of big business, he said. ".
And that's what I'm doing.
Posted Mar 20, 2019 16:44 UTC (Wed)
by pizza (subscriber, #46)
[Link]
I spend my F/OSS time immersed in printing-related stuff. It's an utterly necessary requirement for most desktop users, but it's rarely given any attention unless it doesn't work. It's also something that the general public won't fund, because they already paid the printer manufacturer; why should they be expected to pay more to use it?
In this space, any distinction between "big business" and "general public" is artificial; _everyone_ benefits from printing that JustWorks(tm) while exposing the full capabilities of the printers. However, _someone_ has to do that work, and if not for "business" users, a lot less would get done, to everyone's detriment.
Posted Mar 20, 2019 13:33 UTC (Wed)
by Karellen (subscriber, #67644)
[Link] (1 responses)
Posted Mar 21, 2019 7:53 UTC (Thu)
by nilsmeyer (guest, #122604)
[Link]
Posted Mar 21, 2019 0:11 UTC (Thu)
by bkuhn (subscriber, #58642)
[Link] (1 responses)
I probably should have noted at the start of my talk that I was somewhat assuming folks hearing it knew the basics of how fiscal sponsorship is generally set up in the FOSS world right now. Different organizations have different structures that's orthogonal to the (c)(6) vs. (c)(3) issue (which I covered). For example, Apache Software Foundation is also a (c)(3), but they do *not* accept earmarked donations for specific Apache projects. Conservancy, SPI, GNOME Foundation *do* accept earmarked donations.
So, in the latter case, you can donate specifically to the project rather than generally to the organization. In fact, in my slides during the talk, the numbers I showed for phpMyAdmin were *specific* to phpMyAdmin (donations that Conservancy received specifically earmarked for phpMyAdmin).
Posted Mar 21, 2019 7:53 UTC (Thu)
by nilsmeyer (guest, #122604)
[Link]
Posted Apr 7, 2019 13:50 UTC (Sun)
by ezechiel (guest, #131327)
[Link]
Posted Mar 21, 2019 14:50 UTC (Thu)
by dunlapg (guest, #57764)
[Link] (1 responses)
"Restaurant-style" sustainability is great when it works, but there are a couple of issues I see at the moment with "restaurant-style" sustainability.
First, there's sometimes a fairness issue. Imagine you and your small band of people were the ones who wrote docker / kubernetes / mongodb, and $BIGCORP came along, sold it in a cloud offering, made billions of dollars and didn't pay you a penny. I mean, sure, at some level you're making the world a better place; but someone else is getting quite rich from your effort.
Secondly, there's the on-ramp: How do we get developers onto a "restaurant-style" payroll? At the moment it seems like someone either starts a project in their free time and slowly starts accepting more donations, or makes a "leap" to code full-time for a period, hoping that eventually it will be profitable. They're probably not in a position to do market research to determine whether it will or won't be; and they may not be in a position to invest money and time and career in the risk that it won't be. Working for someone else externalizes those risks. If we really want to see a world full of individuals / small organizations doing their little bit of sustainable open-source, we need a way to make that on-ramp easier and less risky.
Finally, there's factionalization (<- wrong word; can't think of the right one). I'd be happy to pay $50/month to someone to make sure that all the FOSS software I used kept running, and invest in new projects and new development. But I've got 3000 Debian packages installed on my dev box at work; there's no way I'm going to try to figure out how to donate money individually to all of the people or projects that maintain that software. Inkscape or phpMyAdmin are the kinds of projects that stand out enough to their users to attract a critical mass of monetary contributions; but what about all the tiny libraries or tools in there?
Posted Mar 21, 2019 18:28 UTC (Thu)
by gfernandes (subscriber, #119910)
[Link]
So you'll inevitably also be able to roll your own, and $BIGCORP would necessarily have to sell a service (not a product).
With regards to the on-ramp, it's very project dependent, I guess. And FLOSS always starts with "scratching an itch". So market research is irrelevant. And time usually tells whether the itch has wider appeal or not.
Finally, factionalisation is simply the same as "standing on the shoulders of giants".
No project does everything from scratch. Almost all software projects require intensive work up front, with the intensity and frequency going down quite rapidly after a certain level of function is reached.
Funding therefore may not be able to follow that pattern anyway. Who will fund $MYFANTASTICNEWVIDEOEDITOR before it exists?
Bottom line: sustainability is certainly achievable (as others have pointed out). We wouldn't be here if not.
Posted Mar 21, 2019 18:22 UTC (Thu)
by kpfleming (subscriber, #23250)
[Link] (1 responses)
Posted Apr 1, 2019 16:08 UTC (Mon)
by ssmith32 (subscriber, #72404)
[Link]
- the weird avoidance of stating your actual position. Just put a disclaimer that you don't represent your company, or don't bother mentioning it at all.
- not sitting around talking about controlling things , sure, that's technically true, but has nothing to do with what's being discussed: whether there was, in fact, a desire to control, and how usefully that desire was employed.
- asking ppl do things for money is a common way of exerting control.
In the end, I personally think that things got better, despite the strings attached, so 👍, but, if we can't honestly talk about the process used, it makes it a lot harder to improve things.
Posted Mar 29, 2019 14:07 UTC (Fri)
by mjbright (guest, #1624)
[Link]
I loved the sentence
So true !
Posted Apr 1, 2019 16:49 UTC (Mon)
by sumanah (guest, #59891)
[Link]
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
Have you looked at liberapay?
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
Problems with the "restaurant-style" sustainability
Problems with the "restaurant-style" sustainability
I will have to show a functional *and reasonably superior* Video Editor _before_ I can expect any funding at all. We're back to scratching itches!
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
Defining "sustainable" for an open-source project
"Thinking in terms of this quarter's numbers and how to accelerate growth are, arguably, not even sensible for for-profit companies, but they are likely not at all right for most FOSS projects."
Defining "sustainable" for an open-source project