Low Bus Factor
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.
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.
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.
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.
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.