(One of my summaries of a talk at the 2016 django under the hood conference).
You don’t do open source for the money. Django’s projected revenue (the DSF) is 200.000. Instagram’s is 3.200.000.000….
If you want to have funding for open source, money itself is not the problem. There is enough money. The real problem is access to money. As a home-owner, you can get a loan from the bank. As a start-up you can try and find investors. But as open source, there’s no clear way.
You could do things with tipping, bug bounties and so, but that just tries to grab a bit of ready cash, it doesn’t provide regular funding.
Many major open source projects were started by employees. Including Django! It is an environment where you can do some experiments and if they go wrong, you still have your regular job.
A further problem: maintenance of existing projects instead of starting something new. Maintenance is hard. Very good that the django software foundation managed to hire someone (Tim) to basically work on django maintenance. The last releases have been the first ones that happened on time :-)
We need to figure out four things:
Who needs money. Are there metrics? Can you rank projects when someone comes up to you and wants to give money to “some project”? No.
Numbers are important, for instance if you want to register as a non-profit institution. A good start is https://libraries.io/, which looks at library usage. “openssl is used by 66% of the internet, so it is important”.
Projects internally can be measured by project stage. Are they just starting? How many people are looking at it. If it is mature, how many maintainers are actively working on it? And so on.
What do they need money for? Here also, you need money for different things per stage. If a project is mature, you might need funding for maintenance or major refactorings. When growing, sprint funding might be more important.
How to fund them. How to pay, how to pay for what. Do you give directly to people? Or do you fund a project? The last might sound better, but it does come with lots of extra paperwork.
There’s a lot of legal standard process. You’ll need that. You should be registered as a non-profit, for instance, for donations to be tax-deductible.
If you fund projects: centralize efforts. Don’t have 20 different projects in the same open source area, combine it.
If you want to work on funding individual people: build opportunities for individual grands. There’s a lot of movement in this area right now.
We still need to figure out how projects can become financially sustainable. There’s no ready conclusion right now.
Who should fund them. So: who cares the most about protecting the open source commons?
Companies are logical. They need the open source commons for cheap resources and protection against competition. But they’re also beholden to commercial company goals.
Goverment is the the national steward of public goods. But they are risk-averse. And… many projects are translational. Does it make sense that the US government funds a Australian programmer?
Academia: they have a sustainable model for R&D, but the pace is slow.
Finding the right funder will probably be the last piece of the puzzle, after we’ve figured out the first three points.
So… we’re at the start of exciting times!
We got software producers to care about open source (1970s/1980s).
We got open source into the hands of interested users (1990s/2000s).
We got companies (like instagram) to earn tons of money (“outsized returns”) because of open source (2000s/2010s).
The last stage is to get that ton of company money into the hands of the software producers.
Photo explanation: fighting for funding? While visiting last weekend, we saw some re-enacters recording a movie at a castle in Monreal, Germany. Fun to watch.
My name is Reinout van Rees and I work a lot with Python (programming language) and Django (website framework). I live in The Netherlands and I'm happily married to Annie van Rees-Kooiman.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):