Feature-Rollout
Inhalt
Was ist ein Feature-Rollout?
Ein Feature-Rollout ist der Prozess der Softwareentwicklung, bei dem eine neue Funktion für eine Gruppe von Nutzern eingeführt wird.
In der jüngeren Vergangenheit wurde die Software alle ein bis zwei Wochen ausgerollt, wobei eine Reihe von Änderungen gebündelt und dann überwacht wurden. Wenn etwas nicht funktionierte, musste ein komplettes Rollback durchgeführt werden, während die Ingenieure das Problem untersuchten.
Heutzutage haben vorausschauende Softwareunternehmen neue Wege gefunden, um neue Funktionen effizienter und mit weniger Risiko einzuführen.
Vorteile von Feature-Rollouts
Ein Vorteil eines Feature-Rollout-Prozesses ist, dass er die Zusammenarbeit und eine durchdachte Planung fördert. Er bringt die Teams dazu, eine Release-Strategie in die Entwicklung einzubauen. Anstatt neue Funktionen an alle Nutzer/innen in der Produktion zu verteilen, kontrollieren die Entwickler/innen die Releases im Entwicklungszyklus.
Ein weiterer Vorteil des Feature-Rollouts ist die Schnelligkeit der Tests. Die Teams können viel mehr Hypothesen in kürzerer Zeit testen.
Wenn ein Produkt eine große Anzahl von Nutzern hat, erfordern größere Änderungen Experimente, Nutzerakzeptanz und Nutzerschulungen. Ein phasenweiser Rollout oder die Segmentierung von Nutzergruppen, um verschiedene Funktionen zu testen, gibt einem Unternehmen die Möglichkeit, die Benutzeroberfläche und das Benutzererlebnis umfassend zu testen und mehr Tests durchzuführen.
Feature-Rollouts und kontinuierliche Bereitstellung
Mit der zunehmenden Beliebtheit von Continuous Delivery integrieren Produkt- und Entwicklungsteams die Steuerung von Feature-Release und Rollout in den Produktentwicklungsprozess. Die Teams stimmen sich jetzt ab, um Releases während des gesamten Entwicklungszyklus zu verwalten.
Continuous Delivery wurde von dem einflussreichen Entwickler Martin Fowler ins Leben gerufen und ist eine Disziplin der Softwareentwicklung, bei der Software jederzeit für die Produktion freigegeben werden kann. Sie wurde von führenden Softwareunternehmen auf der ganzen Welt übernommen, von deren Teams nun erwartet wird, dass sie schnell stabile und fehlerfreie Software liefern.
Feature-Rollout-Prozess
Ein Feature-Rollout-Prozess umfasst die Planung, Terminierung, Kontrolle und Prüfung eines Feature-Releases in verschiedenen Phasen und Umgebungen. Im Folgenden sind die Phasen des Prozesses aufgeführt:
Entwurf Entwirf die Funktionalität, untersuche den Use-Case und entwickle einen Zeitplan.
Freigabestrategie entwickeln Bestimme die Parameter der Freigabe und wie das Feedback der Nutzer/innen einbezogen werden soll.
Erstellen Entwickeln und Integrieren, wobei die Funktion durch mehrere Entwicklungsumgebungen gesteuert wird.
Testen Teste die Funktion und verwende die Feature Flags, um den Rollout und das Targeting der Nutzer zu steuern. Beurteile das Leistungsfeedback und die Rückmeldungen der Nutzer.
Freigeben Setze das Feature in der Produktion ein und setze dann deine Release- und Rollout-Strategie um.
Sammle Feedback Baue eine ständige Feedbackschleife auf.
Kontinuierliche Freigabe Nimm auf der Grundlage des Feedbacks schrittweise Änderungen vor und optimiere das Produkt weiter.
Feature-Rollouts mit Feature Flags
Es gibt verschiedene Möglichkeiten, neue Features einzuführen. Eine beliebte Methode sind Feature Flags, auch bekannt als Feature Toggles.
Feature Flags sind eine Technik der Softwareentwicklung, mit der bestimmte Funktionen ein- und ausgeschaltet werden können, ohne dass neuer Code bereitgestellt werden muss. Dies ermöglicht eine bessere Kontrolle und mehr Experimente über den gesamten Lebenszyklus von Funktionen.
Feature Flags ermöglichen die kontinuierliche Bereitstellung von Software für die Nutzer/innen auf schnellere Weise. Durch den Einsatz von Feature Flags können Unternehmen schrittweise Feature-Rollouts durchführen, Fehler im Code ohne erneutes Deployment beheben und einen schlankeren Entwicklungszyklus erleben.
Was ist eine Feature-Variable?
Eine Feature-Variable ist eine Möglichkeit, Feature Flags mit konfigurierbaren Komponenten oder Parametern auszustatten, die es den Softwareteams ermöglichen, das Feature im laufenden Betrieb 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 kann. Diese Schaltfläche kann aktualisiert werden, ohne dass neuer Code implementiert werden muss.
Feature-Variablen und Feature-Rollouts
Feature-Variablen können in Feature-Rollouts eingebaut werden, um Features spontan zu ändern oder zu aktualisieren, ohne neuen Code einzubauen. Diese Änderungen können für einen bestimmten Prozentsatz des Kundenstamms und bestimmte Zielgruppen ausgerollt werden.
Feature-Variablen und A/B-Testing
Feature-Variablen können mit A/B-Testing kombiniert werden, um verschiedene Feature-Konfigurationen zu testen und so bessere Geschäftskennzahlen zu erzielen. Mit Feature-Variablen kann ein Unternehmen zum Beispiel verschiedene Feature-Konfigurationen testen, um herauszufinden, welche die besten Ergebnisse bringt.
Feature-Rollouts & A/B-Testing
A/B-Tests bei der Einführung von Funktionen sind eine Möglichkeit, Risiken zu minimieren und die Auswirkungen neuer Funktionen zu testen, ohne den Code für alle freizugeben.
An Ideen für interessante Funktionen mangelt es oft nicht; der begrenzende Faktor ist die Entwicklungszeit. A/B-Tests können dabei helfen, eine Umgebung zu schaffen, in der Testdaten die Roadmap deines Produkts bestimmen und nicht einzelne Meinungen.
Mit A/B-Tests oder Split-Tests kannst du zwei Varianten von Benutzererlebnissen (für verschiedene Benutzergruppen) einrichten und den Gesamterfolg beider Varianten anhand der von dir festgelegten Zielvorgaben bewerten.
Feature-Rollouts mit Optimizely
Produkt- und Entwicklungsteams können jetzt das serverseitige Feature-Management von Optimizely nutzen, um Rollouts durchzuführen. Dies ermöglicht die gleiche Flexibilität, auf die sich Produktteams bei ihren Experimentierprogrammen verlassen haben, um Hypothesen zu validieren, bevor sie neue Produkte, Funktionen und Erlebnisse für alle einführen.
Dieses Experimentieren wird nahtlos mit den Praktiken der kontinuierlichen Integration und der kontinuierlichen Bereitstellung zusammenarbeiten, die von den heutigen fortschrittlichen Entwicklungsteams eingesetzt werden. Beide Teams - und ganze Unternehmen - werden von den schnelleren Entwicklungszyklen und Feature-Management-Praktiken wie Flags oder Toggles zur Risikominimierung profitieren können.
Alle Full Stack-Kunden von Optimizely 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 das bestmögliche Erlebnis zu finden, und dann einen kontrollierten Rollout zu managen.
Optimizely bietet jetzt auch kostenlose Feature Flags über Optimizely Rollouts für Teams an, die mit kontrollierten Feature Releases beginnen wollen, ohne die volle Funktionalität von Optimizely Full Stack zu nutzen.
Mit Optimizely kann dein Team viele Möglichkeiten testen, was die Wahrscheinlichkeit erhöht, bessere Ergebnisse zu erzielen.