Skip to main content
Schwarzer Pfeil auf einem Weiß Roten Schild

Progressive Delivery – alles, was Sie wissen müssen

19 October 2023
Lesezeit : 
8 Minuten
Christoph Rottler
Christoph Rottler
Christoph Rottler ist Managing Director DACH bei Kameleoon. Mit über 10 Jahren Erfahrung im Bereich A/B-Testing und Personalisierung hat Christoph hunderte von Conversion-Optimierungsprojekten von SEA/ SMA bis hin zu On-Page-Kampagnen durchgeführt und greift auf einen riesigen Erfahrungsschatz aus allen Branchen zurück.

Was ist Progressive Delivery?

Progressive Delivery ist eine moderne Praxis in der Softwareentwicklung, bei der ein neues Feature zuerst an einen kleineren Prozentsatz der Benutzer freigegeben wird. Damit werden die Auswirkungen eines Updates verständlich, bevor das Feature für 100 % der Benutzer bereitgestellt wird.

Diese Methode baut auf kontinuierlicher Integration, kontinuierlicher Bereitstellung und kontinuierlicher Auslieferung (CI/CD) auf, was unter anderem durch Feature Flags ermöglicht wird – damit können Freigaben von Funktionen nämlich spezifisch für bestimmte Benutzergruppen zu gesteuert werden.

Obwohl Progressive Delivery oft mit Feature Flags, gezielter Service Delivery und A/B-Testing in Verbindung gebracht wird, umfasst sie ein breiteres Spektrum an Methoden zur kontinuierlichen Verbesserung, die sich in die Experimentation auf einer Produktseite einfügen. Dazu gehören auch „Canary“ und „Blue-Green“-Deployments, Beobachtbarkeit, DevOps und Progressive Experimentation.

Progressive Delivery und die Evolution der Softwareentwicklung

Um Progressive Delivery zu verstehen, ist es hilfreich, die Entwicklung der Software-Liefermethoden zu verstehen:

  • Wasserfallmodell: Gekennzeichnet durch lange Phasen des Entwickelns und Testens, gefolgt von der Bereitstellung. An einer einzigen Veröffentlichung könnte mehrere Monate lang gearbeitet werden. Dies führt oft zu erheblichen Kosten und gescheiterten Veröffentlichungen.
  • Agiles Modell: Ein iterativerer Prozess, der aus einem kontinuierlichen Zyklus des Entwickelns, Testens, Bereitstellens und Veröffentlichens besteht.
    • Kontinuierliche Bereitstellung/Kontinuierliche Integration: Teams entwickeln, testen und sammeln Feedback mehrmals, bevor sie ein Feature veröffentlichen, um die Auswirkungen der Veröffentlichung eines falschen Produkts zu minimieren.
    • Progressive Delivery: eams entwickeln, testen, stellen bereit und veröffentlichen an eine kleine Gruppe von Benutzern, um das Feature zu testen, bevor sie sie für die gesamte Benutzerbasis ausrollen.
 

Progressive Delivery ist eine Methode, um auf dem CI/CD-Framework aufzubauen und gleichzeitig das Risiko zu reduzieren, das mit kontinuierlichen Veröffentlichungen neuer Codes einhergeht.

Graphic showing progressive delivery via feature flags

Die Vorteile von Progressive Delivery

Produktmanager können Progressive Delivery nutzen, um mögliche negativen Auswirkungen einer Veröffentlichung zu reduzieren. Nachfolgend sind vier der wichtigsten Vorteile von Progressive Delivery aufgeführt.

Schnellere Feedbackschleifen

Die Sammlung und richtige Nutzung von Benutzerfeedback sind das Kennzeichen eines innovativen Produktteams. Progressive Delivery verkürzt die Feedbackschleifen, indem es schneller und einfacher wird, Feedback zu einem neuen Feature einzuholen.

Produktmanager können ein neues Feature während eines Beta-Tests an eine Gruppe von Benutzern freigeben, Feedback dazu sammeln und mehrmals Änderungen an diesem Feature vornehmen, bevor sie sie für 100 % der Benutzerbasis freigeben. Dies kann wiederum die Bindung der Benutzer an das Produkt verbessern.

Reduzierung des Veröffentlichungsrisikos

Ursprünglich war mit der Einführung neuer Features das Risiko verbunden, ein fehlerhaftes Feature oder eine Funktion zu veröffentlichen, die von den Benutzern nicht genutzt wurde.

Durch das Testen eines Features mit einer kleinen Benutzergruppe können Produktmanager sehen, ob dies wie beabsichtigt funktioniert und etwaige Fehler erkennen, die in die Produktion gerutscht sein könnten, bevor sie sie für die gesamte Benutzerbasis freigeben.

Dadurch wird das Risiko von Veröffentlichungen erheblich verringert und die Möglichkeit eines umfangreichen (und kostspieligen) Rollbacks von Features reduziert.

Erhöhte Agilität und Effizienz

Wenn ein Feature an Benutzer veröffentlicht und dann auf Feedback gewartet wird, bevor Änderungen vorgenommen werden, bleibt wenig Spielraum für Verbesserungen.

Progressive Delivery ermöglicht es Produktteams, ein Feature zunächst an eine ausgewählte Benutzergruppe freizugeben, sie zu testen, daran zu arbeiten und sie dann erneut an eine andere Benutzergruppe oder die gesamte Benutzerpopulation freizugeben, um ihre Hypothesen und Annahmen zu prüfen.

Durch die Verwendung von Feature Flags können Entwickler auch Code in einer Testumgebung bereitstellen, bevor er für die Veröffentlichung bereit ist. Dies schafft einen effizienteren Entwicklungsprozess.

Mehr Kontrolle über Veröffentlichungen

CI/CD betont die Bedeutung der Minimierung von Ausfallzeiten und der regelmäßigen Bereitstellung von Software. Allerdings bietet CI/CD nur wenig Kontrolle darüber, wer welche Funktionen sieht und wann sie für eine Benutzerbasis freigegeben werden.

Durch die Progressive Delivery haben Produktteams mehr Kontrolle über ihre Veröffentlichungen. Dies gibt ihnen wiederum mehr Flexibilität bei der Art und Weise, wie sie Funktionen an ihre Benutzer freigeben.

Wie funktioniert Progressive Delivery?

Progressive Delivery wird durch Feature Flags ermöglicht, eine Art if/else-Logikbaustein, der eine Funktion ein- oder ausschalten kann. Sie trennen die Bereitstellung von der Veröffentlichung, sodass Produktmanager Features nach eigenem Ermessen freigeben können, ohne den Arbeitsablauf eines Entwicklers zu beeinträchtigen.

Angenommen, ein Produktmanager möchte beispielsweise eine bedeutende Funktion mit drei Benutzergruppen testen, bevor sie für die allgemeine Benutzerbasis freigegeben wird.

Ein Entwickler erstellt eine Feature-Flag, welche bei Bedarf verwendet werden kann. Wenn der Produktmanager den Zugriff auf die Funktion für eine Benutzergruppe freigeben möchte, kann er einfach die Flag aktivieren. Dies hat keinen Einfluss auf die Experience der Funktion für andere Benutzer.

Wenn ein Feature „deaktiviert“ muss, kann die zugehörige Flagge ausgeschalten werden.

Feature Flags können leicht von jedem Mitglied des Produktteams mithilfe einer Full-Stack Feature Management Lösung verwaltet werden.

Anwendungsfälle für Progressive Delivery umfassen:

 

Jeden dieser Anwendungsfälle betrachten wir unten genauer.

Progressive Delivery vs. Kontinuierliche Integration, kontinuierliche Bereitstellung und kontinuierliche Auslieferung (CI/CD)

Progressive Delivery stellt eine Weiterentwicklung des CI/CD-Frameworks dar.

Kontinuierliche Integration: Entwickler integrieren kontinuierlich den von ihnen geschriebenen Code mit dem Live-Code. Automatisierte Tests überprüfen den neuen Code, und neue Builds werden automatisch erstellt.

Kontinuierliche Bereitstellung: Nimmt die Builds aus der kontinuierlichen Integration und liefert sie in eine Testumgebung oder einen Klon der Produktionsumgebung (der Live-App oder Lösung).

Die Tests werden manuell durchgeführt, und der Code wird nur bereitgestellt, wenn die Tester ihn genehmigen. Die Geschwindigkeit der Freigabe wird durch die Kapazität des Testteams gesteuert.

Kontinuierliche Auslieferung: Der neue Code wird in die Produktionsumgebung gepostet, sobald er die Basisleistungsstandards erfüllt. Es gibt keine manuellen Tests – die Bereitstellung erfolgt automatisch, ohne Eingriff eines Entwicklers oder Testers.

Progressive Delivery: Baut auf kontinuierlicher Bereitstellung auf, indem es Feature Flags implementiert, um die Bereitstellung von der Veröffentlichung zu trennen. Der Code wird automatisch in die Produktionsumgebung bereitgestellt, aber die Veröffentlichung erfolgt schrittweise.

CI/CD stellt eine vorteilhafte Weiterentwicklung gegenüber früheren Softwareentwicklungsmethoden dar. Aber für innovative Softwareunternehmen, die im Wettbewerb um Funktionen und Innovation stehen, reicht die Implementierung von CI/CD allein nicht aus, um vorn zu bleiben.

Continuous integration and continuous delivery graphic

Wie Progressive Delivery die Probleme von CI/CD behebt

CI/CD birgt einige Risiken für agile Produktteams. Hier sind drei Probleme mit CI/CD, die durch Progressive Delivery gelöst werden.

1. Die Entwicklung von Funktionen und die Code-Bereitstellung sind eng miteinander verknüpft

Das Arbeiten an Funktionen in einem „kontinuierlichen alles“ Entwicklungsprozess erfordert von den Entwicklern, den Funktionscode zu integrieren, bereitzustellen und zu deployen. Es gibt keine Möglichkeit, Features zu einem inaktiven Zustand des Systems hinzuzufügen, was die Freiheit bei Feature Development einschränkt.

Mit Progressive Delivery können Feature Flags verwendet werden, um einfach zu steuern, wann Features bereitgestellt werden. Auf diese Weise können Funktionen an bestimmte Benutzergruppen ausgeliefert und getestet werden, ohne sie der gesamten Benutzerpopulation auszusetzen.

2. CI/CD kann ein riskanter Entwicklungsprozess sein

Bei der kontinuierlichen Bereitstellung sind es die Benutzer, die die Fehler bei automatisierten Tests entdecken. Dies ist problematisch, da ein schwerwiegender Fehler das Image eines Unternehmens stark beeinträchtigen kann.

Progressive Delivery ermöglicht eine bessere Kontrolle darüber, wer Zugriff auf Features hat und wann. Wenn nur ein Teil der Bevölkerung anfänglich einer neuen Version oder Funktion ausgesetzt ist, wird das Gesamtrisiko erheblich verringert.

3. Entweder werden alle Funktionen gestartet oder keine

Mit CI/CD können Entwickler den Code nicht auf Funktionsebene aufteilen. Wenn eine Gruppe von Funktionen gestartet wird und eine davon fehlerhaft ist, erfordert dies immer noch ein komplettes Rollback.

Progressive Delivery verwendet Feature Flags, sodass jedes Feature einen eigenen Schalter hat. Das Deaktivieren des Schalters für eine Funktion kann diese einfach in der Anwendung oder Software deaktivieren, sodass eine fehlerhafte Funktion gezielt behoben werden kann, ohne den Rest der Veröffentlichung zu beeinträchtigen.

Progressive Delivery ermöglicht es Teams, die kontinuierliche Bereitstellung sicherer zu gestalten, indem sie steuern, welcher Benutzerpopulation welcher Zugriff gewährt wird, wodurch das Risiko erheblich gesenkt wird.

Bereitstellung bei Progressive Delivery

Was die Bereitstellung betrifft, nutzt Progressive Delivery die gleichen Bereitstellungsmethoden wie CI/CD. Allerdings werden diese durch die Verwendung von Feature Flags erleichtert.

Wie Progressive Delivery und die Verwendung von Feature Flags Canary- und Blue-Green-Deployment verbessern kann:

Canary-Deployment (Canary Testing)

Bei Canary-Deployment wird eine aktualisierte Kopie einer App erstellt und ein kleiner Prozentsatz des Datenverkehrs wird darauf geleitet. Wenn alles in Ordnung aussieht, wird der aktualisierte Code in die Produktionsumgebung bereitgestellt, auf die alle Benutzer zugreifen können.

Durch die Implementierung von Progressive Delivery in Kombination mit Canary-Deployment können Produktmanager:

  • Erkenntnisse über die Markteinführung neuer Funktionen gewinnen.
  • Bestimmte Benutzersegmente gezielt mit bestimmten Funktionen ansprechen.
  • Funktionen an ausgewählte Benutzergruppen bereitstellen, um deren Popularität, Auffindbarkeit und Akzeptanz zu messen.
 

Blue-Green Deployment

Die Blue-Green-Bereitstellung beinhaltet das Aufrechterhalten von zwei identischen Produktionsumgebungen (blau und grün).Die grüne Version ist die Live-App oder die Produktionsumgebung. Die blaue Version dient als Testumgebung, auf der das Update angewendet wird.

Wenn die blaue Version zufriedenstellend funktioniert und alle Leistungskriterien erfüllt, wird der Datenverkehr von der grünen Version auf die blaue Version umgeleitet. Die blaue Version wird nun zur Live-App, und die grüne dient als Testumgebung für die nächste Veröffentlichung.

Durch die Implementierung von Progressive Delivery in Kombination mit der Blue-Green-Bereitstellung können Produktmanager:

  • Die Backend-Komponente einer Funktion in einer App live schalten und deren Leistung testen, ohne die Frontend-Komponente bereitzustellen.
  • Eine absolut feinkörnige Kontrolle darüber haben, wie die Bereitstellung von Funktionen erfolgt.
  • Feedback darüber sammeln, wie Funktionen funktionieren und wie sie verwendet werden.
  • Die Kontrolle über die Zugänglichkeit von Funktionen verbessern.
 

Beide Bereitstellungsarten funktionieren auch ohne Feature Flags, aber Unternehmen, die im Wettbewerb um Product Experiences stehen, können sie in ihrer herkömmlichen Konfiguration als einschränkend empfinden. Deshalb wird Progressive Delivery zu einem integralen Bestandteil einer effizienten Bereitstellung.

Progressive Delivery und Experimentation

Unternehmen möchten Features entwickeln, die den Nutzern gefallen, um wachstumsorientierte Produkte zu schaffen. Neben der Risikominimierung bei der schnellen Einführung neuer Features müssen sie auch den Wert neuer oder verbesserten Funktionen validieren.

Sie möchten mehr als nur Probleme im Code finden und geschäftliche Informationen sammeln. Sie möchten wissen, wie Funktionen mit Geschäftskennzahlen zusammenhängen, die sich dann in den Umsatzerlösen widerspiegeln.

Progressive Delivery ermöglicht es Teams, Experimente durchzuführen, um neue Features oder unterschiedlich implementierte Funktionen einzuführen und sie mit echten Benutzern zu testen, auch bekannt als Feature Experimentation. Feature Flags ermöglichen die serverseitige Durchführung solcher Experimente.

Teams können dann schnell Benutzerfeedback und Daten sammeln und dieses Feedback bei Entscheidungen verwenden, die sich auf Product- oder User Experience auswirken werden.

Die umfassende Implementierung der Progressive Delivery bedeutet, dass der Ansatz von:

  • Design > Erstellung > Bereitstellung zu
  • Design > Erstellung > Experiment > Bereitstellung
 

wechselt.

Indem Feature Flags verstärkt betont werden, integriert Progressive Delivery das schrittweise Experimentieren in den herkömmlichen Entwicklungsprozess.

Sie ermöglicht es Unternehmen, sich in Richtung einer hypothesengetriebenen Entwicklung zu bewegen, bei der Produkt- und Entwicklerteams nicht nur über Anforderungen nachdenken, sondern einen wissenschaftlichen Ansatz verfolgen, um bessere Product Experiences zu schaffen, die auch die Geschäftsziele erreichen.

Kameleoon unterstützt Progressive Delivery mit der eigenen Full-Stack-Lösung

Mit leistungsstarken, serverseitigen A/B-Tests, Feature Flags und Experimentierfunktionen hilft Kameleoons Full-Stack-Lösung Produkt- und Entwicklungsteams, Progressive Delivery und Feature Experimentation in die eigene Hand zu nehmen und umzusetzen.

Kameleoon wurde entwickelt, um Experimente jeder Art für alle Teams einfacher zu gestalten: Benutzer können Web-, Full-Stack- und Feature Experimenation in einer einzigen einheitlichen Plattform durchführen.

Die Feature-Flagging-Funktionen von Kameleoon erleichtern Progressive Delivery, indem Folgendes ermöglicht wird:

  • Produktmanagern die Festlegung des Zeitpunkts für die Veröffentlichung einer Funktion autorisieren.
  • Die Definition eines Go-to-Market-Plans mit erweiterten Zeitplanungsoptionen.
  • Das Festlegen von Benachrichtigungen zum Zurücksetzen von Features, basierend auf Zielkennzahlen oder Zeitplan.
  • Das Verwalten von Technical Debts mit Zapier-Trigger und -Aktionen.
  • Die Integration in Ihren bestehenden Tech-Stack.
 

Entdecken Sie in unserem umfassenden Entwicklerdokumentationsleitfaden, wie Kameleoon Feature Experimentation durch den Einsatz von serverseitigen Feature Flags unterstützt.

Bereit, mehr über Kameleoon zu erfahren? Buchen Sie noch heute eine Demo. .

Themen in diesem Artikel
Christoph Rottler
Christoph Rottler
Christoph Rottler ist Managing Director DACH bei Kameleoon. Mit über 10 Jahren Erfahrung im Bereich A/B-Testing und Personalisierung hat Christoph hunderte von Conversion-Optimierungsprojekten von SEA/ SMA bis hin zu On-Page-Kampagnen durchgeführt und greift auf einen riesigen Erfahrungsschatz aus allen Branchen zurück.
Newsletter
Bleiben Sie auf dem Laufenden über unsere neuesten Meldungen