Die Durchführung von Regressionstests, um die konstante Erfolgsquote einer Software sicherzustellen, ist für viele Unternehmen ein wichtiger Bestandteil der Softwareentwicklung. Ein anschauliches Beispiel für diesen Ansatz liefert das populäre Spiel Candy Crush, bei dem die Betriebseinheit kontinuierlich Erfolgsrateninformationen aus der Produktion liefert, um den Bot richtig zu kalibrieren. Dieser Vorgang verdeutlicht, wie Entwicklungsteams und Betriebseinheiten durch die Nutzung von Produktionsanalysen ihre Tests vor der Veröffentlichung verbessern können.
Ein weiteres Beispiel, das zeigt, wie Unternehmen DevOps erfolgreich umsetzen, ist Capital One, eine der größten Banken in den USA. Capital One ist bekannt für seine umfassende digitale Transformation und hat das Hygieia-Dashboard entwickelt, um den gesamten Softwareentwicklungsprozess zu überwachen. Hygieia ist eine konfigurierbare, benutzerfreundliche Dashboard-Lösung, die den aktuellen Status des gesamten Lieferprozesses in nahezu Echtzeit anzeigt. Sie aggregiert Daten aus den bereits verwendeten Tools und bietet Transparenz über die Entwicklung: von der Code-Verpflichtung bis hin zur Produktionsbereitstellung. So können die Teams eine genaue Übersicht über den Fortschritt der Arbeit, die Häufigkeit der Code-Verpflichtungen, den Status von Builds und Testergebnissen sowie die Ergebnisse von Sicherheits- und Funktionstests erhalten. Hygieia hilft nicht nur dabei, die Sichtbarkeit zu erhöhen, sondern fördert auch eine kollaborative Entscheidungsfindung und ermöglicht es, Engpässe im Entwicklungsprozess schneller zu identifizieren und zu beheben.
Dabei stellt sich eine interessante Frage: Wie viel Zeit sollte man in die Verkürzung von Build-Zeiten investieren, wenn die Testzeit ebenso lang ist? Capital One hat hier eine wichtige Erkenntnis gewonnen – anstatt nur den Build-Prozess zu beschleunigen, liegt der wahre Schlüssel zur Optimierung in der Reduzierung der Wartezeiten. Wenn man die Wartezeiten im gesamten Entwicklungsprozess minimiert, kann die Geschwindigkeit des gesamten Projekts effizient gesteigert werden.
Das Hygieia-Dashboard ist nicht nur ein praktisches Tool für Unternehmen, um die Softwareentwicklung zu beschleunigen, sondern auch ein Beispiel dafür, wie eine Organisation mit offenen Quellen arbeiten kann. Hygieia ist ein Open-Source-Projekt, das kontinuierlich weiterentwickelt wird, und bietet somit nicht nur Capital One, sondern auch anderen Unternehmen im Finanzsektor und darüber hinaus wertvolle Einblicke in den DevOps-Prozess.
Im Vergleich dazu verfolgt die britische Tageszeitung The Guardian einen etwas anderen Ansatz, um ihre Softwarequalität zu sichern. Als führende Nachrichtenquelle mit täglich Millionen von Lesern, entschied sich das Unternehmen, die traditionellen Testmethoden zu hinterfragen. Die QA-Abteilung erkannte, dass nicht jede Software perfekt und fehlerfrei sein muss, bevor sie veröffentlicht wird. Die Herausforderung bestand vielmehr darin, Software schnell und mit minimalem Risiko bereitzustellen, um die Benutzer nicht durch Verzögerungen zu verlieren. Die Lösung des Unternehmens war, die Testautomatisierung von der Entwicklungsphase in die Produktionsphase zu verlagern.
Im Jahr 2016 lag der Fokus des Unternehmens nicht mehr auf umfassender Validierung in Staging-Umgebungen, sondern auf einer kontinuierlichen Überwachung in der Produktion. Dies ermöglichte es, Fehler schnell zu identifizieren und die Software schnell zurückzusetzen, falls notwendig. Diese Herangehensweise stellte einen Paradigmenwechsel dar: Anstatt sich auf umfangreiche Tests vor der Veröffentlichung zu konzentrieren, wurden schnelle Deployments und Rollbacks zur Kernstrategie. Dies sorgte für eine dramatische Steigerung der Geschwindigkeit, mit der neue Softwareversionen in Betrieb genommen wurden, ohne dass die Nutzererfahrung darunter litt.
Wichtig für Leser ist, dass diese Ansätze aufzeigen, wie Unternehmen von der traditionellen Softwareentwicklung zur modernen, agilen Praxis übergehen können. Beide Beispiele verdeutlichen, dass durch den Einsatz von automatisierten Prozessen und der Verschiebung von Teststrategien in die Produktionsumgebung die Effizienz und Geschwindigkeit im Entwicklungsprozess erheblich gesteigert werden können. Gleichzeitig müssen Unternehmen lernen, Risiken differenziert zu betrachten und neue Technologien zu nutzen, um Fehler schneller zu erkennen und zu beheben, anstatt sie zu vermeiden.
Die wichtigste Lektion, die Unternehmen aus diesen Beispielen ziehen können, ist, dass Geschwindigkeit und Qualität keine Widersprüche sein müssen. Durch die Automatisierung und die Verbesserung der Transparenz können Entwicklungs- und Betriebsteams viel schneller auf Probleme reagieren, wodurch der gesamte Softwareentwicklungszyklus effizienter und weniger fehleranfällig wird. Die Frage bleibt, wie weit Unternehmen bereit sind, diese Prinzipien in ihrer eigenen Softwareentwicklung umzusetzen, und ob sie den Mut aufbringen, bestehende Prozesse grundlegend zu überdenken.
Wie Unternehmen den traditionellen Deployment-Pipeline-Prozess hinterfragen: Testen in der Produktion und kontinuierliche Überwachung
Die moderne Softwareentwicklung hat einen bemerkenswerten Wandel durchlaufen, besonders im Bereich der Bereitstellung und Tests von Software. Die Idee, dass Software erst nach umfangreichen Tests in einer isolierten Umgebung vollständig ausgerollt wird, wird zunehmend infrage gestellt. Immer mehr Unternehmen setzen auf das Konzept, die Produktion selbst als Testumgebung zu nutzen, um reale Rückmeldungen zu erhalten. Dies stellt sicher, dass neue Builds tatsächlich unter realen Bedingungen funktionieren, anstatt sich nur auf theoretische Testergebnisse in einer gereinigten und möglicherweise nicht repräsentativen Testumgebung zu verlassen.
Ein Beispiel hierfür ist der Ansatz der The Guardian-Redaktion, die den traditionellen Testansatz für nicht mehr ausreichend hielt. Stattdessen entschloss sich das Unternehmen, alle Tests in der Produktionsumgebung selbst laufen zu lassen, um schnell und direkt festzustellen, ob Änderungen in der realen Welt funktioniert haben. Das bedeutet, dass Entwickler schon Minuten nach dem Zusammenführen ihrer Pull Requests informiert werden, ob ihre Änderungen in der Produktionsumgebung stabil laufen. Der Schlüssel dazu ist ein internes Tool namens "prout", das in das Versionskontrollsystem integriert ist und kontinuierlich Tests auf dem Produktionsserver durchführt.
Dabei wird nicht nur das klassische Testen vor der Veröffentlichung angewendet, sondern auch ein dynamisches Testen im laufenden Betrieb. So nutzt das Tool "Prodmon" von The Guardian nicht nur standardisierte Tests, sondern integriert auch Überwachungsmechanismen, die kontinuierlich auf dem Produktionsserver laufen. Diese Tests sind nicht einmal nur an den Moment einer Veröffentlichung gebunden, sondern laufen rund um die Uhr und bieten laufend Feedback. Im Falle eines Problems werden sofort Alarme ausgelöst, die die Entwickler darüber informieren. Das Ziel ist klar: Durch kontinuierliches Testen und Überwachen wird die Zeit, in der potenzielle Fehler in der Produktionsumgebung auftreten, erheblich verkürzt.
Dieser Ansatz mag provokativ erscheinen, da er die Bedeutung der Testautomatisierung vor der Veröffentlichung in Frage stellt. Aber genau das ist der Vorteil – die schnelle Reaktion auf reale Probleme, die sich erst unter den echten Nutzungsbedingungen zeigen. Die schnelle Iteration und das sofortige Feedback aus der Produktion machen das Unternehmen äußerst reaktionsschnell und agil. Diese Methode fördert auch eine Unternehmenskultur, in der Probleme nicht nur schnell behoben, sondern auch die zugrunde liegenden Ursachen systematisch angegangen werden.
Neben dem klassischen Testen von Funktionen spielt die kontinuierliche Überwachung eine immer wichtigere Rolle. Etsy, der Online-Marktplatz, ist ein weiteres Beispiel für den integrativen Ansatz von Monitoring und Testen. Etsy setzt auf tägliche, oft mehrmals tägliche Releases, bei denen jede Änderung sofort auf den Produktionssystemen getestet wird. So wird Monitoring nicht nur zur Fehlererkennung, sondern auch als eine Art Testmechanismus selbst genutzt, um die Stabilität und die Benutzererfahrung kontinuierlich zu gewährleisten.
Neben der Funktionalität ist es bei diesem Ansatz auch entscheidend, das Verhalten der Nutzer genau zu beobachten. Ein gutes Beispiel hierfür ist die Bank of New Zealand (BNZ), die eine A/B-Teststrategie in ihrer Online-Banking-Plattform implementiert hat. Bei einem experimentellen Update der Plattform wurde ein neues Call-Back-Feature für Kunden eingeführt, das es diesen ermöglichte, einfacher einen Rückruf zu vereinbaren. Die Daten aus der Produktion zeigten, dass eine einfache, klare Benutzeraufforderung zu einer viel höheren Erfolgsquote führte als eine, die auf zeitlichen Druck setzte. Dies zeigt, wie wichtig es ist, zu verstehen, dass reale Nutzererfahrungen häufig unvorhersehbare Ergebnisse liefern, die von theoretischen Annahmen abweichen.
Ein weiterer Vorteil dieses Ansatzes ist die Fähigkeit, Veränderungen nicht nur zu testen, sondern die Tests an die tatsächlichen Gegebenheiten der Nutzererfahrung anzupassen. Dies kann in Form von A/B-Tests geschehen, bei denen verschiedene Varianten eines Produkts oder einer Funktion direkt im Produktionsumfeld getestet werden. So können Unternehmen sofort erkennen, welche Variante bei den echten Nutzern besser ankommt, ohne langwierige Testzyklen oder Verzögerungen durch Entwicklungsphasen zu durchlaufen.
Allerdings sollte dieser Ansatz nicht missverstanden werden. Die Durchführung von Tests in der Produktion ist nicht gleichbedeutend mit dem völligen Verzicht auf Tests in isolierten Umgebungen. Es geht darum, die Teststrategie zu erweitern und die reale Produktionsumgebung als einen wesentlichen Bestandteil des Testprozesses zu integrieren. Auf diese Weise können Unternehmen sicherstellen, dass sie nicht nur die technischen Anforderungen erfüllen, sondern auch eine exzellente Benutzererfahrung liefern, die auf den tatsächlichen Bedürfnissen und dem Verhalten der Endanwender basiert.
Die entscheidende Herausforderung bei diesem Vorgehen liegt in der Balance zwischen kontinuierlichem Testen und der Notwendigkeit, stabile, fehlerfreie Software in der Produktion zu haben. Das bedeutet, dass Unternehmen nicht nur auf schnelle Fehlerbehebung setzen sollten, sondern auch auf eine langfristige Strategie der Qualitätsverbesserung. Daher ist es wichtig, dass Unternehmen eine robuste Infrastruktur für Überwachung und Tests in der Produktion aufbauen und gleichzeitig ein klares Verständnis darüber haben, welche Tests und Überwachungsmechanismen notwendig sind, um die Produktion stabil zu halten.
Es muss jedoch betont werden, dass dieser Ansatz nicht für jedes Unternehmen und jede Art von Software geeignet ist. In besonders sicherheitskritischen Bereichen oder bei Anwendungen, bei denen Fehler gravierende Folgen haben könnten, sind zusätzliche Sicherheitsvorkehrungen notwendig. Doch für viele moderne Web- und Mobilanwendungen stellt das Testen in der Produktion einen effektiven Weg dar, schnell auf Probleme zu reagieren und die Produktqualität kontinuierlich zu verbessern.
Wie man effektive Kommunikation und Zusammenarbeit zwischen Teams und Disziplinen aufbaut
Die Wege, die wir schaffen, sind anfangs oft zerbrechlich, da sie zwischen zwei Individuen gebildet werden. Sollte jemand an einem Ende diesen Weg verlassen, würde die Verbindung sofort gekappt. Doch die nächsten Schritte beim Schaffen eines „Pfades“ stärken diese Verbindung, indem andere in den Austausch einbezogen werden und ein kollaborativer Austausch zwischen verschiedenen Disziplinen gefördert wird. Dies erfordert, dass man den Weg für andere öffnet, indem man die Zielgruppe für den Informationsaustausch erweitert.
Der erste Schritt in diesem Prozess besteht darin, eine Beziehung zu einer Person innerhalb eines Teams aufzubauen und etwas für diese Person Nützliches zu teilen. Danach kann man eine Sitzung organisieren, um dieselben Informationen den Kollegen dieser Person zugänglich zu machen. Sobald diese Kollegen ihr Wissen mit einem teilen, ist es sinnvoll, sie zu ermutigen, eine ähnliche Sitzung für die eigenen Kollegen zu halten. Es ist wichtig, Marker in den eigenen Pfad zu setzen, damit andere ihn leicht finden können. Diese Marker helfen nicht nur den aktuellen Teammitgliedern, sondern auch denjenigen, die später zum Team stoßen, und Interessierten aus anderen Teams.
Das Wissen, das geteilt wird, sollte dokumentiert werden, damit es später zugänglich bleibt. Dies kann so einfach sein wie das Speichern von Präsentationen in einem gemeinsamen Ordner oder das Aufzeichnen von Wissensteilungssitzungen, um sowohl visuelle als auch verbale Elemente zu erfassen. Für diejenigen, die mehr Zeit haben, besteht die Möglichkeit, Lernressourcen zu erstellen, die speziell für den On-Demand-Konsum konzipiert sind, wie etwa Lernpfade, Online-Kurse oder sogar ein Buch.
Der Weg sollte zudem durch das Einladen unterschiedlicher Perspektiven weiter ausgebaut werden. Innerhalb einer Organisation kann dies beispielsweise durch das Einladen anderer Personen geschehen, ihre Kenntnisse zu präsentieren, durch Peer-Reviews und Debriefing-Aktivitäten mit anderen Disziplinen oder durch interdisziplinäre Zusammenarbeit bei Aufgaben mittels „Mobbing“. Ein weiterer Weg, den Pfad zu erweitern, besteht darin, Personen zu Branchenkonferenzen oder Präsentationen einzuladen, die außerhalb ihrer üblichen Disziplin liegen.
Der Prozess, einen „Pfad“ zu schaffen, kann in fünf Schritte unterteilt werden: Identifizieren, Verbinden, Einladen, Markieren und Erweitern. Doch wie kann man diese Theorie der Kommunikationspfade konkret anwenden, um interdisziplinäre Beziehungen aufzubauen, die beim Testen helfen?
Der erste Schritt, um effektive Verbindungen zu schaffen, besteht darin, Personen zu identifizieren, die in anderen Bereichen wie Betrieb, Support, Business Intelligence oder Callcenter tätig sind – also Personen, die außerhalb des Entwicklungsteams arbeiten, aber mit den Ergebnissen des Teams in Verbindung stehen. Ein solches Brainstorming kann ein guter Indikator für das eigene Netzwerk sein. Wenn man Schwierigkeiten hat, Namen zu finden, bedeutet das entweder, dass man viel Arbeit vor sich hat oder dass das eigene Gedächtnis nicht sehr gut ist! Es kann auch hilfreich sein, das Entwicklungsteam oder den Vorgesetzten um Hilfe zu bitten, um die Liste zu erweitern. In großen Organisationen kann man auch im Firmenverzeichnis oder in Strukturdiagrammen nach relevanten Personen suchen. Der Schlüssel ist, das Netz weit zu werfen – eine natürliche Filterung erfolgt im Gespräch, wenn man herausfindet, welche Wege am vielversprechendsten sind.
Nachdem man eine Gruppe von Personen identifiziert hat, sollte man versuchen, mit jedem Einzelnen eine persönliche Verbindung aufzubauen. Es ist ein Vorteil, wenn diese Liste Personen umfasst, zu denen man bereits gute Verbindungen hat, etwa ehemalige Kollegen, Freunde oder Menschen, mit denen man außerhalb der Arbeit in gemeinsamen Aktivitäten in Kontakt steht. Wenn dies der Fall ist, kann man diesen Schritt möglicherweise überspringen oder minimieren. Wenn jedoch keine direkte Interaktion stattgefunden hat, ist es oft hilfreich, mit ein paar allgemeinen Fragen zu beginnen, etwa: „Was machst du täglich? Welche Werkzeuge benutzt du? Mit wem arbeitest du am häufigsten zusammen? Was weißt du über meine Rolle? Wie denkst du, dass ich dir helfen könnte?“ Es mag seltsam erscheinen, eine Beziehung von Grund auf neu aufzubauen, aber Fragen können ein effektiver Katalysator sein, um eine Verbindung herzustellen. So schildert Ioana Serban, eine Testingenieurin, ihre Erfahrungen im Aufbau einer Beziehung zu einem Betriebsingenieur, indem sie Problemlösungsfragen stellte, um einen Fehler bei der Bereitstellung zu diagnostizieren.
Die „drei kleinen Fragen“, die sie verwendet, um Beziehungen zwischen Test- und Betriebsteams aufzubauen, sind ebenso ein praktischer Ansatz: 1. Was arbeitest du gerade? 2. Willst du etwas Cooles sehen? 3. Kannst du bei dieser Aufgabe mit mir zusammenarbeiten?
Diese proaktive Herangehensweise an das Knüpfen von Verbindungen ist besonders nützlich, auch wenn sie einschüchternd wirken kann. Eine weitere Möglichkeit, Verbindungen aufzubauen, besteht darin, Gelegenheiten zu schaffen, damit Personen aus anderen Teams mit einem in Kontakt treten können. Das gelingt beispielsweise, indem man seine Aktivitäten so beschreibt, dass andere erkennen können, wie sie einem bei der Erfüllung einer Aufgabe helfen könnten.
In agilen Umgebungen gibt es oft die Tendenz, dass Stand-up-Meetings mehr den Anschein von Informationsaustausch erwecken, als dass tatsächlich bedeutungsvolle Transparenz hergestellt wird. So beschreibt ein typischer Stand-up-Bericht eines Testers, dass ein bestimmtes Story-Element getestet wurde, ohne jedoch im Detail darauf einzugehen, was genau getestet wurde. Diese oberflächlichen Informationen machen es für Außenstehende schwer nachvollziehbar, was genau getan wurde und wie sie möglicherweise zur Aufgabe beitragen könnten. Hier ist es wichtig, während des Stand-ups konkreter zu werden und mehr Details zu teilen, um das Verständnis und die Zusammenarbeit zu fördern.
Darüber hinaus kann es helfen, Informationen sichtbar zu machen. Die Aufzeichnung von Ergebnissen und das Darstellen von Informationen auf einer visuellen Oberfläche kann das Interesse von außenstehenden Personen wecken und sie dazu einladen, mit einem in Kontakt zu treten. Auch eine Veränderung des eigenen Verhaltens in Meetings kann positive Auswirkungen haben – beispielsweise, indem man von detaillierten schriftlichen Notizen zu einer visuellen Darstellung übergeht, wie Maaret Pyhäjärvi es beschreibt.
Endtext
Wie man die arabische Sprache in 12 Wochen lernt: Ein praktischer Leitfaden
Wie funktioniert das Office of Management and Budget (OMB) und welche Rolle spielt die Kompetenz seiner Mitarbeiter?
Wie funktioniert effektive Kommunikation und Geschäftsabläufe im japanischen Kontext?
Wie politische Sprache und Medienstrategien die Macht der Reichen sichern
Wie kann eine junge Frau die Kontrolle über ein großes Anwesen übernehmen?
Warum Tyrannen immer wieder aufsteigen: Eine Betrachtung über Macht, Weisheit und die Rolle der Philosophie
Wie gestaltet man nährstoffreiche Bowls zur Gewichtsreduktion und warum sind sie effektiv?
Wie 2D-Materialien die Effizienz von Energiespeichergeräten verbessern: Fortschritte und Herausforderungen

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский