1. Is My Project’s Truck Factor Low?
Theoretical and Empirical Considerations
About the Truck Factor Threshold
M. Torchiano, F. Ricca,A.Marchetto
Presenter: M.Morisio
2. Agenda
• What is the Truck-Factor?
• What happens to TF in OSS projects?
• When is TF low?
3. Truck Factor
Bob Alice Joe
Developers
Files File 1 File 2 File 3 File 4
4. Truck Factor
Bob Alice Joe
File 1 File 2 File 3 File 4
5. Truck Factor
Bob Alice Joe
File 1 File 2 File 3 File 4
The remaining developers know 75% of the system (3 out of 4)
6. Truck Factor
Bob Alice Joe
File 1 File 2 File 3 File 4
The remaining developer knows just 50% of the system (2 out of 4)
7. Truck Factor
• the number of developers on a team who
have to be hit with a truck (i.e., to go on
vacation, to become ill, or to leave the
company for another) before the project is in
serious trouble
i.e.
• before the remaining developers know less
than T% of the modules
8. Which factors do influence TF?
• Team size (n)
• Residual knowledge threshold (T )
– Minimum Proportion of known files before
reaching TF
• Knowledge ratio (KR)
– The average proportion of files known by each
developer
• Knowledge dispersion (σKR)
– Standard deviation of KR
10. Project Fragility Threshold
• A project is considered fragile when its TF is
below a minimum threshold
• Conjecture (Govindaray):
– Small teams (n<10): 40% of team size
– Large teams (n≥10): 20% ofteam size
• In practice:
– 16 out of 20 OSS projects are fragile
– Only 4 are exactly at the threshold level
11. Maximum TF
• Ideal condition:
– Developers are split into two groups knowing
KR ± σ of the system
– Such knowledge is uniformly distributed among
files
• The maximum achievable TF is:
13. Conclusion
• We compared the Govindaray threshold to the
theoretical maximum TF:
– the threshold appears either above the maximum
or just barely below, i.e. practically unreachable
• Real and healthy projects, when confronted
with such metric, appear as fragile
• Further work both empirical and theoretical is
needed to define a fragility threshold
applicable to real projects
Editor's Notes
Good morning everybody, this work concerns theoretical and empirical considerations on the Truck Factor and was performed by Marco Torchiano, FilippoRicca and Alessandro Marchetto. Unfortunately they had to stay at home,… some one babysitting,… someone hard working, and someone else fishing.
In this short presentation I will try to answer three main questions:…
To understand what the Truck Factor is, we need to consider a typical software project where we find developers and files.Each file is know to a subset of developers, typically just a few.
What happens if one of the developers leaves the project or has an accident?(he’s hit by a truck)Some files, known only to that unfortunate developer, become unknown for the project.
The remaining developers collectively know just a fraction of the files.(A truck hits another developer)Some other file, known only to the second unfortunate developer become unknown.
At this point the remaining team lost knowledge of most of the system
[ Questa slide sipotrebbe non mostraree dare la definizionementresimostra la slide precedente ]
Small projects have a large KR (required to know all the files) and tend to have more variabilityLarge projects tend to have small KR and smaller variability
The conjecture has been presented in a blog post, there is no conventional publication reporting itThe four non-fragile projects have team size (n=3 or 4) therefore 40% = 1, and the actual TF is exactly equal to the threshold.
[ la formula non èdacommentare, al limitesipotrebbesaltare la slide ]
The maximum TF as a function of team size for different KR values at a fixed σKR = 0.1 (smaller than any real value)It is important to remember that the maximum TF can be obtained only with a perfectly uniform distribution of file knowledge among developers; actual projects are far from this condition.The continuous black line is the fragility threshold as proposed by GovindarayWe can observe how for large (n>10) projects and small KR (typical case) it is quite possible the project never pass the fragility threshold.