Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it truck factor or bus factor? [closed]

Tags:

agile

It seems that both these terms get thrown around a lot. Both, I think, describe the same idea. Which was established first?

Also, it seems like some people describe it as a good thing to have a low x factor, while others describe it as a good thing to have a high x factor. Which is it?

like image 536
jaketrent Avatar asked Jan 29 '10 19:01

jaketrent


People also ask

What does bus factor means?

Definition. The "bus factor" is the minimum number of team members that have to suddenly disappear from a project before the project stalls due to lack of knowledgeable or competent personnel. The expression "hit by a bus" describes a person either dying or more generally disappearing suddenly from the project.

How is bus factor measured?

The simple explanation for calculating a project or team's bus factor is to say: “What is the minimum number of people that, if absent, would prevent work from continuing?” If a project cannot continue because a specific person is unavailable, you have a bus factor of 1.

How do you avoid the bus factor?

Good communication within a team ensures that information is shared, and further reduces bus factor. Practices like daily stand-ups, as well as frequently switching which other team members individuals work with (whether pairing or not), can help ensure knowledge is shared among all team members.

Why is the bus factor important for team work?

A high bus factor means that there are several individuals who know enough to successfully complete a project if an adverse event were to occur, such as a colleague falling ill, resigning, or going on maternity leave. Teamwork increases the bus factor for any project, and therefore reduces risk.


2 Answers

You want a high truck/bus factor:

Truck Factor (definition): "The number of people on your team who have to be hit with a truck before the project is in serious trouble"

(From: http://www.agileadvice.com/archives/2005/05/truck_factor.html)

i.e. you don't want parts of the code that only one person knows how it works or only one person can extend/maintain. Knowledge should be spread amongst the whole team via things like wiki info and pair-programming.

like image 187
Paolo Avatar answered Oct 12 '22 11:10

Paolo


Wikipedia says bus number is "more commonly known as truck number" But in the US, "hit by a bus" is practically an idiom, while "hit by a truck" is not (although either phrase is easily understood.) Regarding high/low being good, the wikipedia article says:

"High bus numbers are good (with the best case being equal to the number of developers on a project). This means all developers understand the codebase more or less equally. A low bus number (especially, one) represents a high risk."

I'd add to what @cartoonfox said: Promiscuous pair progamming is a good way to distribute critical knowledge around a team so that the truck number is as high as possible. If you don't swap pairs often and with many different team members, knowledge isn't distributed very quickly.

like image 20
JeffH Avatar answered Oct 12 '22 12:10

JeffH