How to Pay Your Contributors and Get Away with It - Erlend Sogge Heggen, Discourse [Open Source Summit EU 2018]

Discourse pays some top contributors. How can you do that?

Discourse is a for-profit company around the open source discourse software. Basically they are open source because it’s good for recruiting (including non-programming work), it improves product quality (contributions improve it, especially discovering and removing quirks), and it keeps you honest (charge money for real added value only, you’re in competition with yourself, including the price point).

Why do contributors do it? It’s high-profile, to scratch an itch, to interact with Jeff (who also founded StackOverflow). Also extrinsic motivators: need for your own community, because you’re paid for it, or to accommodate a custom, external plugin.

There are some features that the Discourse company doesn’t get around to because customers don’t demand it (the community does though) and it’s too big to tackle as a volunteer. Discourse started an Encouragment Fund to improve this. It is based on a MOSS grant from Mozilla (actually the grant in the end paid for Discourse internal developers, but that isn’t fair so Discourse started the Encouragment Fund to fund other work done by actual contributors).

The process starts with a rough specification of a feature (varying levels of detail, depending on the developer). Next make it bite-sized (chunks of $250-1500). No hourly rate is set, because there is also a lot of other things you get out of it other than money; instead it’s kind of fixed-price, i.e. the bite-sized rough spec is there, but there is still a lot of leeway about what exactly is done. For the developer (usually a freelancer), such professional work on an open source project is a lot more valuable as PR than some random volunteer contributions. Discourse gets to choose (upfront) who does the work (usually someone they know already as a contributor), what the work is when it is done (and how much is paid for it). To select who, only one developer is contacted at a time, to avoid multiple people wasting time on it in parallel. Also only strategic work (that is eventually going to yield the company money) is going to be funded. The tasks should also not be time-sensitive and not have dependencies, so there is no pressure or collaboration issues. For many contributors, this small funding allows them to discover how they can make money working on Discourse. 1/3 of the Discourse employees started out doing such funded work.

If it happens that the contribution was really not of enough quality or not finished, they (in negotiation) would pay a reduced amount.

There are still 4 difficulties.

Friction: [I am not sure what he was talking about.]

Selecting tasks: get community support to select which tasks are useful for funding.

Delegate: now Erlend is doing all the management, it would be nice if more people could take the initiative to start a funding.

Marketplace: right now, discourse plugins are either maintained by the company, or it is some volunteer effort; if there was a way to monetise plugins, then there would be more external maintainers.

So, figure out how to pay contributors. It would help if more people could work on open source projects as part of their job time (e.g. in Discourse, an open source company, employees should have some time to contribute to other projects). Developers should not be shy about asking for money in an open source community: you’re spending time, it should be valued.