Optimierungs-Glossar

Progressive Lieferung

Table of Contents

    Was ist Progressive Delivery?

    Progressive Auslieferung ist eine Veränderung in der Art und Weise, wie Unternehmen Software ausliefern. Sie ermöglicht es ihnen, schnell zu handeln, indem sie den Code für kleine Teile ihres Kundenstamms freigeben und das Vertrauen in ihre Produktentscheidungen stärken, indem sie ihre Hypothesen mit echten Kunden testen.

    Bei früheren Praktiken wie Agile und Continuous Delivery wurden Änderungen gleichzeitig für die gesamte Benutzerbasis bereitgestellt. Progressive Delivery verfolgt mit seinen Cloud-nativen Funktionen einen anderen Ansatz. Mit Feature Flags werden Qualität und Leistung in der Produktion validiert.

    Anstatt neue Funktionen oder einen neuen Code für alle bereitzustellen, geben Unternehmen, die Progressive-Delivery-Techniken anwenden, diese schrittweise für eine Teilmenge ihrer Nutzerbasis frei. Sie konzentrieren sich auf das Feature Management und die Freigabe von Änderungen durch schrittweise Rollouts, Targeting Feature Flags und A/B-Tests, A/B/n usw., um den Freigabeprozess zu steuern und Erkenntnisse zu gewinnen.

    Dieser Prozess hilft den Produkt- und Entwicklungsteams, Unsicherheiten zu verringern, datengestützte Entscheidungen zu treffen und den Endnutzern schneller das richtige Erlebnis zu bieten. Sie gewinnen Vertrauen in ihre Produktentscheidungen, bevor sie größere Investitionen tätigen, und vermeiden kostspielige Rollbacks oder Hotfixes. Schließlich führt die Beschäftigung der Kunden mit bestimmten Funktionen und Produkten zu einer stärkeren Kundenbindung und höheren Umsätzen für Unternehmen.

    Das Herzstück dieser Praxis ist eine Plattform für Produktexperimente, die es den Teams ermöglicht, die Freigabe neuer Funktionen für die Produktion zu kontrollieren, die Bereitstellung von der Aktivierung von Funktionen zu entkoppeln und die Auswirkungen dieser Änderungen mit echten Nutzern in der Produktion zu messen. Mit Feature Flags gewinnen Entwicklungsteams die Gewissheit, dass sie die wirkungsvollsten Produkte und Funktionen entwickeln, denn sie können Produktentscheidungen validieren, bevor teure Investitionen in Pipelines verloren gehen.

    Wie funktioniert die progressive Entwicklung?

    Es reicht nicht mehr aus, mit kontinuierlichen Bereitstellungsstrategien nur kleine Änderungen schnell bereitzustellen. Mit einem grundlegenden Verständnis und dem Wissen, wie man Fallstricke bei Prozessen, Technik und Strategie vermeidet, können Teams erfolgreich bessere Software, Produkte und schnelleres Wachstum liefern.

    Ein Beispiel für eine schrittweise Bereitstellung von Funktionen könnte so aussehen:

    Team -> Beta -> Stufenweiser Rollout -> Alle

    Es kann auch granulare Rollouts wie Canary-Releases, A/B-Tests und mehr beinhalten, die es den Teams ermöglichen, effektiver zu arbeiten und gleichzeitig Risiken zu reduzieren. So hilft es.

    1. Feature Flags

    Feature Flags ermöglichen ein granulares Rollout von Features. Das bedeutet, dass neue Funktionen für einen kleinen Prozentsatz der Nutzer/innen freigegeben werden können, bevor sie für alle Nutzer/innen eingeführt werden. Auf diese Weise können Probleme erkannt werden, bevor sie sich auf alle Nutzer/innen auswirken.

    2. Canary-Tests

    Canary Deployment ist ein weiterer wichtiger Aspekt von Progressive Delivery, denn es ermöglicht Tests in der Produktion mit einem kleinen Prozentsatz von Nutzern.

    3. A/B-Testing

    A/B-Tests ermöglichen es, mit Funktionen und Benutzererlebnissen zu experimentieren und zu variieren. Durch das Testen verschiedener Varianten einer Funktion mit unterschiedlichen Nutzergruppen können Teams feststellen, welche Version besser funktioniert, und datengestützte Entscheidungen treffen.

    4. Beobachtbarkeit

    Die Beobachtbarkeit hilft bei der Überwachung und Optimierung der Leistung. So können die Teams auftretende Probleme schnell erkennen und beheben und sicherstellen, dass die Nutzer/innen ein reibungsloses und nahtloses Erlebnis haben.

    Progressive Auslieferung ist ein leistungsfähiger Ansatz für Software- und Feature-Releases, der den Teams hilft, Risiken zu reduzieren und sicherzustellen, dass die Nutzer/innen immer noch das bestmögliche Erlebnis haben.

    Warum jedes Team sowohl Progressive Delivery als auch Experimente braucht

    Jedes Team braucht beides, um Innovationen voranzutreiben, das Benutzererlebnis zu verbessern und der Konkurrenz in der Welt der Automatisierung und der modernen Softwareentwicklung einen Schritt voraus zu sein: Progressive Auslieferung und Experimentieren. Mit einer Kombination aus beidem erhältst du ein effizientes System, mit dem du sowohl die Qualität als auch das Customer Engagement über den gesamten Entwicklungszyklus hinweg überprüfen kannst.

    Bei diesem Ansatz musst du nicht im Voraus entscheiden, ob du eine neue Version planst, experimentieren willst, eine schrittweise Einführung planst oder einfach nur ein "Noch nicht veröffentlichen"-Zeichen setzen willst. Mit diesem Ansatz kannst du mit einem grundlegenden Feature Flag in deiner Codebasis beginnen und es im Laufe der Zeit in eine Produktentscheidung umwandeln, die einen vollständigen A/B-Test oder multivariate Tests erfordert, um anspruchsvollere Techniken für die Funktionen zu ermöglichen, die sie benötigen.

    Da Software und die Bereitstellung von Funktionen immer komplexer werden und immer mehr auf dem Spiel steht, entwickelt sich die progressive Bereitstellung schnell zur bevorzugten Technik für die kontinuierliche Integration. Sie bietet eine Möglichkeit, Geschwindigkeit und Agilität mit dem Bedürfnis nach Zuverlässigkeit und Stabilität in Einklang zu bringen und ermöglicht es den Teams, Funktionen zu liefern, die den Bedürfnissen ihrer Nutzer/innen entsprechen.

    Es ist der beste Weg, um Funktionen und Updates auf sichere und kontrollierte Weise für die Nutzer freizugeben.

    Progressive Bereitstellung Beispiel Experimentierfluss

    Wie bei jedem neuen Prozess oder jeder neuen Plattform wirft die Einführung der progressiven Bereitstellung und des Experimentierens in den Softwareentwicklungs- und -bereitstellungsprozess viele Fragen für die Entwicklungs- und DevOps-Teams auf:

    • Wie können wir mit Feature Flags und A/B-Testing beginnen, ohne technische Schulden zu verursachen?
    • Wie können wir auf Tausende von Flaggen skalieren und trotzdem gute Governance- und QA-Prozesse beibehalten?
    • Wie können wir diese neuen Praktiken unternehmensweit einführen, ohne die Entwicklung und Bereitstellung zu verlangsamen?

    Hier ist ein einfaches Workflow-Beispiel, das dir den Einstieg erleichtern soll:

    Schritt 1: Erkenntnisse gewinnen

    Bevor du die progressive Bereitstellung einführst, solltest du Erkenntnisse über das Nutzerverhalten und die Anwendungsleistung sammeln. Nutze Monitoring-Tools, Nutzerfeedback und Analysen.

    Schritt 2: Was ist deine Hypothese?

    Definiere auf der Grundlage der gesammelten Erkenntnisse eine Hypothese für die neue Version, die du testen willst. Definiere eine klare Erfolgshypothese, z. B. ein verbessertes User Engagement, schnellere Ladezeiten oder höhere Konversionsraten.

    Schritt 3: Experiment einrichten

    Lege die Erfolgskriterien fest, z. B. den Prozentsatz der Nutzer/innen im Experiment, die Dauer des Experiments und die spezifischen Funktionen oder Änderungen, die getestet werden sollen.

    Schritt 4: Experiment durchführen

    Führe das Experiment durch, indem du die Änderungen an einen kleinen Prozentsatz der Nutzer/innen weitergibst. Beobachte die Ergebnisse und nimm bei Bedarf Anpassungen vor.

    Schritt 5: Analyse

    Analysiere die Testergebnisse, um zu prüfen, ob die Hypothese erfolgreich war und statistische Signifikanz erreicht wurde. Nutze quantitative Daten, wie User Engagement und Konversionsraten, und qualitative Daten, wie das Feedback der Nutzer/innen.

    Schritt 6: Austausch und Lernen

    Teile die Ergebnisse des Experiments mit den Stakeholdern und Teammitgliedern. Nutze die Erkenntnisse, um zukünftige Entwicklungsentscheidungen zu treffen und das Erlebnis für die Kunden zu verbessern.

    Schritt 7: Schrittweiser Rollout

    Wenn das Experiment erfolgreich war, führe die Änderungen nach und nach bei einem größeren Prozentsatz der Nutzer/innen ein. Beobachte die Ergebnisse und nimm bei Bedarf Anpassungen vor. Wenn der Test fehlgeschlagen ist, überprüfe die Hypothese und nimm Änderungen vor, bevor du ein neues Experiment startest.

    Vorteile der progressiven Einführung

    Die Progressive-Delivery-Methode hat mehrere Vorteile und Use-Cases, die Teams und Einzelpersonen, insbesondere Produktmanager/innen, dabei helfen können, die Zusammenarbeit zu verbessern, Risiken zu verringern und die Qualität und Leistung in einer Produktionsumgebung zu überprüfen.

    1. Effektivere Zusammenarbeit im Team

    Durch die Unterteilung des Lieferprozesses in kleinere, überschaubare Phasen können Teams enger zusammenarbeiten, um potenzielle Probleme zu erkennen und zu beheben, bevor sie zu Problemen werden. Das hilft allen Beteiligten, auf die gleichen Ziele hinzuarbeiten, was letztendlich zu einem effizienteren und effektiveren Entwicklungsprozess führt.

    2. Reduziert die Risiken bei Releases

    Wenn neue Funktionen und Updates schrittweise eingeführt werden, können die Teams Probleme erkennen und beheben, bevor sie sich auf alle Nutzer/innen auswirken. Dadurch werden Ausfallzeiten minimiert, das Risiko von Datenverlust oder -beschädigung verringert und andere potenzielle Probleme bei größeren, komplexeren Softwareversionen vermieden.

    3. Überprüft die Qualität und Leistung in der Produktion

    Durch das Testen neuer Funktionen und Aktualisierungen in kleineren, kontrollierten Umgebungen können Teams Leistungskennzahlen und Nutzerfeedback überwachen, um Probleme zu erkennen, bevor sie sich auf ein größeres Publikum auswirken. So wird sichergestellt, dass neue Funktionen und Aktualisierungen wie vorgesehen funktionieren und die Bedürfnisse der Nutzer/innen erfüllen.

    4. Targeting auf bestimmte Zielgruppen durch mehrere Phasen der Veröffentlichung

    Indem sie neue Funktionen und Aktualisierungen zunächst an eine Untergruppe von Nutzerinnen und Nutzern weitergeben, können die Teams Feedback sammeln und Anpassungen vornehmen, bevor sie sie für eine breitere Zielgruppe freigeben.

    Durch den Einsatz von Progressive Delivery können Teams bessere Funktionen und Softwareprodukte entwickeln, um den Geschäftserfolg in Echtzeit zu steigern.

    Erfolgsgeschichten zur progressiven Entwicklung

    Diese A/B-Testing- und Progressive-Delivery-Fallstudien zeigen, welche Ergebnisse die weltweit führenden digitalen Marken mit der Experimentierplattform von Optimizely erzielt haben.