How free software can sustain contribution from hero developers

Submitted by Darren Oh on Mon, 04/12/2021 - 01:07

Last week, I wrote about how free software has to break out of the customer-vendor mindset. The customer-vendor mindset doesn’t work with free software because users don’t pay and developers don’t provide customer service. The free software community works on a build-what-you-use model. I ended by saying that the build-what-you-use model is not enough to sustain hero developers—people who contribute at a level that cannot be sustained by their own use of free software. I suggested that hero developers are vendors and should sell their work to paying customers rather than releasing it to the community for free.

Another way hero developers can sustain contribution is by working for a large company. Large companies like Facebook, Apple, and Google routinely release free software to promote adoption of their products. When a company stops maintaining its free software, it is either abandoned or taken over by the community. Examples of projects being taken over by the free software community are XQuartz, LibreOffice, NetBeans, OpenBSD, and Firefox.

The problem with depending on a single large company is that the hero developer is vulnerable to a change in company priorities. Once a free software project stops being part of a company’s business plan, the company can no longer sustain the hero developer’s contribution. An example was Corel abandoning Linux as a condition of receiving investment from Microsoft.

Is there a way for the free software community to sustain hero developers? While the community works best with a wide base of contributors who are sustained by their own use of free software, there is massive value in the contributions of people who are motivated more by their love of a project than by what the project can do for them. I believe contribution from hero developers can be sustained if users of their work form an alliance to sponsor their contribution. A free software project is an alliance of developers who have an incentive to recruit more developers so they can all benefit from each other’s work. Members of a sponsorship alliance would have a similar incentive to recruit more sponsors to the alliance because new members would increase the value of the alliance to existing members. If the alliance is large enough, the loss of one member will not affect the alliance’s ability to sponsor contribution from a hero developer.

There are many example of alliances being formed to support free software projects. After the Heartbleed vulnerability showed that the OpenSSL library had become unmaintainable, Google and OpenBSD both began working on replacement libraries. When the XFree86 project was unable to coordinate contributions from the community, the previously dormant foundation took over stewardship of the X Window System. When OpenVPN was too difficult for many users, Linux vendors came together to release WireGuard in the Linux kernel. The Linux kernel itself is supported by the members of the Linux Foundation. All of these alliances were formed after deficiencies were found in the maintenance of projects that their members relied on.

If a hero developer is providing professional support for free, I would expect it to be difficult to build momentum to form an alliance. How then can hero developers encourage the free software community to form sponsorship alliances before their ability to contribute is exhausted?

My suggestion is that hero developers who want to do their work within the free software community withhold updates and support from their projects until they are sponsored. This is difficult for developers to do because they are always afraid of their work becoming outdated. To avoid that happening, hero developers should showcase their own work and incorporate the work of other contributors, but should not release their own work or support other users unless they are paid. This will highlight the extent of the hero developer’s contribution and the need for sponsorship to make it sustainable.

As a member of the Drupal community, I would suggest that our community could help with the formation of sponsorship alliances by providing a platform to set them up, manage their memberships, and link them to projects. I may examine the requirements for such a platform in a future article.