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?
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.
Resources for Low Bus Factor
Want to write for DXKB?
Feel free to contribute. People from DXKB community will be more than happy.
A Product Owner represents the voice of stakeholders. The Product Owner decides what needs to be delivered by the developers to satisfy the stakeholders and to maximize the value of the product.Read more
Vision represents the highest ambitions of a company, team, or product. Its purpose is to unify and motivate people and teams towards achieving an ultimate goal.Read more
Meaningful Meetings are methods that see meetings as obstacles in work. Through practices like setting reasons, creating agendas, tracking outcomes, or meeting polices, you can shorten the meetings and boost your team's performance.Read more
A team culture is how people work together towards a common goal with team members sharing their values, beliefs, attitudes and behaviours.Read more
A Tech Lead is an experienced developer who ensures that team members follow major technical decision. It should be a person with a desire to learn and share new concepts and technologies.Read more