The Bus Factor

Shane Fast
BACIC
Published in
4 min readMar 11, 2022

--

How screwed are we if our best people get hit by a bus?

While they get Isekai’d by truck-kun, some of us have to stay here and pick up the slack.

Imagine for a moment that you were an evil bus driver with a maniacal distaste for technology and software. You’ve decided to use your mastery of driving the bus to rid the world of both in the most efficient way possible. You make a hit list targeting the most critical people to intact the most significant damage. Who would you hit with your bus first?

While morbid, this is an effective way to look at the critical functions that our team does on a day-to-day basis. It is to ask ourselves, “What would happen to our team if so and so got hit by a bus?”

To explore how to apply this practically, let’s see an example:

Here we’ve got a brief inventory of fundamental skills, with each team member self-reporting their confidence level at that skill

As expected, The Hulk excels at Bash.

1 = If you’re having problems with this, I’m here for you!

2 = I can figure my way through this if you tossed it at me.

3 = Umm — don’t come to me about this

Now for each skill, assign a number from 0–2 for the importance of that skill to your team (0 being least significant and 2 being essential). This is like asking, “How many bus-driving maniacs do I need to protect this skill from!?” Or, in other words, if we lost our best 1 or 2 people at this skill, how screwed are we?

Please look both ways before crossing.

Finally, the Bus factor will give you a good idea of the degree to which we might be at risk. It is calculated simply by removing the number of “1”’s reported on the skill and adding the surviving numbers, where 1 still equals 1, 2 = 0.5, and 3 = 0.

This bus stops for no one!

For example, we ranked its importance under the Docker skill at 1. We’ll pretend Ironman, as our only reported 1 in this case, got hit by a bus. Poof, gone, Thanos snapped out of existence! The Hulk, Captain America, and Thor all reported a 3 for the Docker skill:

The Hulk = 3 => 0
Captain America = 3 => 0
Thor = 3 => 0

Bus Factor = 0 + 0 + 0 = 0

Now, if we take Node JS, also marked at an importance of 1, we’ll knock off Captain America this time. Ironman reports a 1, the Hulk a 3, and Thor at 3:

Ironman = 1=> 1
The Hulk = 3 => 0
Thor = 3 => 0

Bus Factor = 1+ 0 + 0 = 1

Finally, we’ll look at the Bash skill, rated at an importance of 2. For proper balance, we’ll turn the Hulk and Thor to dust this time (gotta pick two):

Ironman = 1=> 1
Captain America = 1=> 1

Bus Factor = 1+ 1+ 0 = 2

So what do these final Bus factors mean? The colours indicate that a Bus factor of less than 1 is bad news, meaning you are at risk for a potential future skill gap. A Bus factor of greater than 1 means you are at a lower risk. In our above example, our team’s skill at Bash is relatively safe, Docker is at significant risk, and Node JS is on edge.

This can translate to several situations like a team member leaving or taking a vacation. In addition to technologies/tools, you can use this to consider your Bus Factor on essential tasks, processes, and product features. This can be helpful in identifying potential opportunities for cross-training or highlighting the need to hire a new team member to fill the gaps.

Calculating the Bus Factor is a snap!

If you found this valuable or entertaining, please follow the blog, and I’ll continue to post more tech goodness. Thanks for reading!

--

--

Shane Fast
BACIC

Interested in building things and building teams.