Veröffentlichungsdatum: 1. Mai 2022
Als DORA-Metriken bezeichnet man ein Framework aus Performance-Metriken, mithilfe derer DevOps-Teams beurteilen können, wie effektiv sie Software entwickeln, bereitstellen und warten. Anhand der Metriken lassen sich Teams mit hervorragender, hoher, mittlerer und geringer Leistung identifizieren sowie Basiswerte festlegen, damit Unternehmen ihre DevOps-Performance kontinuierlich steigern und bessere Geschäftsergebnisse erzielen können. Die DORA-Metriken wurden von Googles DevOps Research and Assessments-Team definiert und basieren auf sechs Jahren Forschung über die DevOps-Praktiken von 31.000 Softwareentwicklern.
DevOps- und Engineering-Verantwortliche können die Leistung ihres Teams zwar häufig aus dem Bauch heraus beurteilen, tun sich jedoch schwer, dieses Bauchgefühl als konkreten Wert für das Unternehmen zu beziffern oder genau zu sagen, wo und wie Verbesserungen möglich wären. DORA-Metriken können dies erleichtern, indem sie eine objektive Methode zur Messung und Optimierung der Leistung bei der Softwarebereitstellung und zur Prüfung des Mehrwerts bieten.
In den folgenden Abschnitten stellen wir die vier spezifischen DORA-Metriken vor, erläutern, wie Softwareentwickler sie zur Bewertung ihrer Performance nutzen können und welche Vorteile und Herausforderungen mit ihrer Implementierung verbunden sind. Außerdem beschreiben wir hier den Einstieg in die Verwendung von DORA-Metriken.
Was sind die vier Schlüsselmetriken bei DORA?
Das DORA-Framework verwendet die vier nachfolgend beschriebenen Schlüsselmetriken, um zwei Kernbereiche von DevOps zu bewerten: Geschwindigkeit und Stabilität. Die Bereitstellungshäufigkeit und die mittlere Vorlaufzeit für Änderungen messen die DevOps-Geschwindigkeit, während die Ausfallrate von Änderungen und die Wiederherstellungszeit des Service ein Maß für die DevOps-Stabilität darstellen. Zusammen liefern diese vier DORA-Kennzahlen Basiswerte für die Performance eines DevOps-Teams und Hinweise darauf, wo sie verbessert werden kann.
1) Bereitstellungshäufigkeit
Die Bereitstellungshäufigkeit gibt an, wie oft ein Unternehmen Code erfolgreich in der Produktionsumgebung oder in Software-Releases für Endbenutzer bereitstellt. Laut dem DevOps-Ziel der „kontinuierlichen Bereitstellung“ sollten Teams mehrere Bereitstellungen pro Tag erreichen. Die Kennzahl „Bereitstellungshäufigkeit“ zeigt Teams hier ganz klar, wo sie diesbezüglich stehen.
Benchmarks für die Bereitstellungshäufigkeit sind:
- Hervorragend: Mehrere Bereitstellungen pro Tag
- Hoch: Zwischen einer Bereitstellung pro Woche und einer pro Monat
- Mittel: Zwischen einer Bereitstellung pro Monat und einer im halben Jahr
- Gering: Weniger als eine Bereitstellung pro sechs Monate
Unternehmen definieren eine erfolgreiche Bereitstellung unterschiedlich, und die Bereitstellungshäufigkeit kann selbst innerhalb eines Unternehmens von Team zu Team variieren.
2) Mittlere Vorlaufzeit für Änderungen
Die mittlere Vorlaufzeit für Änderungen misst die durchschnittliche Zeit zwischen einem Commit von Code und der Freigabe dieses Codes für die Produktionsumgebung. Die Messung der Vorlaufzeit ist wichtig, denn je kürzer sie ist, desto schneller erhält das Team Feedback und kann Softwareverbesserungen freigeben. Zur Berechnung der Vorlaufzeit wird die Zeit von Anfang bis Ende jedes Projekts gemessen und dann der Durchschnitt dieser Zeiten ermittelt.
Benchmarks für die mittlere Vorlaufzeit für Änderungen sind:
- Hervorragend: Weniger als eine Stunde
- Hoch: Zwischen einem Tag und einer Woche
- Mittel: Zwischen einem Monat und einem halben Jahr
- Gering: Mehr als sechs Monate
Die jeweiligen individuellen Prozesse eines Unternehmens – wie etwa separate Testteams oder gemeinsame Testumgebungen – können sich negativ auf die Vorlaufzeit und damit auf die Leistung des Teams auswirken.
3) Ausfallrate von Änderungen
Die Ausfallrate von Änderungen ist der Prozentsatz der Bereitstellungen, die einen Fehler in der Produktionsumgebung verursachen, der eine sofortige Behebung erfordert, wie etwa eine Serviceverschlechterung oder ein Ausfall. Eine niedrige Ausfallrate von Änderungen ist wünschenswert, denn je mehr Zeit ein Team mit der Behebung von Fehlern verbringt, desto weniger Zeit hat es für die Bereitstellung neuer Funktionen und die Steigerung des Mehrwerts für den Kunden. Diese Kennzahl wird in der Regel wie folgt berechnet: Man zählt, wie oft eine Bereitstellung zu einem Fehler führt, und teilt diesen Wert durch die Gesamtzahl der Bereitstellungen, um einen Durchschnittswert zu ermitteln. Sie können diese Metrik wie folgt berechnen:
(Bereitstellungsfehler : Gesamtzahl der Bereitstellungen) x 100
Benchmarks für die Ausfallrate von Änderungen sind:
- Hervorragend: 0 - 15 %
- Hoch: 16 - 30 %
- Mittel: 16 - 30 %
- Gering: 16 - 30 %
4) Wiederherstellungszeit
Die Kennzahl für die Zeit bis zur Wiederherstellung des Service, die manchmal auch als mittlere Wiederherstellungszeit oder Mean Time To Repair (MTTR) bezeichnet wird, misst, wie schnell ein Team einen Service wiederherstellen kann, wenn ein Fehler den Betrieb beeinträchtigt. Ein Fehler kann hier alles sein: von einem Fehler in der Produktionsumgebung bis hin zu einem unerwarteten Ausfall.
Benchmarks für die Wiederherstellungszeit sind:
- Hervorragend: Weniger als eine Stunde
- Hoch: Weniger als ein Tag
- Mittel: Zwischen einem Tag und einer Woche
- Gering: Mehr als sechs Monate
DORA nutzt vier Hauptmetriken, um die Leistung in zwei Kernbereichen von DevOps zu messen: Geschwindigkeit und Stabilität.
Was ist eine DORA-Umfrage (DORA = DevOps Research and Assessments)?
Eine DORA-Umfrage ist eine einfache Möglichkeit, Informationen zu den vier DORA-Metriken zu sammeln und den aktuellen Stand des Unternehmens hinsichtlich der Leistung bei der Softwarebereitstellung zu messen. Das DevOps Research and Assessments-Team von Google Cloud bietet eine offizielle Umfrage namens DORA DevOps Quick Check an. Sie beantworten dabei einfach fünf Multiple Choice-Fragen, und Ihre Ergebnisse werden mit denen anderer Unternehmen verglichen. So erhalten Sie einen groben Überblick darüber, auf welche DevOps-Funktionen Ihr Unternehmen bei Verbesserungsmaßnahmen das Hauptaugenmerk richten sollte.
Eine DORA-Umfrage liefert allgemeine Hinweise, doch viele Unternehmen engagieren zusätzlich Drittanbieter zur Durchführung individueller Bewertungen. Dabei werden die Kultur, Praktiken, Technologien und Prozesse des Unternehmens genauer untersucht, um spezifische Verbesserungsmöglichkeiten für die Produktivität des DevOps-Teams zu ermitteln.
Was sind mögliche Anwendungsbeispiele bzw. Use Cases von DORA-Metriken?
Unternehmen in praktisch jeder Branche können DORA-Metriken dazu nutzen, ihre Leistung in der Softwareentwicklung und -bereitstellung zu messen und zu verbessern. Bei der Entwicklung mobiler Spiele könnte man anhand von DORA-Kennzahlen beispielsweise verstehen und optimieren, wie die nötige Reaktion aussehen muss, wenn ein Spiel offline geht, um die Unzufriedenheit der Kunden zu minimieren und den Umsatz zu sichern. Ein Finanzunternehmen könnte seinen Stakeholdern die positiven Auswirkungen von DevOps auf das Geschäft verdeutlichen, indem es die DORA-Metriken in Dollarbeträge umrechnet, die durch die verbesserte Produktivität oder verringerte Ausfallzeiten eingespart werden könnten.
Was sind die Vorteile und Herausforderungen von DORA-Metriken?
DORA-Metriken sind ein nützliches Tool, um die Performance Ihres Unternehmens bei der Softwarebereitstellung zu quantifizieren und mit der Leistung anderer Unternehmen in der Branche zu vergleichen. DORA-Metriken können zu folgenden Ergebnissen führen:
- Bessere Entscheidungsfindung: Das konsequente Tracking von DORA-Metriken hilft Unternehmen, den aktuellen Zustand ihres Entwicklungsprozesses anhand harter Daten zu verstehen und Entscheidungen zu möglichen Verbesserungen zu treffen. Da sich DevOps-Teams mit DORA auf bestimmte Kennzahlen konzentrieren können, anstatt alles zu überwachen, können die Teams leichter Engpässe in ihrem Prozess erkennen und sind dadurch in der Lage, sich auf die Behebung dieser Engpässe zu konzentrieren und die Ergebnisse zu validieren. Die führt unter dem Strich zu einer schnelleren, qualitativ hochwertigen Bereitstellung, die auf Daten und nicht auf Bauchgefühl beruht.
- Größerer Mehrwert: Teams mit hervorragender und hoher Leistung können sicher sein, dass sie ihren Kunden Mehrwert bieten und eine positive Wirkung für das Unternehmen haben. Anhand der DORA-Kennzahlen können sich Teams mit geringer Leistung einen klares Bild davon machen, wo es in ihrem Prozess eventuell hapert, und erhalten Hinweise darauf, wie sie den Mehrwert steigern.
- Kontinuierliche Verbesserung: DevOps-Teams können Basiswerte für ihre Leistung mit DORA-Kennzahlen ermitteln und herausfinden, welche Gewohnheiten, Richtlinien, Prozesse, Technologien und andere Faktoren ihre Produktivität beeinträchtigen. Die vier Schlüsselmetriken ermöglichen es, Ziele zur Optimierung der Teamleistung festzulegen und die effektivsten Methoden zur Zielerreichung zu bestimmen.
DORA-Metriken können zu besserer Entscheidungsfindung, größerem Mehrwert und kontinuierlicher Verbesserung führen.
DORA-Metriken bieten zwar einen Ausgangspunkt für die Bewertung der Leistung Ihrer Softwarebereitstellung, bringen möglicherweise aber auch einige Herausforderungen mit sich. Die Kennzahlen können von Unternehmen zu Unternehmen stark variieren, was zu Schwierigkeiten bei der genauen Bewertung der Performance des Unternehmens als Ganzes und beim Vergleich mit anderen Unternehmen führen kann. Für jede Kennzahl müssen in der Regel zudem Informationen aus verschiedenen Tools und Anwendungen erfasst werden. Die Ermittlung der Zeit bis zur Wiederherstellung des Service kann beispielsweise die Erfassung von Daten aus PagerDuty, GitHub und Jira erfordern. Wenn Teams mit unterschiedlichen Tools arbeiten, kann dies die Erfassung und Konsolidierung solcher Daten zusätzlich erschweren.
Wie misst man den DevOps-Erfolg mit DORA?
DORA verwendet die vier Schlüsselmetriken, um Teams mit hervorragender, hoher, mittlerer und geringer Leistung zu identifizieren. Der Bericht zum Stand von DevOps hat gezeigt, dass hervorragende Teams 208-mal häufiger Code bereitstellen, eine 106-mal schnellere Vorlaufzeit von Commit zur Bereitstellung haben, eine 2604-mal kürzere Wiederherstellungszeit nach Vorfällen haben und eine 7-mal niedrigere Ausfallrate von Änderungen aufweisen als Teams mit geringer Leistung. Außerdem ist die Wahrscheinlichkeit doppelt so hoch, dass hervorragende Teams ihre Leistungsvorgaben erfüllen oder übertreffen.
Wie misst und verbessert man die MTTR mit DORA?
Zur Berechnung der MTTR wird die Gesamtausfallzeit innerhalb eines bestimmten Zeitraums durch die Gesamtanzahl der Ausfälle dividiert. Wenn ein System beispielsweise dreimal an einem Tag ausgefallen ist und diese Ausfälle insgesamt zu einer Ausfallzeit von einer Stunde geführt haben, ergäbe dies eine MTTR von 20 Minuten.
MTTR = 60 Minuten : 3 Ausfälle = 20 Minuten
Die MTTR beginnt in dem Moment, in dem ein Ausfall erkannt wird, und umfasst die Diagnose- und Reparaturzeit, das Testen sowie alle weiteren Aktivitäten bis zur erneuten Bereitstellung des Service für Endbenutzer.
Bei DORA ist die MTTR eine Messgröße für die Stabilität des kontinuierlichen Entwicklungsprozesses eines Unternehmens und wird meist verwendet, um zu bewerten, wie schnell Teams Ausfälle in der Continuous Delivery-Pipeline beheben können. Eine niedrige MTTR bedeutet, dass ein Team Probleme schnell diagnostizieren und beheben kann und Ausfälle eine geringe Auswirkung auf das Geschäft haben. Eine hohe MTTR bedeutet, dass die Incident Response eines Teams langsam oder ineffektiv ist und ein Ausfall eine erhebliche Servicestörung zur Folge haben könnte.
Es gibt zwar keine magische Formel für die Verbesserung der MTTR, die Reaktionszeit kann jedoch durch die Umsetzung einiger Best Practices gesenkt werden:
- Incidents eingehend analysieren: Um die MTTR zu verkürzen, müssen Sie zunächst die Art der auftretenden Incidents und Ausfälle besser verstehen. Moderne Unternehmenssoftware kann die Zusammenführung Ihrer in abgeschotteten Silostrukturen gespeicherten Daten in einer konsolidierten Ansicht erleichtern, sodass eine zuverlässige MTTR-Kennzahl ermittelt werden kann, die wertvolle Erkenntnisse über die ursächlichen Faktoren liefert.
- Mit Monitoring den Überblick behalten: Je früher Sie ein Problem erkennen, desto größer sind Ihre Chancen, es beheben zu können, bevor es sich auf Ihre Benutzer auswirkt. Eine moderne Monitoring-Lösung bietet einen kontinuierlichen Strom von Echtzeitdaten über die System-Performance in einer zentralen, benutzerfreundlichen Dashboard-Oberfläche und macht Sie so auf Probleme aufmerksam.
- Einen Aktionsplan für das Incident Management entwickeln: Im Allgemeinen bevorzugen Unternehmen einen von zwei Ansätzen: Ad-hoc-Reaktionen sind häufig bei kleineren Unternehmen mit knappen Ressourcen notwendig, während große Unternehmen strenger vorgegebene Verfahren und Protokolle bevorzugen. Welche Form Ihr Plan auch annimmt, er sollte klar formulieren, wer im Fall eines Vorfalls zu benachrichtigen ist, wie ein Incident dokumentiert werden muss und welche Schritte zu seiner Behebung ergriffen werden sollen.
- Incident Management-System automatisieren: Ein simpler Telefonanruf kann bei Vorfällen mit niedriger Priorität während der Geschäftszeiten genügen. Doch bei schwerwiegenden Incidents, ganz besonders außerhalb der Geschäftszeiten, müssen Sie sicherstellen, dass alle Bereiche abgedeckt sind. Ein automatisiertes Incident Management-System, das alle Mitarbeiter in Bereitschaft gleichzeitig per Telefon, SMS und E-Mail benachrichtigen kann, ist entscheidend für eine schnelle Reaktion.
- Mitarbeiter für unterschiedliche Rollen ausbilden: Es ist riskant, wenn sich nur eine Person mit den einzelnen Systemen oder Technologien auskennt. Was passiert bei einem Systemausfall, wenn diese Person im Urlaub ist? Mit mehreren Ingenieuren und Technikern, von denen jeder in mehreren Funktions- und Aufgabenbereichen versiert ist, ist Ihr Team besser aufgestellt, um effektiv zu reagieren – ganz gleich, wer gerade Bereitschaftsdienst hat.
- KI nutzen: AIOps hilft DevOps-Teams, besser auf Produktionsausfälle zu reagieren und ihre MTTR zu senken. AIOps kann insbesondere dazu beitragen, Probleme zu erkennen, bevor sie sich auf Benutzer auswirken. Dabei werden Vorfälle nach ihrer Kritikalität priorisiert, zusammenhängende Incidents korreliert und mit kontextuellen Informationen angereichert, Vorfälle an die entsprechenden Mitglieder des Response-Teams gemeldet und eskaliert und die Incident-Behebung automatisiert.
- Folgeprozess einrichten: Nach der Incident-Behebung ist es wichtig, mit allen wichtigen Teammitgliedern in einem Folgeprozess herauszufinden, wie und warum das Problem auftrat, und eine Strategie zu entwickeln, mit der ein erneutes Auftreten eines solchen Incidents verhindert werden kann. Bei DevOps geschieht dies in der Regel in Form einer Incident-Nachbereitung ohne Schuldzuweisung, bei der sowohl die technischen als auch menschlichen Faktoren der Response-Aktivitäten analysiert werden, die man verbessern könnte. Dies führt letztendlich zu einer verbesserten Incident Response und einer geringeren MTTR sowie zu innovativeren Ideen und besseren Anwendungen.
Welche Bedeutung hat DORA in der agilen Softwareentwicklung?
In der agilen Softwareentwicklung werden DORA-Metriken verwendet, um die Produktivität von DevOps-Teams sowie die Geschwindigkeit und Stabilität des Softwarebereitstellungsprozesses zu verbessern. DORA unterstützt das Ziel der agilen Softwareentwicklung, schneller und einfacher Mehrwert für den Kunden zu schaffen, indem es Engpässe aufzeigt. DORA-Metriken bieten zudem einen Mechanismus zur Messung der Bereitstellungsleistung, sodass Teams Praktiken und Ergebnisse kontinuierlich bewerten und schnell auf Änderungen reagieren können. Auf diese Weise unterstützen DORA-Metriken datengestützte Entscheidungen, die zu kontinuierlichen Verbesserungen führen.
Was sind Flow-Metriken?
Bei Flow-Metriken handelt es sich um ein Framework zur Messung des Werts, den ein Produktwertstrom liefert, und der Geschwindigkeit, mit der dieser von Anfang bis Ende geliefert wird. Während der Schwerpunkt bei herkömmlichen Leistungskennzahlen auf bestimmten Prozessen und Aufgaben liegt, messen Flow-Metriken den gesamten Geschäftsfluss und seine Ergebnisse. Dadurch können Unternehmen erkennen, wo Störungen im Wertstrom vorliegen, die die gewünschten Ergebnisse verhindern.
Es gibt vier wesentliche Flow-Metriken zum Messen von Wertströmen:
- Flow Velocity: Diese Kennzahl misst, wie viele Aufgaben (Flow Items) innerhalb eines bestimmten Zeitraums abgeschlossen werden, um festzustellen, ob der Wert steigt.
- Flow Time: Diese Metrik erfasst, wieviel Zeit zwischen dem Anfang und Ende eines Flow Items vergangen ist, um die Markteinführungszeit zu ermitteln.
- Flow Efficiency: Diese Kennzahl misst das Verhältnis zwischen der aktiven (wertschöpfenden) Zeit und der gesamten Flusszeit, um Zeitverschwendung im Wertstrom zu identifizieren.
- Flow Load: Diese Kenngröße misst die Anzahl an Flow Items im Wertstrom, um eine zu hohe bzw. zu geringe Nutzung von Wertströmen zu erkennen.
Mithilfe von Flow-Metriken können Unternehmen die Bewegungen in ihrem gesamten Softwarebereitstellungsprozess verfolgen, und zwar sowohl aus Kunden- als auch aus Unternehmenssicht und unabhängig davon, welche Softwarebereitstellungsmethoden sie verwenden. Unternehmen können dadurch klarer einschätzen, wie sich die Softwarebereitstellung auf ihre Geschäftsergebnisse auswirkt.
Was sind gängige Tools zur Erfassung von DORA-Metriken?
Wenn Sie die Erfassung von DORA-Metriken automatisieren, können Sie damit beginnen, Ihre Leistung bei der Softwarebereitstellung zu verbessern. Es gibt verschiedene Tracking-Tools für Engineering-Kennzahlen, die die vier wichtigsten DORA-Metriken erfassen:
- Faros
- Haystack
- LinearB
- Sleuth
- Velocity by Code Climate
Bei der Wahl eines Metrik-Trackers sollten Sie sicherstellen, dass er in die wichtigsten Systeme zur Softwarebereitstellung wie CI/CD, Fehlerverfolgung und Monitoring-Tools integriert werden kann. Außerdem sollten die Metriken übersichtlich und in gut verständlichen Formaten dargestellt werden, damit Teams schnell Erkenntnisse gewinnen, Trends erkennen und Schlussfolgerungen aus den Daten ziehen können.
Was sind die ersten Schritte zum Einstieg in DORA Metriken?
Für den Einstieg in DORA-Metriken müssen Sie mit der Datenerfassung beginnen. Es gibt ein umfassendes Angebot an Lösungen zur Datenerfassung und -visualisierung, zu dem auch die oben genannten Tools gehören. Am einfachsten ist es jedoch, mit dem Open Source-Projekt Four Keys von Google zu beginnen, das DevOps-Teams beim Generieren von DORA-Metriken helfen soll. „Four Keys“ ist eine ETL-Pipeline, die Daten aus Github oder einem Gitlab-Repository über Google Cloud-Services in Google DataStudio einspeist. Die Daten werden dann aggregiert und in einem Dashboard mit Datenvisualisierungen der vier wichtigsten DORA-Metriken zusammengeführt, mit denen DevOps-Teams ihre Fortschritte über die Zeit verfolgen können.
Datengestützte Entscheidungen sind unerlässlich, um die Leistung bei der Softwarebereitstellung zu verbessern. Mit DORA-Metriken können Sie die Produktivität Ihres DevOps-Teams und die Effektivität Ihrer Software Delivery-Praktiken und -Prozesse genau beurteilen. Jedes DevOps-Team sollte sich bemühen, die Softwareentwicklung an den Geschäftszielen des Unternehmens auszurichten. Die Implementierung von DORA-Metriken ist der erste Schritt auf diesem Weg.
Die 5 grundlegenden DevOps-Praktiken
Was unterscheidet erfolgreiche DevOps-Teams von denen, die scheitern? Ganz einfach: Diese 5 grundlegenden Praktiken.