Bus factor refers to the number of people in your team who can put your project in trouble if they are hit by a bus. And of course, the don’t have to be necessarily hit by a bus: illness, vacation, and departure from the company are all frequent occurrences that can bring disaster to a project. Each project manager should be aware of the bus factor of their teams. The most threatening bus factor that any team can have is 1; having a larger bus factor value is preferable.
In order for projects to keep going smoothly, efforts should be put to increase the bus factor of the teams. It isn’t really that difficult to achieve a higher bus factor. For example here are some of the techniques that you may adopt
- Pair programming is often conceived as a wastage of time but it can be a great way to make the members of your team aware of the non-familiar parts of the codebase. For example, it is often preferred to assign bug fixes to the person who worked on the relevant part of the code so that the fix is fast. But when you have a bug that does not have to be fixed ASAP, instead of assigning it to the person who wrote this codebase, give it to someone else who isn’t aware of it, helping them familiarize with the codebase in the process.
- Ask your team members to write documentations about the functionality that they may write. Write code comments, design documents and general documentation for the project.
- Everyone in the team should do code reviews.
- If you don’t do daily standups, meet your team members from time to time to share critical information etc.
- You as a team lead should make yourself dispensable. Make the team mature enough to continue on day to day tasks without needing you.
In my career, I have seen several cases where projects were failed or delayed mainly because “the person who knew the most” decided to switch the company. As a team member, team lead or the project manager, it is your responsibility to make yourself or your sub-ordinates dispensable. Increasing the bus factor may seem a bit cumbersome of a task but adopting it in your day to day task can give you a good control over the projects.