One of the biggest problems open source projects face today is the bus factor problem.
I've been thinking a lot about this lately
as how it applies to my PostGIS, pgRouting, and OSGeo System Administration (SAC) teams.
The bus factor problem is when a project has lost one of its primary contributors
or resources.
Often times yes there is only one person in a group willing to take on a role,
and while that person doesn't mind taking
on the role and in fact often enjoys the role,
that person ends up feeling "lonely".
Lack of equity, the calculation of how much you are getting out of a deal based on how much effort you are putting in
is a large cause of people leaving. When that equity looks negative for long enough you leave.
This assessment is often driven by several factors of your make up.
For example I have enough money to live, I've got no kids, and so I put a higher
weight on various feel-good benefits of investing time in open source than someone who is strapped for money.
Most people assume the things they find rewarding to work on, others do too,
and things they don't like working on, others also don't like working on.
It's all a vicious kind of empathy that makes a lot of people work on things they don't like doing.
All that said, one thing is true. Most people don't like being a member of 1.
What I yearn for is that other person that makes me feel like a member of > 1. Wouldn't it be great to have someone, at least partly like me, who can take on the burden, if per chance I'm not around or someone to lean on, when I'm struggling for an answer to a problem I'm supposed to be the expert on.
This is not to say I feel like a member of 1 all the time, only sometimes. So that other person may not be one person at all, but a person for a particular facet of the project.
That person actually does exist in my projects most of the time. There is not one person I always lean on for support and companionship, but one for a particular facet of the project or problem.
I suspect this is true of a lot of people in open source.
I may be talking about me, but I think it's a lot of people in the groups I'm a part of that feel this way.
Each of us has certain strengths and likes. Things that we can do better and faster than anyone else to the point,
everyone just leaves it up to that person to do because they feel helpless to even try helping.
It scares me, thinking about it that there are certain things I just don't know how to do even
within the things I'm supposedly good at. Likewise I'm sure my fellow team members are scared I'm the only one that knows how to do certain things
just as I'm scared I'd be lost without them. It's these kind of times I start thinking about getting bus factor insurance.
How much does bus factor insurance cost and is there even such a thing?
To some extent, OSGeo, the foundation that both PostGIS and pgRouting projects are members of is a bus factor insurer.
Sure OSGeo has several projects, but we have teams outside of the projects such as OSGeoLive team, Board, Marketing, and System Administration (SAC), Incubation teams
that are most often also members of the projects we serve.
These teams work for all our projects by making it easy to try the software, grass roots marketing, guidance,
support of the infrastructure for things like mailing lists, discourse, and IRC/Matrix.
In addition OSGeo has funds to provide money for code sprints, and seed money for conferences etc.
So that means even if your team is just a bunch of introverts
who like to bury their eyes in their project code, we've got you partly covered.
But can we strengthen this insurance?
Within the SAC team, though I do quite a bit of the administration, there are 2 or 3 folks
in the team I know are more knowledgeable than I am or who can pick up if something should happen to me
or do so when I'm not around. Regardless for everything you do, it's very comforting when you feel at least one other person has got your back.
Although OSGeo does offer a certain amount of coverage,
I'd like to think we also have some cross polination across projects.
Though we cross polinate, I still feel we think of ourselves as separate projects and forget about our shared needs
and how we can elevate each other. I also think such a case exists with PostgreSQL core and its satellite extension projects
like PostGIS and pgRouting. PostgreSQL project aside from the project packaging teams feel like a separate thing often disconnected from the
needs of the extension projects that help strengthen it and that it strengthens. Also each PostgreSQL extension project, historically has thought of itself as an island detached from other extensions.
There have been recent efforts such as the Extension Ecosystem Summit that are working to change that.
Gaining a better comfort level of "bus factor", I think can be aided by taking a good look at ourselves
and the people in our teams and find the holes and ask the questions:
- Can these holes be filled with fellow members in the team, kind of like a RAID setup?
- If we could sketch the next core team member, what traits would that person have to make us more complete,
or to make those lonely people in our group feel greater than 1?
- Can we share some folks from other projects?
- Can we leverage people who may not know how to do something but are excited to learn how?
I think of Robert Haas' much appreciated effort here in increasing the PostgreSQL hackers base by having a PostgreSQL Hacking workshop series.
Sketching the next core team member is something I try to do especially when I feel
we have holes in our team member make-up.
When I recognize those characteristics in a person in the crowd, I try to shower them with attention, to pull them in.
When I see that person in another project, I try to see if we can share that person.