Testing während der Produktionsphase…
Es ist ein einfaches Konzept…
Aber es ist auch eines der heikelsten Themen da draußen, und es spaltet die Entwicklungswelt in zwei Lager – diejenigen, die sagen, dass man bei der Produktion immer testen sollte und diejenigen, die sagen, dass man es nie tun sollte.
In diesem Beitrag untersuchen wir diese beiden verschiedenen Lager, wir zeigen, zu welchem Lager wir gehören (und warum), und wir bieten eine praktische Perspektive auf Tests in der Produktion.
First Thing’s First: Was bedeutet Testing während der Produktion?
Um es kurz und einfach zu halten: das Testen in der Produktionphase bedeutet, verschiedene Tests an Ihrem Produkt durchzuführen, wenn es sich in einer echten Umgebung befindet.
Anstatt diese Tests durchzuführen, während sich Ihr Produkt noch in der Entwicklung befindet oder sicher in einer Staging-Umgebung versteckt ist, führen Sie diese Tests stattdessen erst dann durch, wenn Ihr Produkt in der realen Welt in den Händen realer Benutzer ist.
Warum testet man in der Produktionsphase?
Wenn sie richtig durchgeführt werden, bieten Tests in der Produktion einige große Vorteile, die man mit keiner anderen Methode erreichen kann.
Mit Tests in der Produktion können Sie:
- Daten aus der realen Welt sammeln, die Sie während der Entwicklung niemals generieren können.
- Bestätigen, dass Ihr Produkt tatsächlich das bietet, was Ihre Kunden sich wünschen.
- Neue Funktionen kennenlernen, die Ihre Kunden wünschen und an die Sie vielleicht nie gedacht haben.
- Sehen, ob Ihr Produkt in der weniger vorhersehbaren realen Welt zuverlässig funktioniert.
- Eine größere Strategie der inkrementellen – oder sogar kontinuierlichen – Markteinführung unterstützen.
Das sind starke Vorteile und sie reichen aus, um ein erstes Lager von Entwicklern und Produktmanagern zu schaffen, die „Ja, immer!“ zum Testen in der Produktionsphase sagen.
Aber es gibt auch ein zweites Lager von Entwicklern und Produktmanagern, die „Nein, niemals!“ zu Tests in der Produktion sagen. Sie räumen all die großen Vorteile ein, die das Testen in der Produktion bieten kann. Aber sie haben einfach das Gefühl, dass die Praxis zu viele potenzielle Nachteile mit sich bringt und dass ihre Vorteile es einfach nicht wert sind, die Risiken einzugehen, die die Praxis mit sich bringen kann.
Zu welchem Lager gehören wir?
Es sollte wohl keine große Überraschung sein – wir gehören zum ersten Lager.
Wir glauben, dass das Testen in der Produktion ein Grundpfeiler für jeden in der Entwicklungswelt ist. Und wir glauben, dass es besonders wichtig für Produktmanager ist, da es ihnen eine leistungsfähige Methode zur Generierung von Feedback und Leistungsdaten aus der realen Welt bietet, die sie benötigen, um sicherzustellen, dass sie stets eine tragfähige Produktpipeline aufbauen.
Aber auch wenn wir für Tests in der Produktion einstehen, wollen wir dem „Nein, niemals!“-Lager dennoch ihren Respekt zollen. Wenn wir sie anhören, können wir einige der größten potenziellen Gefahren erfahren, die beim Testen in der Produktion auftreten können. Und wenn wir diese Probleme erst einmal kennen, können wir damit anfangen, Möglichkeiten aufzuzeigen, um diese Nachteile zu reduzieren und die Vorteile von Tests in der Produktion risikofrei zu nutzen.
Was sind die großen Risiken von Tests während der Produktion?
Um ehrlich zu sein: Vieles kann schief gehen, wenn man in der Produktion testet.
- Sie können schlechte Codes einsetzen…
- Sie können sensible Daten durchsickern lassen…
- Sie können Ihre Infrastruktur überlasten…
- Sie können Ihr Tracking & Analytics vermasseln…
- Sie können ein schlecht gestaltetes Produkt oder eine schlecht gestaltete Funktion freigeben…
Die Liste geht weiter. Alles, was schief gehen kann, könnte schief gehen.
Und das Schlimmste ist, wenn beim Testen in der Produktion etwas schief geht, wird Ihr Fehler Konsequenzen in der realen Welt haben. Ihr Produkt könnte in einem kritischen Moment der realen Nutzung abstürzen. Sie könnten ungenaue KPIs sammeln und Probleme mit Ihren Stakeholdern verursachen. Ihr schlecht gestaltetes Produkt oder Feature könnte dazu führen, dass mehrere zahlende Kunden ein Konkurrenzprodukt vorziehen.
Das Lager der Leute, die „Nein, niemals!“ zu Tests in der Produktion sagen, hält das für höchst riskant und wir verstehen, warum sie sich davon fernhalten.
Und dennoch, auch wenn wir diese Bedenken durchaus anerkennen, befürworten wir es, während der Produktion zu testen.
Und wir sagen Ihnen auch, warum.
Warum sollten Sie dennoch in der Produktionsphase testen?
Erstens, weil das Testen während der Produktion Sie nicht daran hindert, auch vor der Produktion zu testen.
Die meisten der technischen Probleme, die während eines schlechten Produktionstests auftreten können, lassen sich vermeiden, wenn Sie während der Entwicklung und Qualitätssicherung eine ganze Reihe von technischen Tests durchführen, um sicherzustellen, dass Ihre neuen Produkte und Funktionen stabil sind und einem hohen Volumen des realen Einsatzes gewachsen sind.
Und wenn Sie eine Strategie der iterativen Entwicklung verfolgt haben, dann ist die Chance, ein falsch ausgerichtetes Produkt oder Feature – aus der Perspektive Ihrer Benutzer – zu veröffentlichen, sehr gering. Sie werden nicht jedes Mal einen Homerun erzielen, aber auch die Wahrscheinlichkeit eines Strikeouts ist weitaus geringer.
Zweitens, weil vieles, was in einer Produktionsumgebung schief gehen könnte, in einer Entwicklungs- oder Staging-Umgebung ohnehin nicht richtig getestet werden kann.
Es gibt bestimmte technische Probleme, die sich erst dann zeigen, wenn Sie Ihr Produkt oder Feature vor Anwendern aus der realen Welt präsentieren. Tatsächlich gibt es bestimmte technische Probleme, die erst dann auftauchen, wenn Sie Ihr Produkt oder Ihre Funktion vor vielen Benutzern aus der realen Welt präsentieren. Es kommt auf den Umfang an, ebenso wie auf die unvorhersehbaren Nutzungsmuster, die nur Benutzer aus der realen Welt mitbringen können.
Und wenn es um neue Produkte und Features geht – selbst das robusteste Programm zur iterativen Entwicklung auf der Grundlage des Feedbacks Ihrer Benutzer aus der realen Welt kann immer noch nur eine Vermutung darüber abgeben, was Ihre Benutzer als nächstes wollen. Sie können Vermutungen anstellen, die fundierter sind als andere, aber letztendlich werden Sie nie wissen, ob Sie die Rückmeldungen Ihrer Benutzer richtig interpretiert haben, bis Sie diese Funktionen in der freien Wildbahn veröffentlichen und sehen, wie sie aufgenommen werden.
Drittens, und das ist am wichtigsten… weil Sie bereits in der Produktion testen, auch wenn Sie es nicht wussten!
Die meisten der bewährten Verfahren der Agilen Entwicklung und des Produktmanagements sind Formen des Testings in der Entwicklung. Wir sprechen hier von sehr verbreiteten Praktiken wie:
- CI/CD
- A/B Testing
- Phased Rollouts
- Canary Releases
- User Monitoring
- Usability Testing
- Smoke & Sanity Testing
Wenn Sie eine dieser Methoden – und noch viele andere – anwenden, dann führen Sie bereits Tests mit Benutzern aus der realen Welt in einer Live-Produktionsumgebung durch. Sie testen bereits in der Produktion, ob Sie es nun so nennen oder nicht, selbst wenn Sie die ganze Zeit dachten, Sie wären im „Nein, niemals!“-Camp.
Eine praktische Perspektive auf Tests in der Produktion
Lassen Sie uns den Tatsachen ins Auge sehen: Das Testen während der Produktion ist heute ein wesentliches Element des Produktmanagements. Stellen Sie sich vor, Sie versuchen, Ihre Arbeit ohne A/B-Tests zu erledigen. Oder ohne schrittweise Rollouts. Oder ohne die Möglichkeit, unmittelbare Rückmeldungen aus der realen Welt oder technische Nutzungsdaten zu Ihren neuen Produkten und Features zu sammeln. Das können Sie nicht. Sie müssen in der Produktion testen.
Und deshalb bleiben wir standhaft im „Ja, immer!“-Lager, obwohl wir uns der Risiken dieser Handlungsweise bewusst sind. Wenn Tests in der Entwicklung heutzutage unvermeidlich sind, dann sollten Sie weniger Zeit damit verbringen, die Vor- und Nachteile zu debattieren, und mehr Zeit darauf verwenden, den effektivsten und verantwortungsvollsten Weg zu finden, diese Praxis anzuwenden.
Wir glauben so sehr an diese Perspektive des Testens in der Entwicklung, dass wir eine ganze Produktsuite aufgebaut haben, um Produktentwicklern zu helfen, alle Vorteile der Praxis zu nutzen und gleichzeitig ihre Risiken zu minimieren. Unsere Produktsuite heißt Flagship, und ihre Kernfunktion ist das Feature Flag.
Durch den durchdachten Einsatz von Feature-Flags können Sie alle erforderlichen Tests in der Produktion sicher durchführen. Mit Feature-Flags – kombiniert mit dem Rest von Flagship – können Sie:
- Setzen Sie kleinere Releases ein, die die Auswirkungen eines Ausfalls minimieren.
- Testen Sie Ihre neuen Funktionen nur an Ihren treuesten und verständnisvollsten Benutzern.
- Personalisieren Sie ihre Tests, damit sie wissen, dass sie mit ein paar Schwierigkeiten bei der Veröffentlichung rechnen müssen.
- Schalten Sie unterdurchschnittliche Features sofort mit einem einzigen Klick aus.
Mit Feature-Flags und ein wenig Planung können Sie das Risiko drastisch reduzieren und die Komplexität der Tests während der Produktion, die Sie bereits durchführen, erhöhen. Und das bedeutet mehr reale Benutzerdaten, zuverlässigere Produkte und Funktionen und weniger Sorgen darüber, wie sich Ihre harte Arbeit außerhalb der sicheren Grenzen von Entwicklungs- und Staging-Umgebungen verhält.
Wenn Sie mehr über Flagship, Feature-Flags oder einfach nur darüber erfahren möchten, wie Sie bessere Tests in der Produktion durchführen können, wenden Sie sich noch heute an uns.