Qu’est-ce que le bus factor ?
- Le bus factor est un indicateur qui montre combien de membres d’une équipe devraient disparaître soudainement pour qu’un projet prenne du retard.
- En 2015, quand le contributeur de la seule codebase générant du revenu dans l’entreprise a été licencié, l’auteur a décidé d’écrire un plugin GitHub pour calculer cette métrique.
Développement du plugin
- Le développement du plugin a commencé en s’appuyant sur un article de recherche sur le truck factor.
- Les collègues craignaient que ce plugin puisse servir d’outil permettant aux managers de calculer facilement qui licencier.
Tentative de reproduction des résultats
- L’auteur a essayé de reproduire les résultats en utilisant les dépôts GitHub fournis dans l’article de recherche.
- Les données sont fournies au format JSON, et la visualisation est possible via des fichiers CSV.
- Les instructions du README ne fonctionnaient pas correctement, et il a fallu du temps pour résoudre le problème.
Utilisation de GNU Parallel
- GNU Parallel a été utilisé pour cloner plusieurs dépôts GitHub simultanément.
- Bien que la configuration soit limitée à 8 processus, tous les cœurs ont été utilisés au maximum.
Ruby Gems et NixOS
- L’installation du plugin Linguist a posé des difficultés.
- L’auteur cherche comment installer des Ruby Gems sur NixOS.
Recalcul des résultats
- L’auteur a forké le dépôt d’origine et recompilé les sources Java pour recalculer les résultats.
- Exemple de résultat pour le dépôt du noyau Linux : truck factor 12, couverture 49,98 %.
Problèmes et recherches supplémentaires
- Le processus de calcul ne prend pas en compte la procédure de review.
- Il faut enquêter sur les raisons pour lesquelles le truck factor du noyau Linux diffère autant de celui d’il y a 10 ans.
- L’auteur prévoit d’examiner les citations de l’article afin de trouver une meilleure méthode de calcul.
Conclusion – l’importance du bus factor
- Dans un article de 2015, le truck factor du noyau Linux était évalué à 90, alors qu’il est désormais calculé à 12.
- Cela ne signifie pas une amélioration.
- Davantage de visualisations et de détails sont disponibles sur le blog de mclare.
1 commentaires
Commentaires Hacker News
L’une des fonctionnalités de CodeScene consiste à identifier les zones à haut risque en repérant les parties du code fréquemment modifiées où la distribution des connaissances est faible
Amazon fournit, via des rapports sur les systèmes de code, des fonctions permettant de comprendre facilement l’activité des équipes et les facteurs de risque
Si GNU Parallel utilise tous les cœurs, c’est parce que chaque
git clonecrée plusieurs threadsindex-packpack.threadsà 1 peut aiderLe « bus factor » reflète l’autonomie et la transparence d’une équipe, et dans l’idéal, tous les membres de l’équipe devraient pouvoir tout comprendre
Il existe un malentendu selon lequel, à mesure que leur carrière progresse, les développeurs devraient se concentrer davantage sur la revue que sur l’écriture de code
L’auteur d’un système est défini comme l’utilisateur ayant apporté une contribution importante à un fichier, et si les auteurs couvrent moins de 50 % de l’ensemble du fichier, le système peut subir de sérieux retards
Dans les startups, la question lors des licenciements n’est pas « qui faut-il licencier ? », mais « quelle équipe peut développer rapidement la prochaine version ? »
Dans certains logiciels d’entreprise, il peut exister des tableaux de bord mesurant le volume d’e-mails envoyés et reçus
CPAN suit le bus factor depuis longtemps ; par exemple, celui de Moose est de 5
Le terme « lottery factor » est utilisé pour indiquer si un projet peut continuer même si quelqu’un gagne à la loterie et s’en va