Crowdfunding free software
Small companies or individuals often have problems raising capital or getting loans and crowdfunding has emerged as the new way for them to get funded. All kind of projects and products from music to smartwatches have gotten the funds they need to make their ideas a reality. Other have failed and yet still managed to raise incredible amounts of money, the biggest example of this being the Ubuntu Edge.
It’s fitting that the project that has raised the most money of all crowdfunding campaigns was a project related to free software that also failed. Despite the hope of some, including Stallman himself, crowdfunding has not significantly changed free software development or help fund many projects. Why?
The incentive structure
Crowdfunding campaigns come with perks that vary depending on how much you contribute. In practice, however, crowdfunding campaigns are essentially pre-orders that help finance the development of the project, i.e. the perk that absolutely dominates any crowdfunding campaign is the one labeled “get insert product here when is done”. Moreover, this perk also comes with a lower price relative to the final price, in other words pre-order it and you get a discount. Let’s call this the get it perk.
That most of the funds obtained through crowdfunding come from the get it perk is bad news for free software projects. It should be obvious that by its very nature free software is incapable of offering a get it perk, the product will be free to everyone if the project ever reaches a stable state.
Software v. “Hardware”
Unlike most products, software usually doesn’t have an end state per se. You reach a stable version, but that’s rarely the final version. Imagine a crowdfunding campaign from the guys behind GNOME or KDE, what exactly means “KDE is finished”. Unlike making a watch of which you make a model and then you send it to the buyers, software is often in development for an indefinite amount of time.
People also have an intuitive grasp about the nature of “physical” products, you can very likely crowdfund the first version of your smartwatch and then a year later, if you want or need to, crowdfund the second version without any regular person feeling they’re getting ripped off. Free software faces yet another issue, not only we can’t offer a get it perk we would also need to run a crowdfunding campaign every now and then without people feeling they’re getting cheated.
Some pieces of software avoid this last problem because they’re often perceived more like “physical” products, things like games for example are not expected to be developed indefinitely and people pay for new installments of a serie which sometimes amounts to a map pack (maybe the difference in perception is because they’re still often distributed through physical mediums).
It doesn’t work for existing pieces of free software
If your piece of free software already exists, how on Earth are you supposed to crowdfund it? In crowdfunding as it exists today, the only thing you can aspire to is trying to raise funds for a new particular feature, something like “if we get insert goal dollars we will implement insert feature“. But this is clearly suboptimal, there’re countless of possible features for complex applications and doing a crowdfunding campaign for each feature individually is obviously tiresome, time consuming, and divides your supporters among all possible features. It also requires constant attention from your users.
This usually means you can at most ask funds for one feature at a time, otherwise you may end up with a hundred crowdfunding campaigns that never reached their goal. This also means you need to do new crowdfunding campaigns all the time.
So crowdfunding as is currently practiced isn’t particularly free software friendly, but can we fix it? I think we can, the following is what I believe we can do.
A different crowdfunding ethos
As I said at the beginning, thanks to the get it perk, crowdfunding is basically pre-ordering. But pre-odering makes no sense for free software. Instead the philosophical aim should be not to get a product when it’s done but to finance the constant development of a cool product. In other words, instead of paying for a product we pay for the product to be developed.
Is there really a difference? Of course there is! When you buy a laptop you’re not funding the development of the laptop, you’re just buying one. When you’re paying for a piece of custom software you’re paying the developer to develop something you want, it doesn’t matter if it’s free or proprietary software you need to pay somebody to develop it. Of course, I want custom software (and software in general) to be free software and since custom software isn’t commercial there’s no reason it shouldn’t be free.
So the ethos would be this: treat all free software as custom software. The contributors are your clients funding a piece of software they want to see developed and that wouldn’t exist otherwise.
A different funding model
Currently you set a goal and people contribute. There’re flexible and fixed campaigns. In the former, you get the contributions regardless of wether you reach your goal or not, in the latter you only get it if you reach your goal. This last one is the most popular, likely because it makes people feel safer. So more often than not if you reach your goal then you start shipping your product and giving people their respective perks (that as we’ve established mostly means you ship them their pre-orders).
This obviously contrasts with the ethos we need. Therefore, we need to flush the traditional crowdfunding model (for free software, it works fine for other stuff) down the toilet.
Here’s what I believe could work for us:
Instead of having one goal that needs to be surpassed for the product to ship, we need a monthly setting. Instead of making a campaign each year, crowdfunding in this free software oriented platform would be subscription based. You pick any amount you want to give each month to the project(s) of your choosing and you could obviously cancel at any time.
A different perk structure
What about perks? Perks are the basic incentives of crowdfunding campaigns and we can’t have a get it perk or anything similar in a subscription model of crowdfunding. My proposal is to have a perk bank. Here’s how it goes:
As in traditional crowdfunding there’re perks you can access depending on how much money you’ve contributed to the project. The perk bank is what keeps track of how much money you’ve contributed, so if you donate $1 each month for a year, you can get a perk of up to $12. If you contribute $10 each month after year you can get a perk of up to $120 or several smaller perks. Just to clarify, the previous is just an example, you wouldn’t need to wait a year you could get your perks any time you want (including saving for more than a year).
This perk structure incentivizes monthly contributions as opposed to bigger but one time contributions, which is exactly what we want to fund the constant development of a piece of free software.
Stretch-like funding goals
Instead of having a simple “yes/no” framework, projects would have a a sort of meter of funding with multiple levels. It would be structured something like this:
If only the most basic goal is reached every month, the project can only afford bug fixing and only a few new features. If the next level is reached then the project can implement this or that other feature, if it reaches the next one they can afford to add even more of them and so and so on.
This sort of multiple-goal structure clearly shows people what they’re paying for: They’re paying for the application to be developed and the more resources developers have the more things they can do. Mixing the last two elements, it occurs to me one successful perk could simply be the ability to vote for the next features to be included in the meter.
Could something like this change free software development?
I think this could finally break the infamous “but how are programmers supposed to make a living developing free (“non-custom”) software”. Instead of paying a Adobe for a copy of PhotoShop people could pay the developers of The GIMP to improve it. This would be economically more efficient as Adobe has already paid the developers their wages when you buy Photoshop and is getting a big profit on top of it. In other words, funding software this way would be way cheaper than it is to buy commercial software. Moreover, it’s moronic to artificially limit the copies of a piece of software if we already paid for its development since the cost of making a copy is essentially zero.
If some members of society want a really good image editor with this and that feature, they can pay some developers to make it. The application (with the said features) simply wouldn’t exist if they don’t finance it. Nobody benefits if we artificially limit the number of copies or if it’s proprietary software either, as we’ve already paid for its development (because we needed it to exist), it’s perfectly rational to make it free software. Not only that, but as Stallman would argue, it’s very likely it would be immoral not to make it free software.