A systemic approach to finding funding for open source for not just 1 project, but 1000 projects.
From a Django Under the Hood in Amsterdam, November 4 2016. (Video of talk: https://www.youtube.com/watch?list=PLQdy7QUATciZ4V3g3iCTnG5fvkZkuNGyg&v=HokXBjDS_UA)
FOOTNOTES:
Slide 3: Graph is not actually real. Instagram’s estimated revenue is 16,000 times that of Django’s. Instagram estimate based on http://fortune.com/2016/01/25/instagram-3-billion-business-this-year/, Django's based on https://www.djangoproject.com/fundraising/.
Slides 5 and 6: http://david.heinemeierhansson.com/2013/the-perils-of-mixing-open-source-and-money.html
Slide 8: https://github.com/pybee/paying-the-piper/blob/master/README.md
Slide 20: https://www.youtube.com/watch?v=SAc0vQCC6UQ
Slide 23: http://www.citylab.com/cityfixer/2015/02/americas-infrastructure-crisis-is-really-a-maintenance-crisis/385452/
Slide 24: https://www.djangoproject.com/fundraising/
Slide 27: This cycle is not without precedent. Modern nonprofits in the US only came about after the Industrial Revolution. Nouveau riche criticized for spending in unfocused ways. Andrew Carnegie and others called upon their peers to embrace philanthropy, which capitalized the nonprofit sector.
Slide 30: Without clear metrics or vocabulary to talk about project needs, any response to this question is purely subjective.
Thanks to Marc Tamlyn and Russell Keith-Magee for early feedback on this talk.
8. @nayafia
”As an industry, it's frightening how much
of the infrastructure on which we rely on
on a daily basis is maintained by complete
volunteers.”
- Russell Keith-Magee
37. @nayafia
Project metrics, by project stage
Project Stage Description Example Metrics
Incubation Validating concept ● Total pageviews on
project
● # of downloads
● Referring sites
Growth Users + contributors
growing
● Total contributor count
● # of non-author
contributors
● # of opened PRs, issues
Maturity Large community of users
and/or contributors,
formalized roles
● # of first time
contributors
● Average response time
to PRs, issues
● Month-over-month user
growth
38. [1] Who needs money
[2] What do they need money for
[3] How to fund them
[4] Who should fund them
39. @nayafia
Project Stage Description Funding Needs
Incubation Validating concept ● Dedicated time to
write code
Growth Users + contributors
growing
● Infrastructure costs
● Code review
● Design
Maturity Large community of users
and/or contributors,
formalized roles
● Dedicated sprints
● Release management
● Community
management
● Code review
● Biz dev
Funding needs, by project stage
40. [1] Who needs money
[2] What do they need money for
[3] How to fund them
[4] Who should fund them
42. @nayafia
Pros and cons of various funding methods
Funding Method Pros Cons
Projects ● Transparent
governance
● Build institutional
resilience
● Need legal entity
● Funding restrictions
based on legal entity
People ● Respects
decentralized
structure
● Good for one-off
work
● Don’t need legal
entity
● Can lead to
favoritism
● Funding doesn’t
transfer if person
leaves project
43. @nayafia
If funding projects, centralize efforts
(Ruby Together, JavaScript Foundation, Software
Freedom Conservancy, OpenCollective, Linux
Foundation)
44. @nayafia
If funding people, build up
opportunities for individual grants
(Mozilla Open Source Support, Linux Core Infrastructure
Initiative, Open Technology Fund, Stripe Open-Source
Retreat)
Graph is not actually accurate. Instagram’s annual revenue is 16,000 times that of Django’s
Instagram $3.2B revenue estimate: http://fortune.com/2016/01/25/instagram-3-billion-business-this-year/ Disney, NASA, WashPo, Pinterest
You don’t expect a homebuyer to crowdfund their house on the spot. They get a mortgage
Not about “getting lucky”, but repeatable access to capital
So people can future plan. Ongoing funding is necessary, not just one-time campaigns
How can institutional capital transform an industry? How would things be different? Consider lost opportunities that we aren’t seeing right now. Not just sustaining what we have today
Currently, only ppl who can take on risk are able to contribute to open source. This excludes many potential contributors (older, ppl with family, debts, caretakers)
Best example we have of how this has worked institutionally. Venture capital didn’t become a serious thing until legislative changes + software started succeeding (1979-1990s).
https://www.youtube.com/watch?v=SAc0vQCC6UQ 30:00ish
Ryan quit his job and worked on the idea for 6 months, presented it at JS Conf, talked to a bunch of ppl but they all wanted him to do it as 20% time or sell it in their product. “It didn’t seem right, it’s this open source project”. Joyent let him do it full-time. And that’s why we have Node.js today
This is not an accident. It’s because employees have job security so the risk of failing is lower when they try something new. Ex. Rust, Django, Go, Rails
Doing more of this means less fragmentation of the whole OSS system
http://www.citylab.com/cityfixer/2015/02/americas-infrastructure-crisis-is-really-a-maintenance-crisis/385452/ And this figure is actually low, roads need 3x this amount to be properly maintained
https://www.djangoproject.com/fundraising/
What I mean by the open source ecosystem
This cycle is not without precedent. Modern nonprofits as we know them today didn’t exist until after the Industrial Revolution. Newly rich ppl criticized for spending in unfocused ways. Andrew Carnegie and others drove the creation of philanthropic, which gave room for nonprofits to succeed. But it took 30-40 years before this happened.
-- Both making the business case for it (the pitch), and also figure out how to distribute systemically (the distribution)
-- All the best financing mechanisms exist, they just haven’t been brought to the right markets yet
How would you answer this question? Without clear metrics or vocabulary to talk about project needs, any response to this question introduces bias
We tend to start with #4, but #1-3 are critical first
How do we know which projects need money? Projects need these metrics to fundraise and build a business case for themselves. Nearly every funder has asked for a list like this. Ex. Yorba Foundation + IRS
Ex. OpenSSL used by two-thirds of the Web (bc Apache and nginx use them)
Mention Libraries.io here
We can’t currently measure a lot of this - need better tools
Answer to this might be obvious within open source, but it’s not obvious to funders, so we have to better communicate what these needs are
Start by defining which stages projects are at. Notice what’s not on this list: paying for community contributions. Elevate the maintainer role. Funding probably most needed at incubation and maturity (ends of the spectrum). Like VC stages: seed, series A, etc which have totally diff funders for diff stages
Maturity section: funding “major new features”. Python Core Sprint. Big projects that can’t be done in spare time, get multiple people together at the right place at the right time. Right now, happens at conferences bc they can fund it with sponsorships
Transnational concerns. How do we actually fund projects?
Different types of funders are excluded depending on this answer.
Delaware C Corp for startups, or 501c3 for nonprofits, makes giving really easy
Can also be stage-based (fund people earlier on, projects at more mature stage)
People funding problems: people have to become responsible for their own marketing, funding individuals can also promote burnout (ppl feel more responsible for the project), companies can have a hard time funding contractors vs giving to orgs. Ex. Donald Stufft + PyPI and HPE
-- How centralized should we get? One big umbrella org, or several ecosystem orgs? SFC, OpenCollective are more fiscal sponsors than ecosystem-oriented
-- In a limited funding space, centrality is more important. One initiative can suck the air out of the room (companies don’t want to sponsor multiple similar foundations)
-- JavaScript Foundation is new org formed in response to this issue
Might be easier to start here, for open source, bc less paperwork, can prove out concept. Then move towards umbrella org funding. Avoid the need for individuals to market themselves, avoids complications from so much legal diversity associated with the project org side
Important to be able to convey this to funders. Bc this is unknown, it’s another point in favor of individual grants for now
Who should fund these projects?
Community, not corporate built
-- Can work for funding incubation, or if project has had a long history with the company. Less likely to work for funding maintenance (ex. PyPI/HPE). Need to distribute risk across companies, not just one company, in case that company changes its mind (a la Ruby Together)
-- Distinguish here between pros/cons for established companies vs. startups. FOSS is free (of cost)! So that startups don’t have to spend their resources.
Not just bureaucracy to get grants, but gov’ts are naturally more cautious/conservative bc of greater accountability. Decision making processes at odds with innovation
Answer might be a mix: gov’t/academia for maintenance, companies for innovation. Since companies are perhaps the most avid/familiar users, makes most sense that they would close the loophole of the production cycle
Like an open source project - need to clearly document how people can contribute, or else you’ll lose them
This is a totally solvable problem. But the machine needs to work properly before we feed resources into it. Need to understand what success looks like, and be able to replicate it.