Opinion: How to Fund Open Source Projects
Developers have to eat. But Open Source software is not easy to sell, because it benefits everyone. How can we solve this problem?
Do Open Source Projects Need a Business Model?
Open Source software is there for everyone. You only have to write it once, then everyone can use it for free. Through Open Source software, developers work for the common good, not only for a paycheck.
Of course this does not change that developers have to eat and need money to pay their bills. After a 40-hour-week of proprietary coding, not many want to spend the rest of the day coding for free.
So most Open Source software right now is written by coding enthusiasts who are not done with their passion after 8 hours in the office, or by hobbyists who earn their living otherwise.
In some areas, Open Source projects have successful business models. This is good, it makes the dreams of many developers come true, who would love to write Open Source software for a living.
Different Business Models for Different Environments
One way to earn money with Open Source software is to fulfill enterprise requirements. Large companies have budgets and care for compliance; this is a good way to get high-quality software, because you have to optimize performance and solve interesting problems for those companies.
Other ways are securing public funding, e.g by the European Union. Thanks to various politicians, the EU and some governments are ready to pay for public code. They also fund Open Source software in the name of science. Only the bureaucracy to apply for the funding can be complicated.
Crowdfunding can also work – Purism raised over 2 million for their Open Source smartphone, which is awaited in 2019. They also will be able to sell the hardware, which can pay for the development of the software, too.
Finally, some web projects also have the choice to become part of the quite toxic advertising bubble. Everybody has to make a living, but personally, I would rather write proprietary code than contribute to surveillance capitalism.
There are some projects which are neither interesting for public funding, nor enterprises, nor can they be commercialized for end users. They are still important for the Open Source ecosystem.
Good examples are crypto messengers like Delta Chat or Briar, replacements for Google surveillance products like F-Droid or LineageOS, and countless small libraries that don’t get the effort they need.
And if Developers Get Paid by Other Projects?
In February, this blog already reported on ownCloud’s upstream contributions – developers who get paid by ownCloud contribute to other projects, e.g. for maintenance. Thomas Müller and Thomas Boerger are maintainers for SabreDAV and Drone.
Another good example is how Dominik Schmidt from ownCloud and Hannah von Reth collaborated on KDE Craft.
Many Open Source companies give their developers a pass for 20% of their time. They can use it for learning to improve their code, playing around with other concepts, or contributions – and they can present their work to the others afterwards.
This way, the ecosystem benefits from the players who are lucky to have a business model – and those players benefit from an ecosystem of good software to build upon. It is a win-win-situation, yes – but it isn’t a vision.
A Long Term Solution to the Problem of Open Source Funding?
Contributions and collaboration across different projects are cool – but they don’t solve the fundamental problem. They may advance a project, but they don’t pay a developer’s rent. The question how to fund Open Source programming remains.
My favorite answer to this question is an unconditional basic income (UBI). Apart from its other advantages, giving everyone a sustainable and sufficient income each month would solve the developer’s rent problem.
It would give developers and other humans the opportunity to work on whatever they want to do, instead of what generates profit. As Open Source developers, we know perfectly well how the common good and profit are sometimes incompatible.
This does not solve the financial problems of all developers, of course – people with children, additional medical needs, or people living in an expensive city might need additional funds. Also testing devices can be too expensive.
Well, if a developer needs more money than what the basic income would provide, they can still work on commercial projects in the meantime. It isn’t exclusive, and you don’t lose it if you work additionally.
The basic income would still take away pressure from developers. People would have the time sovereignty to choose what they want to work on.
This is not the space for a thorough discussion of arguments pro and contra a basic income, the Internet is already full of it.
Only one thing is clear to me: upstream contributions can solve the problem of Open Source projects not having enough funding – but they do not solve the problem of Open Source developers not having enough money.
No one will just give us a basic income, we, the Open Source community, have to fight for it. We could wait forever until politicians finally realize how important Open Source software is for our democracy. Or we join the other groups which demand a basic income, and make it happen.
Stick Together and Contribute!
Until everyone gets a basic income, it is even more important that Open Source developers collaborate. If you find a bug in one of your dependencies, don’t write a workaround – write a fix. And always be excellent to each other.
Respect to those who don’t get paid for writing Open Source software – you are heroes. We use your code, you use ours – let’s work together to create the software the world needs.
In summary, some of us have more responsibility here than others: to be able to pay their rent, commercial Open Source projects build upon a giant ecosystem of other Open Source software. They should show an effort for the ecosystem, too.
What do you think? Leave a comment below or share this on social media!