Entwicklungsindex für die Zusammenarbeit
Schlüsselwort-Tag: Metrikmodell Kontext-Tags: Gemeinschaft, Software, Ökosystem, Mitwirkender
Warum es wichtig ist
Open-Source-Projekte, als typische Manifestation menschlicher Gruppenintelligenz, ist die Fähigkeit, ein kollaboratives Entwicklungsmanagement zu etablieren, ein Schlüsselelement, das zum Erfolg des Projekts beiträgt. Und Code als Endergebnis eines Projekts ist die Essenz des Beitrags der gesamten Community. Wir bewerten also, wie gut der Entwicklungsprozess verwaltet wird und wie gut die Community die kollaborative Entwicklung anhand einer Reihe indirekter Metriken in Bezug auf den Codebeitrag durchführt.
Benutzergeschichten
Als Community-Manager möchte ich den Trend der Softwarequalität bei Versionsänderungen beobachten und was die Ursache (gute oder schlechte Gründe) für diese Änderungen sein kann. Als OSPO oder Programmmanager eines Unternehmens möchte ich mit Communitys zusammenarbeiten, die in der Lage sind, kontinuierlich qualitativ hochwertige Software zu produzieren. Dies ist besonders wichtig, wenn ich mehrere Projekte zur Auswahl habe. Als Benutzer möchte ich qualitativ hochwertige Softwareartefakte auswählen, um die Anforderung zu erfüllen.
Metriken im Metrikmodell
- Mitwirkende -- Ermitteln Sie, wie viele aktive Ersteller von Änderungsanträgen, Codeprüfer und Commit-Autoren in den letzten 90 Tagen vorhanden waren.
- Code-Änderungs-Commits
-- Bestimmen Sie die durchschnittliche Anzahl von Commits pro Woche in den letzten 90 Tagen.
-- Prozentsatz der Wochen mit mindestens einem Code-Commit in den letzten 90 Tagen.
-- Prozentsatz der Code-Repositories mit mindestens einem Code-Commit in den letzten 30 Tagen. - Überprüfung von Änderungsanforderungen
-- Prozentsatz der letzten 90-tägigen Code-Commits mit mindestens einem Prüfer, der nicht der Ersteller der Änderungsanforderung ist)
-- Prozentsatz der Personen, die Änderungsanforderungen zusammenführen, und Personen, die Änderungsanforderungen verfasst haben, die in den letzten 90 Tagen nicht dieselbe Person waren. - Technische Gabel
-- Bestimmen Sie die durchschnittliche Anzahl von Fork-Zählungen pro Woche in den letzten 90 Tagen. - Code ändert Zeilen
-- Bestimmen Sie die durchschnittliche Anzahl berührter Zeilen (hinzugefügte Zeilen plus entfernte Zeilen) pro Woche in den letzten 90 Tagen.
Dateneinblicke
Hintergrund des untersuchten Kontextes
Wir haben zwei Communities ausgewählt, um die Effektivität des Code-Qualitätsgarantie-Metrikmodells zu bewerten. Wir haben diese beiden Communities anonymisiert, um nicht beurteilen zu können, welche Community besser ist. In diesem Beispiel wandeln wir die Ergebnisse einfach in Erkenntnisse um und stellen einen Vergleich zweier Communities bereit, um das Metrikmodell besser zu verstehen. Beide Communities sind Open-Source-Frameworks für maschinelles Lernen. Sie alle haben viele Repositorys in ihrem Projekt, aber in unserem Beispiel haben wir ein Repository für jede Community ausgewählt, die die wichtigste Komponente für das ML-Framework darstellt. Wir haben Community A lila und Community B blau markiert. Beide Communities öffnen ihre Projekte fast gleichzeitig, in der neuesten Boomphase des maschinellen Lernens.
Erkenntnisse aus dem Metrikmodell
Wir haben jede Woche metrische Modellwerte gezählt, der Wertebereich liegt zwischen 0-1. Zu Beginn ist die Punktzahl von Community A viel höher als die von Community B. Die Punktzahl von Community B ist stetig nach oben gestiegen, bis sie im September 2020 die von Community A übertrifft. Zu diesem Zeitpunkt beginnt die Punktzahl von Community A zu sinken. Um tiefere Einblicke zu erhalten, haben wir das Ergebnis jeder Metrik überprüft.
Metrikspezifische Erkenntnisse aus dem Metrikmodell
Anzahl der Mitwirkenden
In dieser Metrik lenken wir die Aufmerksamkeit auf die Gruppe von Mitwirkenden, die innerhalb von Änderungsanforderungen und Code-Commit-Bemühungen geschlossen wurden. Die Anzahl der Mitwirkenden wurde durch Filter auf der weiter untersucht Aktivitätsdaten_und_Zeiten metrisch.
Community A (lila) zieht am Anfang viele Mitwirkende an Änderungswünschen an, die Anzahl ist viel größer als Community B (blau). Aber die Anzahl der Mitwirkenden an Änderungsanträgen in beiden Communities stieg bis etwa September 2020. Von diesem Zeitpunkt an ging die Anzahl der aktiven Mitwirkenden an Änderungsanträgen in Community A zurück. Vielleicht haben die Leute Community A verlassen und sind Community B beigetreten.
Commit-Häufigkeit
Wenn wir die Diagramme der Anzahl der Mitwirkenden und der Commit-Häufigkeit zusammen überprüfen, stellen wir fest, dass es starke Korrelationen gibt. Die Commit-Häufigkeit kann anhand einer Aggregation der bestimmt werden code_changes_commits metrisch.
Ist gewartet
In dieser Metrik haben wir den Prozentsatz der Wochen mit mindestens einem Code-Commit in den letzten 90 Tagen untersucht. Da die von uns ausgewählten Repositories die Schlüsselkomponente sind, stellen wir fest, dass beide Repositories eine hohe Wartungshäufigkeit aufweisen.
Commit- und Change-Request-Linked-Ratio
In dieser Metrik würden wir feststellen, dass viele Code-Commits durch Änderungsanforderungen zusammengeführt werden oder ein Pushen zum Hauptzweig erzwingen. Community B hat in den letzten drei Jahren die Transparenz ihrer Code-Beiträge deutlich erhöht, da diese Quote stets über 40 % lag.
Änderungsanforderung und verknüpfte Probleme
In dieser Metrik führen wir als dritte Referenz eine neue Community C ein, bei der es sich um eine junge Open-Source-Community für maschinelles Lernen handelt, die rot markiert ist. Wir konnten feststellen, dass sowohl Community A als auch Community B keine regelmäßige Regel für Änderungswünsche und Probleme hatten, die in der Beitragsrichtlinie verknüpft waren.
Code-Review-Verhältnis
Wenn wir die Diagramme der Änderungsanforderungen und Probleme im Zusammenhang mit der Code-Review-Rate überprüfen, können wir ihre starken Korrelationen finden. Aber bedeutet das wirklich, dass Community A und Community B dem Code-Review keine Aufmerksamkeit schenken? Wir sollten auch bedenken, dass sowohl Community A als auch Community B von zwei Unternehmen initialisiert werden, die die meisten Codebeiträge leisten. Bevor sie also Änderungsanforderungen auf der öffentlichen Code-Host-Plattform erstellen, werden wahrscheinlich interne Code-Reviews abgeschlossen.
Code-Zusammenführungsverhältnis
Es gibt nicht so viele Unterschiede zwischen Community A und Community B, da beide diese Metrik ernst nehmen. Dies kann die Wichtigkeit dieser Metrik in Bezug auf die Codequalitätsgarantie anzeigen.
Zeilen der Codehäufigkeit
Die Anzahl der Quellcodezeilen korreliert stark mit der Arbeitsbelastung, aber weniger mit der Wertschöpfung. Außerdem ist ungewiss, welche Form von Code in Codezeilen gezählt werden kann, da wir uns nicht auf die Codeform konzentrieren, sondern sie nur zur Beschreibung der Arbeitslast verwenden und ihr Gewicht im gesamten metrischen Modell gering ist.
Literaturhinweise
Mitwirkende
- Yehui Wang
- Liang Wang
- Chenqi Shan
- Jun Zhong
- Matt Germonprez
- Sean Goggin
- Vinod Ahuja
Um auf diese Metrik in Software oder Veröffentlichungen zu verweisen, verwenden Sie bitte diese stabile URL: https://chaoss.community/?p=4455