on the computation of truck factor

13
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

Upload: marco-torchiano

Post on 20-Jul-2015

125 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: On the computation of Truck Factor

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

Page 2: On the computation of Truck Factor

Agenda

• What is the Truck-Factor?

• What happens to TF in OSS projects?

• When is TF low?

Page 3: On the computation of Truck Factor

Truck Factor

File 1 File 2 File 3 File 4

Developers

Files

Bob Alice Joe

Page 4: On the computation of Truck Factor

Truck Factor

File 1 File 2 File 3 File 4

Bob Alice Joe

File 1

Page 5: On the computation of Truck Factor

Truck Factor

File 2 File 3 File 4

Bob Alice Joe

The remaining developers know 75% of the system (3 out of 4)

File 1 File 3

Page 6: On the computation of Truck Factor

Truck Factor

File 2 File 4

Bob Alice Joe

The remaining developer knows just 50% of the system (2 out of 4)

File 1 File 3

Page 7: On the computation of Truck Factor

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

Page 8: On the computation of Truck Factor

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

Page 9: On the computation of Truck Factor

Sample projects

10 from Google code and 10 from Sourceforge

Page 10: On the computation of Truck Factor

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

Page 11: On the computation of Truck Factor

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:

Page 12: On the computation of Truck Factor

Maximum TF vs. Fragility Threshold

Page 13: On the computation of Truck Factor

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