Die Qualitätskriterien der Prozesse und Methoden sollten von der Umsetzung bis hin zur gesamten unternehmerischen Wertschöpfungskette durchgängig verknüpft sein, um die Effizienz der einzelnen Schritte immer in Verbindung zu deren Qualität sichtbar zu machen. Dies führt typischerweise zu folgenden Fragestellungen:
- Wie kann ich die übergreifende Qualität aller Maßnahmen bewerten?
- Welche verschwenderischen Aktivitäten können eliminiert werden?
- Welchen Erfolg hat die einzelne Maßnahme? Hat sich die Qualität verbessert?
Folgende Aussage des US-amerikanischen Ökonomen Peter Drucker:
- „If you can’t measure it, you can’t manage it“
erscheint auf den ersten Blick wie eine Binsenweisheit, findet aber in der praktischen Welt noch zu selten Anwendung.
Um ein Lean Quality Management System (QMS) einzuführen und die obigen drei Fragen beantworten zu können, werden Daten aus Bereichen vor allem ineffizienter Prozesse benötigt. Diese lassen sich zu Informationen zusammenfassen. KPIs (Key-Perfor-mance-Indicator) sind ein bewährtes Mittel, um Informationen transparent darzustellen. Doch welche Aspekte sollten wir betrachten?
Wir haben ein Softwareunternehmen begleitet, welches sich entschieden hat, das bestehende Produktportfolio anzupassen mit den daraus folgenden Geschäftszielen:
- Ziel 1: Adäquate Reaktionen auf Marktveränderungen
- Ziel 2: Kundenorientierte Produkte höchster Qualität
Zusammen haben wir basierend auf diesen Geschäftszielen folgende KPIs definiert:
- KPI 1: Produktivitätssteigerung
- KPI 2: Release Quality Index
- KPI 3: Time-to-Market
Abbildung 1 zeigt in einem KPI-Dashboard das Zusammenspiel von Geschäftszielen, KPIs und Metriken. Sie sind über eine Ampel-Darstellung visualisiert.
Abb. 1: Beispielhafter Ampelstatus in QACube. Die Daten werden je nach individuell definierter Gewichtung zum KPI aggregiert. Über eine Drill-Down-Funktion lassen sich jedoch auch die Metriken im Detail analysieren (Trends, Gleitende Mittelwerte usw.)
Basierend auf den KPIs wurden folgende operative Lösungsstrategien erarbeitet und bei unserem Kunden eingeführt, um die Geschäftsziele zu erreichen:
- Methode 1: Risikobasierte Testmethodik
- Methode 2: Agile Entwicklung
- Methode 3: Testautomatisierung
Das Besondere dieser drei Methoden ist, dass diese die ganzheitliche Qualität und übergreifenden Unternehmensziele im Kern der Systematik immanent haben und aus Lean-Management-Perspektive den Fokus auf effiziente Priorisierung richten, um Verschwendung zu vermeiden.
Die Umsetzung der drei Methoden ermöglicht somit anhand der gemessenen Metriken eine Steuerung, die sicherstellt, dass KPIs und damit die Geschäftsziele erreicht werden. Wird eine Einführung der KPIs ohne die Umsetzung der Methoden angestrebt, ist ein Erfolg fraglich.
Im Folgenden zeigen wir die Zusammenhänge zwischen Methoden und Metriken auf und begründen, warum diese entscheidend für eine erfolgreiche Umsetzung sind.
Methode 1: Risikobasiertes Testen
Risikobasierten Testen wird von uns als ganzheitlicher Ansatz genutzt, der das Testing über alle Prozesse im SDLC (Software Development Life Cycle) mit den Unternehmensrisiken verbindet und gleichzeitig den Testaufwand von komplexen Systemen konstant hält, da der Fokus zuerst auf risikobehaftete Bereiche gelegt wird. Dadurch werden schwerwiegende Fehler vermieden und so wird die Qualität weiter verbessert.
Um eine risikobasierte Testmethodik zu implementieren, sind folgende drei Schritte notwendig:
- Identifizierung der Produktrisiken,
- Risikoanalyse anhand von Eintrittswahrscheinlichkeit und Schadensausmaß zur Erstellung einer Risikopriorisierung,
- Planung, Design und Ausführung aller Qualitätsaktivitäten gemäß Priorisierung inklusive laufender Neuevaluierung des Risikos.
Gerade der letzte Schritt ist ungemein wichtig, damit wir nicht, als ein Extrem, ein überbordendes Quality Management haben, welches als einzige Aufgabe die Dokumentation und Nachverfolgung von Risiken hat, jedoch auch keine lange Liste von einmal definierten Risiken, die in der täglichen Umsetzung keine Rolle mehr spielen.
Aus diesem Grund ist der Einsatz folgender Metriken nützlich:
- prozentualer Anteil der zurückgewiesenen Failures,
- prozentualer Anteil an kritischen Failures (in Produktion),
- risikobasierte (Regressions-) Testabdeckung.
Methode 2: Agile Entwicklung
Agilität wird oft gleichgesetzt mit Geschwindigkeit. Jedoch bedeutet agiles Arbeiten unter anderem, auch das QA-Team schon von Beginn der Anforderungserfassung in den Prozess zu integrieren und zudem die Zusammenarbeit zwischen Entwicklung und Test zu stärken. Ebenso bilden ein kompetentes Team, offene Kommunikationskanäle und ein unterstützendes Umfeld die Kernpfeiler von agilem Arbeiten. Sie sind der fruchtbare Boden, auf dem die Performanz gesamthaft wächst.
Der Einsatz von Agilität in der Softwareentwicklung greift den ganzheitlichen Ansatz von oben auf, indem die risikobasierte Betrachtung des Testens zusätzlich auch die Betrachtung der Softwareentwicklung einbezieht. Agilität beherrscht die Handhabung von komplexen Systemen gut (minimum viable product und inkrementelles Vorgehen), integriert neue technologische Herausforderungen leichter und führt so auch zu einem Shift-Left der Gesamtaufwände – ganz im Sinne von Lean. Wieso einen Fehler beheben, wenn man diesen durch frühere Maßnahmen verhindern kann?
Wir möchten auf drei essenzielle Aspekte hinweisen, die bei uns in einem Agilen Framework mit Hinblick auf die Einführung von sinnvollen KPIs im Fokus stehen:
- iteratives und inkrementelles Vorgehen,
- effiziente Kommunikation,
- schnelle Anpassungsmöglichkeit und Feedback.
Damit ist der Einsatz folgender Metriken nützlich:
- Deploymenthäufigkeit pro Sprint,
- Abweichung der Budgetplanung, zeitliche Abweichung des Projektplans, Abweichung der Testaufwandsschätzung,
- Abweichung zur durchschnittlichen Development Cycle Time.
Methode 3: Testautomatisierung
Wendet man Lean-Prinzipien auf Methoden und Prozesse in der Testautomatisierung an, so lassen sich übergreifende Qualitätszuwächse durch Optimierung und Fokussierung erreichen.
Daher strukturieren immer mehr Unternehmen (wie auch Spotify, siehe: https://engineering.atspotify.com/2018/01/11/testing-of-microservices/) ihre Tests als Testing-Diamant (siehe Abbildung 2). Der Fokus wird dabei auf ein Regressionstestset auf Integrationsebene gelegt. Dies vereinfacht die Pflege von Tests erheblich und verifiziert zudem die Interaktion mit anderen Modulen, denn dort, wo die Integration stattfindet, finden sich die meisten Probleme und das höchste Risiko. Auch in unserer eigenen Produktentwicklung für die QACube-Plattform befolgen wir dieses Prinzip und konnten eine Reduktion der Fehler im Integrationstest und verschwenderischen Wartungsaufwand auf Unittest-Ebene bei gleichzeitiger Steigerung der übergreifenden Qualität feststellen. Testautomatisierung dient in diesem Fall als langfristige Lösung, um zusätzlich die Effizienz im Testing zu erhöhen und damit weitere Kapazität zu schöpfen.
Abb. 2: Testing-Diamant
Somit ist der Einsatz folgender Metriken nützlich:
- ersparte Zeit durch Automatisierung,
- Häufigkeit der Regressionstestdurchführung pro Sprint.
Fazit
Bei dem Softwareunternehmen, welches wir begleitet haben, führten die stetig ganzheitliche Betrachtung sowie die durchgängige Messbarkeit auf verschiedenen Ebenen zu Verbesserungen, welche zudem von gegenseitigen Synergien profitierten.
Die erstmalige Messung von Geschäftszielen verknüpft bis zur Prozessebene verschaffte eine bisher nicht vorhandene Transparenz, was eine fundiertere und schnellere Entscheidungsfindung ermöglichte sowie das Verständnis unter den Teams verstärkte. Durch laufende Risikomessung konnten die begrenzten Ressourcen zur richtigen Zeit auf die richtigen Themen priorisiert werden. Dadurch konnte das Projekt ohne Budgetabweichungen durchgeführt werden. Nicht zuletzt hatte die Anpassung der Testautomatisierungsstrategie die Stabilisierung des Regressionstestsets zur Folge. Somit konnten mehr Fehler früher abgestellt und der Wartungsaufwand reduziert werden. Insgesamt konnten wir im Laufe der Transformation eine Verringerung der kritischen Produktionsfehler feststellen.
Das erste übergreifende Erfolgserlebnis als Ergebnis der Transformation konnten wir verzeichnen, als durch eine Analyse im Fachbereich ein Nachfragetrend für ein Teilprodukt entdeckt wurde. Diese Erweiterung wurde in vergleichsweise kurzer Zeit mit hoher Kundenzufriedenheit erfolgreich eingeführt. Eine solche Reaktionskapazität wäre zuvor undenkbar gewesen.
Zum Abschluss sei zu erwähnen, dass wir bei der Implementierung der KPIs auf Hindernisse gestoßen sind. Um diese zu umschiffen, haben wir folgende Lessons Learned formuliert.
Tipps zur effektiven Nutzung von KPIs
Bei der Einführung von KPIs gibt es keinen „one-size-fits-all“-Ansatz. KPIs sollten abhängig von der Ausgangssituation maßgeschneidert auf die bestehenden Prozesse und die Bedürfnisse aller Stakeholder der verschiedenen Hierarchiestufen zugeschnitten werden. Wir möchten auf vier Tipps hinweisen, welche zur Vermeidung von typischen Fehlerquellen bei der Einführung von KPIs dienlich sind.
Definition von Geschäftszielen und Aktionsplan für jede KPI
Übergeordnet der Definition jeder KPI sollte das Geschäftsziel stehen. Oft werden KPIs aus vorhandenen Informationen definiert, ohne sich zu fragen, was damit ausgesagt werden soll. KPIs werden so zu Zielen, die Manipulationen unterliegen können.
Daher sollte zuerst überlegt werden, welche Fragen man über die Darstellung einer KPI beantworten möchte, um danach zu prüfen, welche Metriken bei der Beantwortung der Frage hilfreich sind. KPIs stellen keine Ziele oder Lösungen dar, die man erreichen sollte, sondern Indikatoren für die übergeordneten Ziele. Sie helfen, Lösungen zu identifizieren.
Aktionsplan für ein Geschäftsziel:
- 1. Risikoanalyse und Bewertung
- 2. Durchführung aller Tests für die Funktionen mit hoher Eintrittswahrscheinlichkeit und hohem Impact vor dem Go-Live
- 3. Kontinuierliche Evaluierung und Verbesserung (z. B. Analyse der unerwartet aufgetretenen Risiken und Fehler)
2. Nutzung von Prozessperformanz-KPIs zusammen mit Qualitäts-KPIs
Die alleinige Nutzung von Prozessperformanz-KPIs bietet Raum für Fehlinterpretationen und Fehlkommunikation. Daher sollten diese in Kombination mit Qualitäts-KPIs genutzt werden, welche eine Indikation über den geschaffenen Wert aufzeigen:
- Performanz-KPI: Anzahl der durchgeführten Tests im Verhältnis zur Anzahl der geplanten Testfälle
- Qualitäts-KPI: Risikobasierte Testabdeckung
3. Ganzheitliche Interpretation von KPIs
KPIs sind nicht isoliert, sondern immer im Gesamtzusammenhang von Außeneinflüssen mit dem Fokus auf das eigene Unternehmen, die Umgebung und dem Gesamtmarkt zu interpretieren. Weitere wichtige Faktoren:
- Anzahl der kritischen Failures während der Sprints,
- blockierte Testfälle,
- Downtimes.
4. Automatisierung
Es ist es wichtig, dass das KPI-Framework, welches etabliert wird, automatisiert zur Verfügung steht und einfach zu pflegen ist, ansonsten besteht die Gefahr, dass der manuelle Aufwand, KPIs zu extrahieren, den Nutzen übersteigt oder zu Fehlern in der Auswertung durch Übertragungsfehlern führt.