Aber mache ich nicht wieder Bullshit? Wie und warum werden Qualitätsmetriken implementiert?

Hallo Habr! Sobald wir die Metrik "Es scheint besser zu sein" verwendet haben, um die Qualität unserer Veröffentlichungen zu bewerten. Aber dann haben wir uns entschlossen, auf etwas Zuverlässigeres zu vertrauen. In diesem Artikel werde ich darüber sprechen, wie ich nach einem Metrikleitfaden gesucht, ihn nicht gefunden und meinen eigenen erstellt habe.



Kommt es vor, dass Sie scheinbar nützliche Arbeit für ein Projekt leisten, aber nicht verstehen, ob dies Vorteile bringt? Wir haben also einmal Autotests geschrieben, konnten aber nicht objektiv sagen, ob die Veröffentlichungen des Monolithen und anderer Dienste, bei denen die aktive Entwicklung besser ist, besser geworden sind.

Auf der Suche nach Metriken


Ich habe im Internet gesucht und aus irgendeinem Grund keine Artikel oder vorgefertigten Anleitungen gefunden, wie man die richtigen Metriken auswählt, wie man sie sammelt und was man als nächstes damit macht. Aber während ich nach Informationen suchte, fand ich nützliche Videos und Artikel, die mir bei der Bewältigung dieser schwierigen Aufgabe halfen. Links zu ihnen werden im Artikel angezeigt.

Ich hoffe, dieser Artikel ist nützlich für diejenigen, die darüber nachdenken, etwas an ihrem Projekt zu messen, aber nicht wissen, wo sie anfangen sollen. Der Artikel enthält persönliche Erfahrungen, Informationen aus Artikeln, Videos und kostenpflichtigen Kursen.

Eine Sekunde vor der Erstellung eines Qualitätsmesssystems
Bevor wir uns für ein System von Qualitätsmetriken entschieden haben, haben wir bereits kontinuierlich gemessen:

  • Die Zeit, die für die Freigabe des Monolithen aufgewendet wurde (vom Zeitpunkt der Erstellung des Freigabezweigs bis zur Zusammenführung dieses Zweigs im Master).
  • Die Anzahl der Monolith-Release-Rollbacks an den Master aufgrund von Fehlern.
  • Zeit in Stop the Line verbracht .
  • Die Anzahl der Starts der Monolith-Pipeline-Phase in TeamCity mit allen Autotests, bis sie grün wurde.

Wie Sie sehen können, haben wir nur gemessen, was mit dem Monolithen verbunden ist. Für andere Dienste haben sie nichts gemessen.

Wir implementieren ein Qualitätsmesssystem in 11 Schritten


Hier ist eine Checkliste mit 11 Schritten, mit denen Sie alles implementieren und nichts verpassen können.

Schritt 1. Definieren Sie den Zweck Ihrer Messungen


Verstehen Sie, warum Sie etwas messen möchten. Einfach so zu messen, macht aus Gründen der Messung keinen Sinn.

Zum Beispiel wollten wir wissen, wie wir uns den Qualitätszielen nähern, die wir uns zuvor gesetzt haben. Wir wollten auch die Dynamik der Indikatoren nach den Bemühungen sehen. Die Zahlen des aktuellen Zustands bedeuten für sich genommen nichts. Dies sind nur Zahlen. Wenn wir jedoch die Zahlen in der Dynamik beobachten, können wir den Einfluss unserer Handlungen erkennen.

Schritt 2. Ziele definieren


Sie müssen verstehen, wonach Sie streben. Testzeit reduzieren? Reduzieren Sie die Anzahl der kritischen Fehler im Produkt? Testabdeckung erhöhen?

In meinem Fall gab es keine Probleme bei der Festlegung von Zielindikatoren, da unser Unternehmen Qualitätsziele hat. Diese Ziele wurden zur Grundlage für zukünftige Metriken. Unsere Ziele:

  • Eine Monolithfreisetzung dauert nicht länger als 4 Stunden.
  • 0 Hotfixes und Rollbacks in Monolith-, Site- und mobilen Anwendungen.

Schritt 3. Legen Sie die Metriken fest


Überlegen Sie, wie Sie erkennen, dass Sie sich Ihren Zielen nähern.
In dieser Phase der Arbeit hat mir der Artikel „ Die wichtigsten QS-Metriken “ geholfen.

Für unser System habe ich solche Indikatoren gewählt
  • Zeit zu veröffentlichen . Dieser Indikator misst die Zeit (in Arbeitsstunden) zwischen dem Zusammenführen des vorherigen Release-Zweigs im Master und dem Zusammenführen des aktuellen Releases im Master.

    Wir haben diese Zeit in vier Phasen unterteilt: Vorbereitung des Standes, Landschaftsgestaltung der Pipeline-Phase, manuelle Regressionstests, Bereitstellung für das Produkt.

    Wir haben diese Zeit in Phasen unterteilt, um die Konsequenzen unseres Handelns im Detail zu sehen und den Engpass in unserem Prozess genau bestimmen zu können.

    Stufen der Release-Zeit-Metrik
  • Der Koeffizient von "Problem Releases" für alle Dienste . Dies ist das Verhältnis von „Problem Releases“ zur Gesamtzahl der Releases, multipliziert mit 100%. Eine „problematische Version“ ist eine Version, bei der eine Version, ein Hotfix oder ein Datenfix zurückgesetzt wurde.
    Verhältnis problematischer Releases zu Total Releases
  • Die Dichte der Hotfixes für einen Dienst für einen Monolithen ist das Verhältnis der Anzahl der Hotfixes für einen Dienst zur Gesamtzahl der Hotfixes.
  • Manuelle Regressionszeit für die mobile Anwendung . Dies ist die Zeit vom Beginn der manuellen Regression bis zu ihrem Abschluss.


Wichtig! Nehmen Sie nicht viele Metriken gleichzeitig. Drei oder vier reichen für den Anfang. Wenn sich der Prozess verbessert, können Sie bei Bedarf weitere hinzufügen.

Viele Metriken sind schwer zu verwalten. Die Wahrscheinlichkeit wächst, dass das System nicht startet. Und wenn der Prozess nicht beim ersten Mal startet, wird es beim nächsten Mal schwieriger, ihn zu starten, da Sie und die Mitarbeiter negative Erfahrungen haben.

Schritt 4. Entscheiden Sie sich für die Einheiten


Verschiedene Indikatoren können in verschiedenen Einheiten gelesen werden. Sie müssen sofort auswählen, dass alle Metriken eine Maßeinheit haben, da sonst Missverständnisse und Fehlinterpretationen auftreten können.

Wir haben Probleme mit diesem Artikel. Wir haben die Veröffentlichungszeit in Stunden einschließlich Nachtstunden, aber ohne Wochenenden gezählt. Gleichzeitig wurde der Zielwert in 4 Stunden freigegeben. Sehr oft gab es Situationen, in denen wir den Zweig release-xxx heute um 16:00 Uhr erstellt und am nächsten Tag um 10:00 Uhr beendet haben. In unserer Metrik wurden 18 Stunden angenommen, aber tatsächlich wurden aktive Aktionen nur 3 Stunden, wenn nicht weniger, ausgeführt.

Wenn wir auf diese Weise weiter gezählt hätten, hätten wir den Indikator „4 Stunden“ in unserer Metrik nie erreicht. Nachdem wir uns der Wahl gestellt, das Ziel auf 12 Stunden erhöht oder nur die Arbeitszeit berücksichtigt haben, haben wir uns für die zweite entschieden.

Schritt 5. Analyse der ausgewählten Metriken auf Eignung


In dem Video „ Simple Practice Testing Metrics “ schlug der Redner eine coole Methode zur Analyse von Eignungsmetriken vor. Sie müssen 9 Fragen für jede Metrik beantworten und eine Entscheidung treffen.

Zeit bis zur Freigabe der Metrikanalyse zur Eignung
  • Der Zweck der Messung . Dieser Indikator sollte sich auf das Geschäftsziel beziehen. Die Metrik "Time to Release" bezieht sich auf das Geschäftsziel - Release in 4 Stunden.
  • Für wen diese Metrik bestimmt ist . Wer wird sich diese Metrik ansehen? Produktberater, Entwickler, Manager, Tester, Scrum-Master?

    Der Product Ocer (weil es für ihn wichtig ist zu verstehen, wie viele Releases pro Sprint wir einführen können), Entwickler (weil sie verstehen wollen, wann ihr Code auf dem Produkt sein wird) und Tester (da die Zeit abgelaufen ist) Das Testen wirkt sich direkt auf diese Metrik aus.
  • Welche Frage wird von der Benutzermetrik beantwortet? Formulieren Sie die Fragen, die Sie mit dieser Metrik beantworten. Die Metrik "Release Time" beantwortet die Frage: "Wie oft veröffentlichen wir?"
  • Geben Sie die Idee der Metrik und ihre Beschreibung an. Beschreiben Sie die Metrik kurz, aber klar. Ich habe die Metrik „Time to Release“ wie folgt beschrieben: „Wir möchten so oft wie möglich freigegeben werden. Diese Metrik zeigt, wie schnell wir freigeben. Die Veröffentlichungszeit ist die Zeit in den Geschäftszeiten von 9:00 bis 18:00 Uhr, außer an Wochenenden und Feiertagen. Der Beginn eines Releases wird als Erstellung eines Release-Zweigs oder Zusammenführen des vorherigen Releases mit dem Master betrachtet. Das Ende des Releases ist das Einfügen des Release-Zweigs in den Master. Teilen Sie die Zeit in separate Phasen auf, zum Beispiel: Vorbereitung auf die Freigabe, Bestehen von Autotests, manuelle Tests, Berechnung für Produkte. “
  • Notwendige Bedingungen . Listen Sie hier die Bedingungen oder Einschränkungen für das Sammeln von Metriken auf. Von wem, wann, woher kommen die Daten für Metriken? In meinem Fall weiß ich, wo ich Veröffentlichungen aller Teile sehen kann. Monolith - Release-xxx-Zweige mit dem Master zusammenführen. Website - Kartoffeln in Kaiten.io auf dem Release Board. Bewerbungen - Ich weiß es noch nicht, aber ich werde es herausfinden. "
  • Erste Messungen. Aber ich habe diesen Punkt nicht verstanden und weiß nicht, wie ich ihn beschreiben soll. Wer verstanden hat oder weiß, was hier besprochen werden kann, schreibt in die Kommentare.
  • Geben Sie die Formel zur Berechnung der Metrik an. Für die Metrik „Time to Release“: Wie viel Zeit in Arbeitsstunden ist von der Zusammenführung der vorherigen Version mit dem Master bis zur Zusammenführung der aktuellen Version mit dem Master (außer an Wochenenden und Feiertagen) vergangen. Als Ergebnis erhalten wir die Arbeitsstunden, die wir für die Veröffentlichung aufgewendet haben.
  • Entscheidungskriterien. Bestimmen Sie, was Sie tun werden, wenn Sie Änderungen an dieser Metrik sehen. Beschreibe deine Reaktion. Meine Antwort auf die Metrik "Time to Release" lautet: "Sie müssen auf die Metrik reagieren, indem Sie nach Engpässen suchen und diese Engpässe beseitigen."
  • Frequenz. Wie oft werden wir die Metrik sammeln. Wir wollten unsere Metrik wöchentlich überprüfen, aber tatsächlich machen wir das öfter.


Nach einer so einfachen Analyse wird sofort klar, ob Sie diese Metrik benötigen oder nicht. Es gibt ein tieferes Verständnis der Metrik selbst und ihres Werts für das Unternehmen und Sie.

Schritt 6. Richten Sie die Metriken an den Stakeholdern aus


Zeigen Sie den ausgewählten Metriken ausgewählte Metriken an. Besprechen Sie die Einschränkungen, die Sie in der Analysephase herausgefunden haben, sowie Möglichkeiten, diese zu beseitigen oder zumindest zu reduzieren. Es ist besonders wichtig, die Zustimmung und Zustimmung derjenigen einzuholen, die diese Metriken sammeln und ausfüllen.

Ich habe meine Metriken in drei Schritten besprochen: mit Testern, Entwicklern und Produkt-Overs. Erst nachdem alle ausdrücklich zugestimmt hatten, dass diese Metriken die Qualität des Systems anzeigen, konnte ich mit dem nächsten Schritt fortfahren.

Schritt 7. Visualisieren Sie die Ergebnisse


Die Leute werden die Tabellen nicht lesen und die Dynamik nicht selbst beobachten. Daher müssen Sie auf die Sichtbarkeit achten.

Ich habe eine Tabelle in Google Sheets erstellt, Formeln geschrieben und mich gefreut, die Tabelle meinen Kollegen präsentieren zu können. Unser CTO schlug vor, diese Metriken zu visualisieren. Genauer gesagt, um sicherzustellen, dass in 15 Sekunden der aktuelle Status des Systems klar ist: Ist es im Vergleich zum vorherigen Sprint besser geworden oder hat sich die Qualität verringert?

Gemeinsam haben wir die Indikatoren visualisiert. Dann bat ich die Leute zu erzählen, was sie auf dieser Karte sahen. Nach den Antworten zu urteilen, haben wir das Ziel erreicht.



So sieht die Visualisierung der Release-Qualitätsmetrik aus. Alles ist klar, Sie können sofort sehen, wie es jetzt ist und wie es war, ob die Anzahl der Probleme die Anzahl der Releases überschreitet, es ist im Vergleich zu früheren Releases besser oder schlechter geworden. In einem idealen Zeitplan sollte die blaue Linie gegen unendlich tendieren und die rote Linie sollte auf 0 gehen.


Visualisierung der Beziehung von „problematischen Releases“ zur Gesamtzahl der Releases

Schritt 8. Beobachten Sie die Häufigkeit der Erfassung von Metriken


Es ist wichtig, den Prozess des Sammelns von Metriken festzulegen, um an der Häufigkeit zu arbeiten. Wenn es keinen Prozess gibt, verliert Ihr Dashboard seine Relevanz und stirbt. Es ist wichtig, dass es Stakeholder gibt, die dies tun. Wenn Sie sich darüber Sorgen machen, ist die betroffene Person bereits da.

Schritt 9. Informieren Sie die Leute immer wieder über die Ergebnisse.


Egal wie schön Ihr Dashboard ist, die Leute werden nicht dorthin gehen und sich die Metriken ansehen. Sobald jeder sehen wird, ist dies etwas Neues, aber nicht auf kontinuierlicher Basis.

Wir lösen dieses Problem auf drei Arten.
  • Eine Geschichte über Metriken im allgemeinen Teil unseres Sprint-Reviews.
  • Fazit von Grafiken auf dem Monitor im Korridor, die jeder jeden Tag sieht, so dass die Zahlen und Grafiken immer vor Ihren Augen sind.
  • Veröffentlichen Sie die Slash Dashboard-Zusammenfassung. Die Hauptsache ist, die Dynamik bei der Veröffentlichung solcher Berichte zu zeigen: Sie ist im Vergleich zum vorherigen Sprint besser oder schlechter geworden. Und wenn Sie dies vor dem Team Retro veröffentlichen, können die Jungs Themen zur Diskussion stellen.


Schritt 10. Analysieren und Entscheidungen treffen


Sie müssen sich die Metriken ansehen und darauf basierende Entscheidungen treffen. Sie können Metriken als zusätzliches Argument verwenden, um zusätzliche Tests zu schreiben oder sich auf technische Schulden zu konzentrieren, anstatt auf Geschäftsfunktionen usw.

Schritt 11. Automatisieren


Automatisieren Sie die Erfassung von Metriken so weit wie möglich. Wenn Sie die gängigen Versionskontrollsysteme TaskMS und TestMS, CI / CD-Systeme, verwenden, verfügen höchstwahrscheinlich alle über eine offene API, mit der Sie diese Informationen problemlos abrufen können. Wenn Sie es nicht selbst tun können, bitten Sie die Entwickler um Hilfe. Möglicherweise müssen Sie hierfür einige Prozesse ändern. Es ist in Ordnung. Und dies ist ein niedriger Preis für die Vorteile, die Sie erhalten, wenn Sie mit dem Sammeln von Metriken beginnen.

Zum Beispiel haben wir einen Bot , der den Freisetzern hilft, die Freigabe zu würfeln und ihre Routine zu reduzieren.

Zusammenfassung und Schlussfolgerungen


Entscheidungen zu treffen, die die Qualität des Produkts aufgrund Ihrer inneren Gefühle beeinflussen, ist eine schlechte Idee. Gefühle können täuschen und Sie zur falschen Entscheidung bringen. Holen Sie sich also einfach das Metrik- und Qualitätsbewertungssystem.

Aber denken Sie daran, dass eine metrische Einrichtung wie eine Einrichtung für Haustiere ist. Neben dem Gewinn aus der Kommunikation mit einem neuen Freund erhalten Sie eine gewisse Verantwortung und Verpflichtung gegenüber ihm. Beginnen Sie die Metriken daher bewusst mit einem Verständnis für ihre Notwendigkeit und Bereitschaft, die Schwierigkeiten zu überwinden, die Sie auf Ihrem Weg erwarten.

Source: https://habr.com/ru/post/de468007/


All Articles