The flywheel theory of community engagement
What is a flywheel? In physics, it’s a wheel spinning rapidly on a low-friction axis. Simply put, a flywheel is a machine that can store energy and provide a consistent energy output when the input is inconsistent. In a community, a flywheel also provides a consistent energy output. This naturally helps keep teams functioning. I’ve seen this play out time and time again in various parts of the Fedora Project.
If you’d rather watch a video, I’ve given this as a lightning talk at DevConf.CZ 2021 and FOSS Backstage 2022.
Why a flywheel is important
People’s contributions to open source projects will naturally ebb and flow. They’re often contributing in their spare time: either outside of their dayjob or as a part of their day job. The amount of free time a person has isn’t static. It will rise and fall based on the demands of the rest of their life: work, family, school, other organizations and projects, illness, burnout, et cetera.
Everyone’s effort goes up and down on a unique frequency. So long as some people’s contributions are up when others’ are down, the overall momentum of the project stays strong.
But at some point, your core contributors will all independently hit a low point at about the same time. This isn’t necessarily because of anything within the project that’s gone wrong. It just happens. But it can have long-term effects on the project.
When momentum goes to near-zero, it can be hard to restart. When existing contributors are ready to return, will the stagnation of the project cause them to find another area or another project to contribute to? If new potential contributors come along, will someone be there to greet them and show them around? If a newcomer does get started, how long do they stick around working by themselves? This doesn’t happen over a weekend, but the longer the lull lasts, the harder it will be to get the project moving again.
What a flywheel does
A community flywheel doesn’t have to be the person who does the most work. They provide a constant presence that helps keep the momentum going. They show that the project is active by welcoming newcomers, keeping up on regular tasks and meetings, and, yes, stepping up to do work when there’s nobody else around. The the flywheel, then, ensures that there’s always effort being put into the project.
This is important because it helps keep your existing contributors engaged, but even more because it gives new contributors a reason to join. It is very discouraging to send an introduction note only to be met with silence. Joining an active team is much easier than restarting a dormant team. So having someone be the flywheel in a community can result in much more effort than they put in themselves. It’s an investment in the health of a team.
I don’t have any concrete numbers to apply to this. It’s a conceptual model and frankly it doesn’t always hold – some teams thrive without an obvious flywheel and some teams end up reducing to just the flywheel. But in general, it seems to hold up. I suspect that as little as 10% of an FTE (full-time equivalent), or 4 hours a week can be enough to help a team keep going as contributors come and go.
In Fedora specifically, I’ve found that this often means having a Red Hat employee participating as part of their job duties. Having a paid employee isn’t strictly necessary. Any community member can act as this flywheel. And there are people in the Fedora community who are acting as a flywheel in their teams while participating on a completely volunteer basis. But the advantage of having someone be the flywheel as part of their job is that…well, it’s part of their job. That means it’s easier for them to provide that consistent level of effort.
In short: the Flywheel Theory says that the long term sustainability of a community project depends on having someone who can keep the momentum going. This is a contributor who can provide a consistent presence, which ends up being a great effort multiplier.
“flywheel of the Boulton-Watt steam engine” by Newtown grafitti used under CC BY 2.0 license.