A big risk in software development is “knowledge risk.” This is the risk that someone is the only person who knows how a particular part of the system works. The project could be in serious trouble should the person leave the company or generally become unavailable.
We have a term for this in agile project management. It’s called “Truck Factor.” The name comes from the fact that when knowledge is localised, then any unexpected event–like a person getting hit by a truck–could jeopardise the project.
A Truck Factor of 1 is the worst. It means that there is some part of the system that is understood by only a single person. A Truck Factor of 2 means that at least two people understand every part of the system, and so on.
Here is how to calculate the Truck Factor for your project:
- Go through each class, file or component
- Calculate the number of people in the team who understand that part of the system
- This gives you the Truck Factor for that class or component
- The smallest of all the component truck factors is the Truck Factor for the project
Surprisingly, there are even projects with a Truck Factor of zero! How is this possible? Simple. It means that there once used to be someone who knew a component, who has since left the project. Nobody remaining in the team understands that component. The result is a Truck Factor of zero.
Ideally everyone in the team should know every part of the system, but that is not very practical. An achievable goal is that at least 25% of the team knows any one component.
Ironically, smaller teams usually have better truck factors compared to larger teams. In teams of 5-10 members, there is a high chance that most of them know most parts of the system. In teams with above 20 people, chances are that a team members only knows about the couple of modules that he or she worked on.


"Online communities, iterative methodologies and software scalability" with Andres Camacho - Vice President of Engineering at Vinfolio 