A few thoughts about direct and indirect funding for free software development.
Proprietary software is often sold at retail, which makes for a diverse economic model. Let’s say that a million people buy a $10 yearly license for your iWidgetFactoryPro™. This year you’ll have $10,000,000 dollars, much of which can be used to fund future iWidgetFactoryPro™ development. If you lose fifty thousand users next year, you’ll have $500,000 less to work with. That’s a lot of cabbage. But you’ll still have $9,500,000, enough to carry on your product development, perhaps with a slightly reduced scope. Retail pricing spreads the risk around.
Most free software is not sold in a retail fashion. A single company might pay for the development of a tool, and then decide to release it under a free license. Or a tool’s builders may fund development themselves, with their own money or their own free time. Or a project that starts off as a labor of love may become important enough that a number of companies volunteer resources to improve it. In any of these cases, the funding model is highly centralized. Instead of a million users who share the financial burden roughly equally, as with retail software, a free tool may have a million users but just a small handful of funders, each of which is footing a disproportionately large part of the bill. It’s a precarious setup not merely because the sheer number of funders is so small, but also because the costs are distributed in a way that’s so uneven – and unfair! – that individual funders have arguably more inclination to walk away than the retail licensee who’s paid a lousy ten bucks for a copy of iWidgetFactoryPro™.
The asymmetrical funding model for free software is the cause of much hand-wringing among the individuals who maintain free software projects. How does a volunteer, a solopreneur, a small businessperson, an underfunded or unfunded Desperado, take on the huge and often unrewarding task of maintaining a popular project, while still managing to make money? My friend Daniel Bachhuber has written a number of posts recently in which he struggles with this problem, and is experimenting with a couple different models:
The key idea behind Sparks is to create a space where WordPress-based businesses can contribute to an open source roadmap, collaboratively prioritize, and then share the cost of development and maintenance […] When I explain the concept of Sparks to a prospective customer, they get it. It makes a ton of sense to share the burden of building and maintaining boring, business-critical infrastructure.
The strategy is to hedge against some of the instability of the “patronage” model – free software tools being supported by a very small group of generous funders – toward a more diversified financial base.
The structure of “Sparks” – crowdfunding, but where the members of the “crowd” are businesses with budgets – moves toward retail software in two ways that are worth considering. First, by getting interested individuals to take an equal share in funding the software, it tries to make the funding model more fair. Second, by tying the decision of which tools to build to the number of voters (or backers, or whatever) in support of that specific tool, it tries to make the funding model more direct.
Can this work? Direct funding models are kind of like health insurance exchanges: the economics only work if there’s a mandate that everyone participate. Proprietary software licensing is one such mandate. With free software, it’s an uphill slog, and a hard sell.
I have mostly given up on direct client funding for my free software work. There are a couple of interconnected problems:
- Clients can be convinced to pay for something new and shiny and released with public credit to their name. But fewer want to pay for maintaining something old and boring and anonymous.
- Once a project is released and in broad use, the client’s ongoing needs for improvement often (usually) diverge with the needs of the broader community.
- When you are a maintainer of a large software project, quid pro quo contributions – “we’ll pay you to add this feature to WordPress” – are fraught with ethical and practical difficulties.
- The things that clients want to build are not usually the things that I want to build, or the things that I think need to be built.
As direct funding has become less attractive and more difficult to manage, I’ve turned more toward indirect models. I’ve spoken and written at length about what I call “the reputation cycle”. This is the idea that time spent contributing to free software can improve your reputation, which allows you to increase your rates, which allows you to bill fewer hours, which allows you to contribute more time to free software. Over the last few years, I’ve ratched myself up to the point where I spend roughly 50% of my working time doing work that is not paid for by a client.
Or, at least, not paid for directly. Client work subsidizes free software work, but the subsidy is indirect. This indirectness avoids most of the problems sketched above. My decisions about how and where to contribute to the projects I’m involved with are made based on my own interests and my own assessment of project priorities and needs. Since the work is not being done under the aegis of any specific client relationship, I’m not bound by any specific client expectations.
If not framed correctly, the indirect model can feel vaguely dishonest. It involves charging a higher rate to paying customers, without providing any direct benefit for the increased cost. In one sense, this feeling is clearly misguided; the software I choose to work on in my “free” time is the very same software that powers my clients’ sites. They’re reaping benefits that are indirect – but not that indirect.
More importantly, the sense of dishonesty is misplaced because there’s no deception involved. The model is indirect, but it’s not implicit. My message for potential clients is pretty explicit: When you hire me, you are not only buying top-quality technical work, but you are also funding the more general improvement of the free software projects in which I’m involved. It’s part of the brand. It’s less Robin Hood – illicit redistribution of funds – than, say, buying organic milk: you pay more for a slightly better product, knowing that part of the extra cost goes toward the normalization of a system of production that’s superior to the conventional system.
Can this funding model – indirect, but explicit about it – be scaled? Probably not. Like patronage, it depends on the good will of a fairly small number of benevolent folks – developers and clients – to shoulder the burden of the other 99% of users. But there’s something noble about it too. A totally “fair” system, in which each user pays an equal amount to use a piece of software, ignores the fact that not all users have equal resources. One of the beauties of free software is that the generosity of those who can afford to contribute can benefit those who cannot.