Why open source has a people problem
- 19 August, 2020 19:00
Much of the “open source sustainability” discussion has focused on the one thing that really needs no help being sustained: software.
As Tobie Langel rightly points out, “open source code isn’t a scarce resource. It’s the exact opposite, actually: It’s infinitely reproducible at zero cost to the user and to the ecosystem.” Nor is sustainability really a matter of funding, though this gets closer to the truth.
No, open source sustainability is really a people problem. Or, as Langel highlights, “In open source, the maintainers working on the source code are the scarce resource that needs to be protected and nurtured.”
The community is the commons
Over the past several weeks, I’ve interviewed a number of maintainers for popular open source projects. In every case, they talked about how they contribute because it’s fun, but also acknowledged that some aspects of open source development can make it decidedly “un-fun” (e.g., demanding users who complain about missing features or existing bugs but don’t contribute code or fixes).
Most have found ways to turn their passion into financial independence, but Langel stresses that cash is critical to keeping open source humming along:
It’s precisely this ability of open source code to be reproducible infinitely and at no cost which puts the system at risk. Without revenue, there is no maintenance, and without maintenance, the commons becomes toxic very quickly. Why is that? Because the ecosystem changes at a rapid pace. As new paradigms are invented, reliance on older open source assets becomes a liability that prevents you from adapting quickly to changes in your business. As new security issues are discovered, open source code that isn’t updated becomes a security risk.
In other words, precisely because there’s a big pool of code that costs nothing to reproduce, the removal of people to actively maintain it creates all sorts of issues. In Langel’s words, “the commons deteriorates instead of flourishes at the lack of human intervention.”
There are many reasons open source contributors might find it hard to justify contributing to a project. Remember the “f-word” I used above? (Fun.) Communities can become toxic cesspools, warding off would-be contributors. Or they can be welcoming to newbies.
As Red Hat’s Lili Cosic detailed, the Kubernetes community has heavily invested in tools and policies that make it a positive experience for contributors. “In the long run [the Kubernetes approach] will create more diversity in the kinds of contributors you can have,” she said.
It’s more than money
Ultimately, this feels like an even bigger issue than money, yet money does play a part. Developers need to be able to pay the rent, just like anyone else. This is one reason that Drupal and Acquia founder Dries Buytaert has been correct to point out that open source really is a matter of privilege: A relatively small percentage of people can afford to contribute in their “free” time. Free time isn’t free.
Even those developers who are getting paid to contribute are constantly evaluating different options for where to spend their open source time.
As Aimee Maree points out, “with all the money [in open source] we should not be expecting free work…. The current issues are and have been more around how we maintain contributors and why would new people want to join [a particular community] when it’s a day job.”
Some developers will put up with garbage behaviour in their company, but only until they can find something better. In open source, there’s even less reason to put up with abuse because they’re not employees, they’re contributors.
Even those who are paid by their employers to contribute don’t necessarily contribute for those employers. Not directly, anyway.
As Cosic said of her Kubernetes work: “Anytime I make a decision in terms of features, I never think of it from a Red Hat point of view. I think, ‘Is this something that the project is meant for?’” Madelyn Olson, a contributor to Redis (and AWS employee), said the same: “I’m not a [Redis] maintainer on behalf of AWS, I’m a maintainer on behalf of myself.... We should only be contributing stuff that’s good for the community and not just good for AWS.”
This is how open source works: code written by individuals as part of a community. The code itself isn’t scarce, but the people who write it are.
Which is why Langel is absolutely correct to argue, “In an ecosystem with infinite resources, the attention needs to be on the people taking care of and maintaining that resource, because that’s where the bottleneck is.” Again, that’s partly a question of money, but it’s even more a question of treating people with dignity and respect, while making open source communities a fun, welcoming place.