Feature-Rollout

Ein Feature-Rollout ist der Softwareentwicklungsprozess der Einführung einer neuen Funktion für eine bestimmte Nutzergruppe.

Was ist ein Feature-Rollout?

Ein Feature-Rollout ist der Softwareentwicklungsprozess der Einführung einer neuen Funktion für eine bestimmte Nutzergruppe.

In der nicht allzu fernen Vergangenheit wurde Software einmal pro Woche oder alle zwei Wochen ausgerollt, wobei eine Reihe von Änderungen gebündelt und anschließend überwacht wurden. Wenn etwas nicht funktionierte, konnte ein vollständiger Rollback erforderlich sein, während Ingenieure das Problem untersuchten.

Heutzutage haben zukunftsorientierte Softwareunternehmen neue Wege gefunden, Funktionen effizienter und mit geringem Risiko einzuführen.

Vorteile von Feature-Rollouts

Ein Vorteil eines Feature-Rollout-Prozesses besteht darin, dass er Zusammenarbeit und durchdachte Planung fördert. Er bringt Teams dazu, eine Release-Strategie in die Entwicklung zu integrieren. Anstatt neue Funktionen für alle Nutzer in der Produktion bereitzustellen, steuern Entwickler Releases im Entwicklungslebenszyklus.

Ein weiterer Vorteil von Feature-Rollouts ist die Testgeschwindigkeit. Teams können in kürzerer Zeit viel mehr Hypothesen testen.

Wenn ein Produkt eine große Anzahl von Nutzern hat, erfordern größere Änderungen Experimente, Nutzerakzeptanz und Nutzerschulung. Das phasenweise Ausrollen oder die Segmentierung von Nutzergruppen zum Testen verschiedener Funktionen gibt einem Unternehmen die Möglichkeit, die Benutzeroberfläche und User Experience vollständig zu testen und mehr Tests durchzuführen.

Feature-Rollouts & Continuous Delivery

Mit der zunehmenden Popularität von Continuous Delivery integrieren Produkt- und Entwicklerteams Funktionsfreigabe- und Rollout-Steuerungen in den Produktentwicklungsprozess. Teams koordinieren sich nun, um Releases während des gesamten Entwicklungszyklus zu verwalten.

Befürwortet vom einflussreichen Entwickler Martin Fowler, ist Continuous Delivery eine Softwareentwicklungsdisziplin, bei der Software jederzeit in die Produktion überführt werden kann. Sie wurde von führenden Softwareunternehmen weltweit übernommen, deren Teams nun erwartet wird, schnell stabile und fehlerfreie Software zu liefern.

Feature-Rollout-Prozess

Ein Feature-Rollout-Prozess umfasst die Planung, Terminierung, Steuerung und das Testen einer Funktionsfreigabe durch verschiedene Phasen und Umgebungen. Im Folgenden sind die Phasen des Prozesses aufgeführt:

  1. Design

    Gestalten Sie die Funktionalität, untersuchen Sie den Anwendungsfall und entwickeln Sie einen Zeitplan.
  2. Release-Strategie entwickeln

    Bestimmen Sie die Parameter der Freigabe und wie Nutzerfeedback integriert werden soll.
  3. Erstellen

    Entwickeln und integrieren Sie die Funktion und verwalten Sie ihre Weiterentwicklung durch mehrere Entwicklungsumgebungen.
  4. Testen

    Testen Sie die Funktion und verwenden Sie das Feature Flag, um Rollout und Nutzer-Targeting zu steuern. Bewerten Sie Leistungsfeedback und Nutzerfeedback.
  5. Freigeben

    Deployen Sie die Funktion als „deaktiviert" in der Produktion und implementieren Sie dann Ihre Release- und Rollout-Strategie.
  6. Feedback sammeln

    Etablieren Sie eine kontinuierliche Feedbackschleife.
  7. Kontinuierlich freigeben

    Nehmen Sie inkrementelle Änderungen basierend auf Feedback vor und optimieren Sie das Produkt kontinuierlich.

Feature-Rollouts mit Feature Flags

Es gibt verschiedene Möglichkeiten, neue Feature-Rollouts bereitzustellen. Eine beliebte Methode verwendet Feature Flags, auch bekannt als Feature Toggles.

Feature Flags sind eine Softwareentwicklungstechnik, die bestimmte Funktionalitäten ein- und ausschaltet, ohne neuen Code bereitzustellen. Dies ermöglicht mehr Kontrolle und mehr Experimentierfreude über den gesamten Lebenszyklus von Funktionen.

Feature Flagging ermöglicht die Continuous Delivery und Bereitstellung von Software für Nutzer auf schnellerem Weg. Der Einsatz von Feature Flags ermöglicht es Unternehmen, schrittweise Feature-Rollouts durchzuführen, Bugs im Code zu beheben, ohne erneut bereitzustellen, und einen optimierteren Entwicklungszyklus zu erleben.

Was ist eine Feature-Variable?

Eine Feature-Variable ist eine Möglichkeit, Feature Flags mit konfigurierbaren Komponenten oder Parametern zu instrumentieren, die es Software-Teams ermöglichen, die Funktion spontan zu steuern oder zu aktualisieren, ohne Code bereitzustellen.

Ein Beispiel für eine Feature-Variable wäre ein Button, der mit verschiedenen Farben, Texten, Größen und Platzierungen angepasst werden könnte. Dieser Button könnte aktualisiert werden, ohne neuen Code bereitzustellen.

Feature-Variablen und Feature-Rollouts

Feature-Variablen können in Feature-Rollouts integriert werden, um Funktionen spontan zu ändern oder zu reparieren, ohne neuen Code pushen zu müssen. Diese Änderungen können für einen Prozentsatz einer Kundenbasis und spezifische Zielgruppen ausgerollt werden.

Feature-Variablen und A/B-Testing

Feature-Variablen können mit A/B-Testing kombiniert werden, um verschiedene Funktionskonfigurationen zu testen und verbesserte Geschäftskennzahlen zu erzielen. Mithilfe von Feature-Variablen könnte ein Unternehmen beispielsweise verschiedene Funktionskonfigurationen testen, um herauszufinden, welche die besten Ergebnisse liefern.

Feature-Rollouts & A/B-Testing

Die Integration von A/B-Testing in Ihr Feature-Deployment ist eine Möglichkeit, sowohl Risiken zu mindern als auch die Auswirkungen neuer Funktionen zu testen, ohne den Code für alle freizugeben.

Es mangelt oft nicht an Ideen für interessante Funktionen; der limitierende Faktor ist die Entwicklungszeit. A/B-Testing kann dabei helfen, ein Umfeld zu schaffen, in dem Testdaten Ihren Produkt-Roadmap antreiben, nicht einzelne Meinungen.

Mit A/B- oder Split-Tests können Sie zwei Variationen von User Experiences einrichten (die verschiedenen Nutzergruppen präsentiert werden) und den Gesamterfolg jeder einzelnen anhand der von Ihnen festgelegten Zielresultate bewerten.

Feature-Rollouts mit Optimizely Feature Experimentation

Produkt- und Entwicklungsteams können jetzt Optimizely serverseitiges Feature Management für Rollouts verwenden. Dies ermöglicht dieselbe Flexibilität, auf die Produktteams mit ihren Experimentier-Programmen zur Validierung von Hypothesen vor dem Start neuer Produkte, Funktionen und Erlebnisse für alle angewiesen sind.

Diese Experimentierung wird nahtlos mit den Praktiken der Continuous Integration und Continuous Delivery funktionieren, die von heutigen fortgeschrittenen Ingenieurteams eingesetzt werden. Beide Teams – und ganze Unternehmen – werden von schnelleren Entwicklungszyklen und Feature-Management-Praktiken wie Flags oder Toggles zur Risikominderung profitieren können.

Alle Optimizely Full Stack-Kunden können in die Fußstapfen der weltweit führenden Softwareunternehmen (wie Amazon, Google und Facebook) treten, um ihre digitalen Erlebnisse zu entwickeln, A/B-Tests durchzuführen, um die bestmögliche Experience zu finden, und dann einen kontrollierten Rollout zu verwalten.

Optimizely bietet jetzt auch kostenlose Feature Flags über Optimizely Rollouts für Teams an, die mit kontrollierten Funktionsfreigaben beginnen möchten, ohne die volle Funktionalität von Optimizely Full Stack zu benötigen.

Mit Optimizely kann Ihr Team viele Möglichkeiten testen, was die Wahrscheinlichkeit erhöht, bessere Ergebnisse zu erzielen.