Was ist der Bus-Faktor?
- Der Bus-Faktor ist eine Kennzahl dafür, wie viele Teammitglieder in einem Projekt plötzlich ausfallen müssten, damit sich das Projekt verzögert.
- 2015, als der Mitwirkende an der einzigen Codebasis des Unternehmens, die Umsatz generierte, entlassen wurde, beschloss ich, ein GitHub-Plugin zu schreiben, um das zu berechnen.
Entwicklung des Plugins
- Mit Bezug auf eine Truck-Factor-Forschungsarbeit begann ich mit der Entwicklung des Plugins.
- Kollegen äußerten die Sorge, dass dieses Plugin als Werkzeug verwendet werden könnte, mit dem Manager leicht berechnen können, wen sie entlassen.
Versuch, die Ergebnisse zu reproduzieren
- Ich versuchte, die Ergebnisse mithilfe des in der Forschungsarbeit bereitgestellten GitHub-Repositorys zu reproduzieren.
- Die Daten werden im JSON-Format bereitgestellt, Visualisierungen sind über CSV möglich.
- Die Anweisungen in der README funktionierten nicht richtig, daher kostete es Zeit, das Problem zu lösen.
Einsatz von GNU Parallel
- Mit GNU Parallel wurden mehrere GitHub-Repositories gleichzeitig geklont.
- Es war so eingestellt, dass nur 8 Prozesse verwendet werden, dennoch wurden alle Kerne vollständig ausgelastet.
Ruby Gems und NixOS
- Bei der Installation des Linguist-Plugins traten Schwierigkeiten auf.
- Es wird nach einer Möglichkeit gesucht, Ruby Gems unter NixOS zu installieren.
Neuberechnung der Ergebnisse
- Das ursprüngliche Repository wurde geforkt und die Ergebnisse durch Kompilieren des Java-Quellcodes neu berechnet.
- Beispielergebnis für das Linux-Kernel-Repository: Truck Factor 12, Coverage 49.98%.
Probleme und weitere Forschung
- Im Berechnungsprozess wird der Review-Prozess nicht berücksichtigt.
- Es muss untersucht werden, warum sich der Truck Factor des Linux-Kernels im Vergleich zu vor 10 Jahren so stark unterscheidet.
- Geplant ist, die Zitate der Arbeit zu prüfen, um eine bessere Berechnungsmethode zu finden.
Fazit – die Bedeutung des Bus-Faktors
- In einer Arbeit von 2015 wurde der Truck Factor des Linux-Kernels mit 90 bewertet, aktuell wird er mit 12 berechnet.
- Das bedeutet keine Verbesserung.
- Weitere Visualisierungen und Details finden sich im Blog von mclare.
1 Kommentare
Hacker-News-Kommentare
Eine der Funktionen von CodeScene besteht darin, risikoreiche Bereiche zu identifizieren, indem Teile mit geringer Wissensverteilung in häufig geänderten Codebereichen erkannt werden
Amazon bietet über Berichte zu Codesystemen Funktionen, mit denen sich Teamaktivität und Risikofaktoren leicht erfassen lassen
Der Grund, warum GNU Parallel alle Kerne nutzt, ist, dass jedes
git clonemehrereindex-pack-Threads erzeugtpack.threadsauf 1 zu setzenDer "Bus-Faktor" steht für die Autonomie und Transparenz eines Teams; im Idealzustand sollte jedes Teammitglied alles verstehen können
Es gibt das Missverständnis, dass Entwickler mit wachsender Karriere mehr Zeit auf Reviews als auf das Schreiben von Code verwenden sollten
Der Autor eines Systems wird als Benutzer definiert, der wesentliche Beiträge zu einer Datei geleistet hat; wenn die Autoren zusammen weniger als 50 % der gesamten Datei abdecken, kann das System unter erheblichen Verzögerungen leiden
Bei Entlassungen in Startups geht es nicht um die Frage "Wen entlassen wir?", sondern darum, "Wer ist das Team, das die nächste Version schnell entwickeln kann?"
In mancher Unternehmenssoftware kann es Dashboards geben, die das Volumen gesendeter und empfangener E-Mails messen
CPAN verfolgt den Bus-Faktor schon seit Langem; zum Beispiel liegt der Bus-Faktor von Moose bei 5
Der Begriff "Lotterie-Faktor" wird verwendet, um auszudrücken, ob ein Projekt weitergeführt werden kann, selbst wenn jemand im Lotto gewinnt und geht