How to protect software development projects from bus factor problem
Do you know what a bus factor is? Should it be a nightmare for startups that build in-house teams or hire a software development agency? Check out the best practices to protect the development projects from the bus factor risk.
The bus factor is a risk management term originating from the phrase "in case they get hit by a bus". The bus factor is a measurement of risk related to the minimal number of people within the team and the quality of knowledge sharing that are required for the projects to pursue in case somebody "gets hit by a bus".
The lower the number of key team members that share some unique knowledge, the lower the bus factor is. If there is only 1 member of the team that has crucial isolated knowledge and distinctive skills then bus factor = 1. That is a situation which every organisation should avoid.
Every project manager and startup that hires a software agency should answer this question: If somebody “gets hit by a bus”, will the team be able to go on with the project?
At Bright Inventions we have developed lots of best practices that help to protect the project and client from the bus factor = 1. Let us take a look at some of them!
Don’t speak about it, write it. A well-written documentation is an important source of knowledge about the project, especially for new team members. Remember to include architecture decision records that show the reason behind every significant decision. It definitely helps to pursue the software development process even if somebody “gets hit by a bus”.
When it is beneficial, use some tools that automate the processes and support developers. It raises the effectiveness and reduces the bus factor risk at the same time. Continuous integration (CI) and continuous delivery (CD) allows for automated building, testing, and deployment, including some customized settings for each environment.
In the beginning, automation may seem to be time-consuming but in the end it is truly a time-saver with lots of other benefits. In case of somebody being “hit by a bus”, you are not dependent on other people to conduct e.g. the deployment. You rely on scripts to do the job. You reduce the risk of human errors, too. Automation not only increases the effectiveness of your team but also supports you during crises.
Imagine a situation when a person “hit by a bus” is the only one that has passwords to the software product and infrastructure. There is an easy way to minimize that risk. Thanks to secret management tools you can safely store and share passwords, keys and API within the team and make sure that all that information isn’t accessible only by one member of the team.
When you have less and more experienced developers within the team, they should handle issues together. Only then less experienced developers can learn from others. Handling difficult tasks only by seniors could significantly increase the risk of the bus factor.
In addition, pair programming is worth considering. Working in pairs is a part of agile methodology (yep, we are agile fans). It helps to constantly review each other's ideas, solutions and code. It ensures faster development of the team, delivering better solutions, and (by the way) it is a great way to increase the bus factor.
Nowadays, the number of senior developers is still insufficient, so the recruiting processes never end. Recruiters have to regularly bring new talents to the team. It is related to the bus problem as well. The stable number of seniors within the teams helps to protect business from the low bus factor.
What is more, it may be easier to reduce the bus factor risk when you (as a client) rely on a software development company instead of so called “body leasing” companies. When you hire a team that works together for years (instead of developers that have never worked together before), then it is easier to maintain the high quality of work, ethics and teamwork.
If you decide to hire a software development agency, then you should get all the access to the code, infrastructure and tools needed to develop your product. It helps to protect you from vendor lock-in and reduces the bus factor risk as well.
When you hire a software team you have to always have in mind the bus factor issue. Fortunately, when your team knows how to share knowledge and communicate effectively, the bus factor shouldn’t be so much of a concern. Just stay calm and… follow the practices that we’ve presented. 😉
Are you looking for a software development company? Estimate your project!
Co-author: Mateusz Klimczak, Technical Leader & Project Manager @ Bright Inventions