Should you donate money to the open source projects you use? Or is there a better way to help?
Your business most likely depends on open source software. But are you playing your part to make sure it will still be there in the future? For that to happen, the projects where it is both maintained and improved need to flourish.
How can you contribute to that goal? The first thought most of us have — donate money — is unlikely to be the best way to support the open source projects that are most important to you. While proprietary software companies want your money in huge quantities to pay their shareholders, executives and staff, in open source communities most of the people who develop the code are paid elsewhere. As a consequence, there’s only a modest need for cash and a little goes a long way.
So what is the best way to support open source if communities don’t primarily need your money? Here are seven ways your company can support and strengthen the open source projects you depend on.
Buy from community members
Open source communities typically comprise many of the people whose business interests most depend on the sale of services and extensions of the project. They are trainers, contract developers, support companies, integrators and more. The very best way most of us can support open source is by trading with those people and businesses.
So when you buy training, or service level agreements or contract development, check your supplier is an active community member. Ask them about their commits to the project, their attendance at community conferences, their participation in governance. Some communities even have a way for members to prove their participation, such as official membership or even certification. There are a surprising number of companies — especially offering level 1 and 2 support services — which don’t meaningfully participate in the community. In many ways, those companies are the real freeloaders and it’s better not to encourage their existence.
Promote the project
Open source projects aren’t like commercial products. There’s no-one with a vested interest in publishing marketing information about them, so it’s easy to believe they are of marginal interest if you just look at the press where content is driven by marketing actions. The very fact your company uses a particular set of open source software is interesting, and sharing the details in public is valuable.
So don’t keep it a secret. Add information to your web site about the open source projects you use and how you use them. Encourage staff to contribute articles and case studies for publication. If you make you open source usage public, you’ll discover other people using the same software who can also be encouraged to share their experiences. In fact there’s a word for them: community.
Participate in the community
As a user of an open source project, you have a role to play in the community. One direct and valuable way to support the projects upon which you depend is to participate. As simple an act as asking your staff to attend a local meet-up or even a regional conference helps. These events build the community and in some cases are the main source of funds to pay for the small staff and infrastructure costs for a community. Participating does not have to mean directly contributing to the code and documentation; just showing up is of value. Of course, you can go further and contribute in a more concrete way.
Contribute to the project
Obviously this is going to help! But you may be surprised by how welcome even small contributions can be. An open source project is the overlap of the interests of many participants. Not every community participant is involved to the same degree; in fact a community has a “long tail” participation curve, with many participants making smaller contributions and only a few making large ones. Your contributions will be welcome, no matter how small.
As a user of open source software, you can contribute bug reports — possibly through the service company you have hired — and even patches to fix defects you’ve found if you’re actively developing in and around the code. One great way to contribute is to offer your own internal how-to documents and implementation case studies. And of course you can make larger contributions of code and new functions.
Perhaps there is a feature you need in the software you’re using. It won’t write itself, and the community is not there to meet your needs; they are mostly there to meet their own. You could complain about it, or you could invest some money in addressing it. You’re probably not the only company with the need.
You might be able to use the approach a group of German and Swiss public administrations are using to address their need for LibreOffice to have better interoperability with Microsoft Office. They’ve teamed together through the Open Source Business Alliance to commission community core developers to do the work they need and contribute them to the community. The result is that LibreOffice now has much better capabilities in both reading and writing Microsoft’s OOXML format.
You depend on the project. Why not hire the developers who created it or who keep it running? You can make a significant contribution to a community by directly employing core developers of the software that you most need tuned or customised to your business needs. When you hire them, make sure you’ve left enough room in their lives to continue to meet their community commitments.
Hiring core community developers is a great way to ensure your company’s needs are met! You can also participate in the governance of the community. Help with the administration, make staff available for infrastructure or marketing work, stand in Board elections.
Make cash donations
OK, I said not to do this — but I meant as an only or first step. As a community member, you do have a role to play helping pay a share of the the bills. This might include the cost of the infrastructure and the sysadmins who run it or perhaps the cost of an executive director and a small staff. It is very unlikely to pay for the actual development of the code itself — that’s the community’s responsibility. You could become a sponsor, or even an advisory board member, as a way to channel funds into the shared coffers of the community.
There are other ways to support open source, but these seven steps provide a path for many companies to ensure that the software running the business remains available, debugged and innovative over time. It needn’t cost much money, and most of these steps flow directly out of your business needs and practices. Give it a try!
(A revised version of this article was published by InfoWorld in September 2013)