Low Bus Factor

2 Contributors contributor avatar contributor avatar
Last updated 08 Dec 14:50

TL;DR

How many people need to get hit by a bus for the project or team to stop functioning? What are the ways how to increase this number?

Source: Bus factor (thanks to DevIQ)

What Is Bus Factor

The “bus factor” is the minimum number of team members that have to disappear from a project suddenly before the project stalls due to lack of knowledgeable or competent personnel.

The lower the number, the higher the risks.

How to Increase Bus Factor

Problem With Rockstars

Rockstars – Mr/Ms-know-it-all – are nice to have in a team. But, what if he/she gets hit by a bus (or gets sick, headhunted, etc.)? In fact, rockstars usually are not the problem. The problem is that many teams rely too much on their rockstars and forget about the impact of losing them.

Try to observe what happens when your rockstar is out of office. If everything slows down, then you’re probably in trouble. The next sections explain ways how to increase your bus factor, regardless you have rockstars on your team or not.

Redundancy

To make sure that your team continues to function if a key member is unavailable, you need to ensure that such a person has at least one backup. These backups should be able to take over any critical role (function, task) of the unavailable team member at any time.

It might also be useful to create virtual teams rather than talking about backups. Shared ownership is usually better. There shouldn’t be any one-man islands in a team.

Redundancy is not only useful in case of emergency, but is also great for creativity.

See also Responsibility.

Fresh Documentation

That's obvious that having up-to-date documentation is key to survive “losing” a team member. Key processes should be well documented so that even someone with limited knowledge of the subject could execute it.

Documentation needs to be a priority and part of the definition of done. You just can’t accept a situation where important information only exists in the head of some team member.

But be aware that having out-of-date documentation is downright dangerous. Freshness does matter.

Automate All the Things

Documentation is super important, but automation is even more valuable. If you have the opportunity, then you should try to automate your key processes. Of course, the automated processes need to be well documented too, so that someone can adapt those if required.

Pair/Group Work

When working with another person on a problem/task, you end up with higher quality results, more creative solutions, and shared understanding + shared knowledge.

If you want knowledge to circulate in your team better, encourage people to try and adopt pair programming / pair work.

See also Pair Programming.

Knowledge Transfer Sessions

Promote knowledge transfer/sharing sessions. Encourage team members to share their ideas, designs, discoveries, problems, etc.

These sessions increase team spirit, improve knowledge gaps, and improve the bus factor since more people will be aware of what others are doing / have done.

Ask your rockstar(s) to pair up for at least 30 minutes a day with one other person in the team. During that time, the less experienced person will do most of the hands-on work.

See also Team Culture.

Simplify

Simplicity is a great weapon against the bus factor (and many other problems). Whenever you have the choice between a simple/understandable design and a more complex/powerful one, do weigh in the impact of the choice on your bus factor.

Invest In Your Team

Organize training sessions, workshops, send them to relevant conferences. Turn your more experienced members into mentors and have them share their knowledge on daily basis.

Resources for Low Bus Factor