In business, investment expects a return. So, what's the return on funding open source software, can it even be lucrative?
It's not always clear to people why companies like Divio - businesses that need to make a profit - would want to give money away to open-source communities and projects. Giving money away, after all, is not the first thing one would put on a business plan.
In our case, we sponsor numerous projects with ongoing regular contributions, including the Django Fellowship programme, Read the Docs and Django Girls. We also sponsor well over a dozen open-source conferences each year, from large, established events such as PyCon US and DjangoCon (Europe and US) to small, nascent ones such as Django Weekend and Python Namibia. And not to mention Django Under the Hood, Write the Docs, PyCon UK - the list goes on.
Why do we do it?
Some of this support does make obvious business sense. Companies like ours need to keep recruiting, so sponsoring and attending a conference like a DjangoCon or a PyCon is an excellent way to meet potential recruits. Being a sponsor also - quite rightly, because these events can't even take place without sponsorship - earns a lot of goodwill, and that's worth something too, because it's good for us to be known, liked and trusted.
This isn't the whole story though. It's true, some of these are great events at which to find new recruits with valuable skills and great ways to earn goodwill. But: some of the events are not aimed at highly-skilled developers at all, and in case, just how many new recruits and how much goodwill does a company actually need?
In fact, a large part of the return on the investment is less immediate and less obvious.
It's easy to understand why commercial organisations willingly open-source their software and share the fruits of their own work, or contribute financially to the projects they rely on: it's because they get to enjoy better software as a result. But this software doesn't exist in a vacuum, it exists in a community, and the quality of the software depends on the health of the community.
A community is an organic thing. If it's to thrive, then even the parts of it that don't represent immediate commercial value must be nurtured and invested in. There may be no immediate or direct commercial value in sponsoring something like DjangoGirls or Python Namibia, but they are valuable investments - long-term investments that are good for the community and its future.
Still, given a choice between making an investment that will pay off quickly, and one whose benefits are spread out over time and amongst everyone involved with the software community, why would it make sense to choose the latter? Surely it would make good business sense to let other companies make those investments, so we get to benefit from their generosity? And why spend money supporting an ecosystem or community - such vague, intangible things - when it's possible to support just the particular projects and packages in it that really matter to us?
In other words, you might think that a sensible business should support open source software communities in ways that will bring immediate benefits, and certainly not in ways that will benefit its rivals as much as itself.
And you'd be wrong.
Firstly, if every company adopted that apparently smart and beneficial strategy, then it would cease to be beneficial; we'd all lose out, and we would all have harmed the ecosystem that we depend upon.
The fact that many companies - successful, profitable, sensible ones, like Divio - do make those long-term investments in the community is an indication that this is a wise way for them to spend their money.
Secondly, it is actually important for the benefit to be spread around. We rely on particular tools and packages, but not just on them; we also rely on the health of the ecosystem and the community in general, that makes it possible for those tools and packages to exist in the first place, and for new ones to emerge.
Finally, there's another reason why, and it's easy to understand. Divio, just like most companies, is staffed by people. Maybe businesses can't really love things, but the people in them can, and the people who work with open source software care about and identify with the communities behind their software.
It makes perfect sense for an individual to want to care for their community, and to find value and reward in contributions to it, sometimes simply its own sake and not even for any personal benefit in return. People enjoy knowing that the organisations they're involved in support and belong to their communities in these ways.
When these values are shared by individuals at all levels of a company, when it's part of company's culture and ethos, then 'good business sense' doesn't have to compete with altruistic community support. Instead, the business is part of the community, and what's good for the community is good for the business too - especially when the business is able to contribute to that good.
And all this is why it makes perfect sense for companies like Divio to support not just events such as the DjangoCons and PyCons that benefit us directly, but also the events like Django Girls and Python Namibia that don't. It's why we are concerned not just about the health of projects like Django and Read the Docs, that we use all the time, but also about the health of projects we might never even use.