Skip to main content

Was sind Feature Flags? Alles, was Sie darüber wissen müssen

Feature Flags Variationen

1 Was sind Feature Flags?

Feature Flags sind Codeschnipsel, die auch unter den Bezeichnungen Feature-Schalter, Feature-Switches oder Feature-Flippers bekannt sind. Sie dienen dazu, bestimmte Funktionen innerhalb einer Software oder Anwendung zu aktivieren oder zu deaktivieren.

Sie bilden die Grundlage für Feature Management Tools, welche es den Benutzern ermöglichen, Features mit präzisen Bereitstellungsregeln zu testen und bereitzustellen. Dies beinhaltet:

  • Progressive Bereitstellung: Ein neues Feature wird für einen kleineren Prozentsatz von Nutzern freigegeben, um die Auswirkungen eines Updates einzusehen, bevor das Feature für 100 % der Nutzerbasis eingeführt wird.
  • Gezielte Bereitstellung: Die Features werden nur Nutzer bereitgestellt, die ein gemeinsames Merkmal aufweisen (d. h. zum selben Nutzersegment gehören), wie z. B. Early-Access-Nutzer, interne Tester oder Premium-Nutzer.
  • Feature Experimentation: Einführung verschiedener Versionen eines Features, um zu sehen, welche am besten funktioniert.

 

Feature Flags sind ein wesentliches Werkzeug im DevOps-Toolkit und werden regelmäßig in agilen und Continuous-Integration/Continuous-Delivery-Organisationen (CI/CD) eingesetzt. Auch Produktmanager nutzen Feature Flags, um mehr Kontrolle darüber zu haben, wer Änderungen in der Produktion sieht und wann.

2 Wie funktionieren Feature Flags?

Feature Flags funktionieren wie bedingte Anweisungen, die bestimmen, welcher Code auf der Grundlage einer Reihe von Regeln ausgeführt wird.

Mit Feature Flags können Produktänderungen hinter einer Flag abgelegt werden und Benutzern einen kontrollierten Zugriff darauf ermöglichen. Auf diese Weise können auch unvollständige Features in der Produktion eingesetzt werden.

Im Wesentlichen trennen Sie die Bereitstellung von der Freigabe.

Bild
Release mit Feature Flags

3 Wer nutzt Feature Flags?

Entwickler sind seit vielen Jahren die Hauptnutzer von Feature Flags. Da Flags in den Code eingebunden sind, mussten sie in der Regel von einem Entwickler oder Ingenieur konfiguriert werden.

Traditionell verwendeten Entwickler boolesche Flags, also einfache Schalter, die ein Feature ganz einfach ein- oder ausschalten. Sie speichern nur richtige oder falsche Werte und sind in ihrer Komplexität sehr einfach.

Durch den Einsatz fortschrittlicher Feature-Management-Lösungen haben Produktmanager heute eine erweiterte Kontrolle über Releases. Mithilfe von Feature Flags können sie nicht nur Änderungen an Funktionen aktualisieren, sondern auch Produktexperimente durchführen. Entwickler können zwar jederzeit Code bereitstellen, aber die Entscheidung darüber, wer die Änderungen in der Produktion zu sehen bekommt und wann sie sichtbar werden, liegt nun in den Händen der Produktmanager.

Durch diese Möglichkeit können Produktteams Feature Flags vielfältiger einsetzen.

Nachfolgend finden Sie eine Zusammenfassung, wie Feature Flags in F&E- und Produktteams verwendet werden können:

  • Entwickler: Flag-Konfiguration für die Verwendung im gesamten Produktteam.
  • Produkt Manager: Schrittweise Einführung von Features, Durchführung von Experimenten und Bereitstellung von Features an verschiedene Benutzergruppen für Feedback und Tests.
  • Qualitätssicherung (QA): Verwendung von Feature Flags, um Features in der Produktion zu testen, sie zunächst intern zu validieren und dann für eine klar definierte Zielgruppe in der Produktion freizugeben. Das Verwenden von Feature Flags ermöglicht außerdem ein einfaches Zurücknehmen von Features, falls sie sich als problematisch erweisen.

 

Da so viele verschiedene Teams Feature Flags verwenden können, lassen sie sich am besten mithilfe eines umfassenden und einheitlichen Management-Tools verwalten.

4 Was sind die Vorteile der Verwendung von Feature Flags?

Es gibt viele Gründe, warum Entwickler- und Produktteams Feature Flags verwenden – von Risikominderung bis hin zur Verbesserung der Gesamtkontrolle. Hier sind einige der wichtigsten Vorteile:

Risikoreduzierung

Die Freigabe von Features für die gesamte Benutzerbasis birgt diverse Risiken. Es besteht die Gefahr, dass Fehler in die Produktion gelangen, die die Leistung des Produkts negativ beeinflussen oder eine schlechte User Experience (UX) für die Nutzer verursachen können.

Ohne irgendeine Art von Schalter erfordert jeder eingeführte Fehler ein vollständiges Rollback. Dies kann zu einem kostspieligen und zeitaufwändigen Prozess werden.

 

 

Durch den Einsatz von Feature Flags können Produktteams die Erfolgsaussichten für ihre Veröffentlichungen maximieren und gleichzeitig das Risiko von Störungen für Benutzer und das Unternehmen verringern.

Verstärkte Kontrolle

Dank Feature Flags können Produktmanager die Kontrolle über die Freigabe von Features erheblich erhöhen.

Durch das Markieren von Produktänderungen und die Bereitstellung eines kontrollierten Zugriffs für Benutzer ermöglichen Feature Flags eine präzise Verwaltung der Funktionsbereitstellung.

Produktmanager können die Vorteile von Feature Flags nutzen, um:

  • Features einfach ein- und auszublenden,
  • Features schrittweise einzuführen,
  • Featurevarianten für spezifische Nutzergruppen einzuführen,
  • und Feature Experimente durchzuführen.

Verbessert die Effizienz und Flexibilität

Ein agiles Produktteam spielt eine entscheidende Rolle bei der Förderung außergewöhnlicher Innovationen. Die Verwendung von Feature Flags ermöglicht es Teams, Feature Releases von der Codebereitstellung zu entkoppeln. Dadurch wird nicht nur die Produktivität der Entwickler gesteigert, sondern auch eine agilere Umgebung geschaffen, in der Innovationen schneller umgesetzt werden können.

Wenn die Entwickler Features schneller veröffentlichen, erhalten die Benutzer schneller Zugang zu einem größeren Nutzen.

Dies kann die Kundenbindung und den Customer Lifetime Value (CLV) verbessern und gleichzeitig die Akquisitionskosten im Laufe der Zeit senken.

Führt einen zeitgemäßen und kosteneffizienen Ansatz für die Softwareproduktion ein

Die Entwicklung von falschen Features oder die Freigabe eines fehlerhaften Features sind ein kostspieliger Fehler.

Feature Flags sind ein kostengünstiger Ansatz für die Freigabe von Code. Sie verhindern überflüssige Zurücksetzungen von Features und die Einführung unerwünschter Funktionen bei den Benutzern. Stattdessen ermöglichen sie eine schrittweise Ausrollung und gezielte Freigabe für bestimmte Benutzergruppen, was kostspielige Fehler vermeidet und die Nutzerzufriedenheit verbessert.

Wenn Features zunächst mit einer kleinen Anzahl von Benutzern getestet werden können, ist es einfacher, ein Problem zu erkennen und schnell zu beheben.

5 Feature Flags: Use Cases

Es gibt viele verschiedene Anwendungen für Feature Flags – von Killswitches bis hin zu Feature Experimentation. Hier sind einige der häufigsten Anwendungsfälle:

1. Killswitches (Einschalten/Ausschalten)

Durch die Verwendung von Feature Flags können Features oder Funktionen leicht und individuell in Echtzeit aktiviert oder deaktiviert werden. Solche Anpassungen können ohne Beeinträchtigung des restlichen Produkts vorgenommen werden.

Das Ausschalten eines Features kann auch als Killswitch dienen, um Probleme zu vermeiden, die durch die Aktivierung des Features entstehen könnten. Ein Killswitch ist eine Ein-/Aus-Funktion, die von Benutzern umgeschaltet werden kann, sobald ein Problem mit einem Feature erkannt wird. Dadurch kann das Feature schnell und effektiv deaktiviert werden, um mögliche negative Auswirkungen zu verhindern.

Durch die Verwendung eines Killswitches können Feature Flags deaktiviert und Änderungen an der App sofort durchgeführt werden, ohne dass die Zielregeln angepasst oder eine erneute Bereitstellung (redeployment) erforderlich ist.

2. Migration

Die Migration von Daten oder die Änderung der Backend-Infrastruktur erfordert oft mehrere, langwierige Schritte.

Mit Feature Flags können Entwickler Änderungen im Voraus vorbereiten, sie hinter den Flags verbergen und bei Bedarf das Backend umstellen, indem sie die Flags freigeben und den neuen Code aktivieren.

Wenn ein Problem auftritt, können sie die Flag zurücksetzen und zu bekannten, funktionierenden Konfigurationen zurückkehren.

Feature Flags verringern die Komplexität von mehrstufigen Migrationen. Sie ermöglichen DevOps-Teams, alles für einen unkomplizierten Wechsel vorzubereiten, anstatt sich um mehrere sich überschneidende, miteinander verbundene Schritte zu kümmern.

3. Refaktorisierung des Codes

Bei der Anwendung von CI/CD-Methoden haben Entwicklerteams manchmal Schwierigkeiten mit Refactoring und der Integration komplexer Codebasen. Feature Flags bieten ihnen die Möglichkeit, den stabilen Code von den Änderungen, an denen sie gerade arbeiten, zu isolieren und somit eine verbesserte Kontrolle zu erreichen.

Anstatt regelmäßig größere Zusammenführungen vorzunehmen, können DevOps-Teams Teile des Codes mithilfe von Feature Flags aktivieren, sobald sie für stabil befunden werden.

4. Kontrollierte, feingliedrige Releases

Feature Flags sind sehr wirkungsvoll, wenn es um Produktveröffentlichungen geht. Die Flags können so konfiguriert werden, dass sie Features in aller Stille freigeben – beginnend mit einer kleinen Untergruppe von Nutzern.

Progressive Bereitstellung

Produktmanager können Regeln für die schrittweise Freigabe von Features über einen bestimmten Zeitraum für alle oder eine Untergruppe von Benutzern konfigurieren. Diesen Schritt bezeichnet man als progressive Bereitstellung.

Eine Progressive Bereitstellung ermöglicht es Produktmanagern:

  • flexibel zu bleiben, wenn es darum geht, den Traffic zu eines Features automatisch zu erhöhen,
  • ein Feature schrittweise freizugeben,
  • internes und/oder externes Feedback einzuholen und dieses Feedback schneller umzusetzen,
  • und schneller die Entscheidung zu treffen, ob Sie ein Feature weiterbearbeitet oder verworfen werden soll.

 

In dem Produktmanager kontrollieren, wer wann auf ein Feature zugreifen kann, können potenzielle, negativen Auswirkungen einer Veröffentlichung verringert werden.

Gezielte Bereitstellung

Produktmanager können eine Untergruppe von Nutzern oder sogar einen kleineren Prozentsatz dieser Untergruppe ansprechen, für die sie Feature Flags aktivieren möchten. Dies wird als gezielte Bereitstellung bezeichne

Eine zielgerichtete Bereitstellung ermöglicht es Produktmanagern:

  • zu kontrollieren, welches Segment einer Nutzerbasis ein Feature sieht,
  • internes und/oder externes Feedback einzuholen und vor der allgemeinen Verfügbarkeit zu berücksichtigen,
  • Features schrittweise und in mehreren Stufen einzuführen,
  • und sicherzustellen, dass die Einführung eines Features bis zur allgemeinen Verfügbarkeit reibungslos und kontrolliert verläuft.

Canary Releases

Die Canary Releases beziehen sich auf die Freigabe eines Features für eine kleine Gruppe von Benutzern, um die Auswirkungen dieses Features wie ein Kanarienvogel in einer Kohlenmine zu testen.

Traditionell wird bei Canary Releases eine aktualisierte Kopie einer App erstellt und ein kleiner Prozentsatz des Datenverkehrs auf diese geleitet. Sobald die Leistung des Canary-Tests zufriedenstellend ist, wird der aktualisierte Code in der Produktionsumgebung bereitgestellt, wo die Benutzer darauf zugreifen können.

Canary Releases sind eine Untergruppe der gezielten Bereitstellung, die dazu dient, die Auswirkungen von Aktualisierungen zu testen. Im Gegensatz zur gezielten Bereitstellung werden hier Updates schrittweise an eine begrenzte Benutzergruppe ausgerollt, um mögliche Probleme frühzeitig zu erkennen.

5. Feature Experimentation

Feature Experimentation ist der nächste spannende Schritt in der Entwicklung des Feature Managements. Feature-Flags machen Feature Experimentation erst möglich.

Mit Feature Flags kann eine Version eines Features getestet und den Benutzern gezeigt werden. Die Leistung wird dann anhand von Zielen gemessen, die die Benutzer definieren.

Mit In-App-Berichten, die speziell für die Analyse der Leistung von Feature Experimenten entwickelt wurden, können Produktmanager:

  • die Akzeptanzraten testen, um zu verstehen, welche Variante einer Funktion von den Nutzern besser angenommen wird,
  • und einsehen, wie sich Änderungen an ihrem Produkt auf Leistung, Nutzung und andere als benutzerdefinierte Ziele definierte KPIs auswirken.

 

Anstatt zu raten, welche Features für ein Zielpublikum am besten geeignet sind, können Features getestet, weiterentwickelt und Änderungen schnell vorgenommen werden.

 

3 feature flags goals

6 Wie man Feature Flags implementiert

Für die Implementierung von Feature Flags gibt es verschiedene Möglichkeiten.

Nutzung von Entwicklerressourcen

Entwickler können Feature Flags direkt in die Codebasis codieren. Auf diese Weise wurden Feature Flags traditionell gehandhabt, und lange Zeit war dies die einzige Implementationsmöglichkeit.

Sich ausschließlich auf die Zeit und die Ressourcen von Entwicklern zu verlassen, birgt jedoch viele Herausforderungen und wird selten als nachhaltiger Weg zum Wachstum angesehen.

Verwendung eines Feature-Management-Systems

Systeme zur Verwaltung von Feature Flags entlasten die Entwickler bei der Konzeption, Überwachung und Verwaltung von Feature Flagged Code.

Bei einer Feature-Management-Lösung müssen die Entwickler lediglich das Feature codieren und die Variablen zum Code hinzufügen. Produktmanager können dann so viele Varianten für ihre Experimente erstellen, wie sie möchten – ohne dass ihre Entwickler zusätzlichen Code eingeben müssen.

Eine Vielzahl von Lösungen steht zur Verfügung, darunter Plattformen für das Feature-Management und umfassende Experimentierlösungen, mit denen Benutzer serverseitige Experimente, Feature Flags und Feature-Experimente verwalten können.

Erweiterte Tools für die Verwaltung von Feature Flags bieten:

  • Umfassende SDK-Bibliotheken.
  • Unterstützung für Merkmalsvariablen und Variationen.
  • Unterstützung für das Testen mobiler Anwendungen.
  • Vertiefte Berichterstattung.
  • Überwachungs- und Warnsysteme in Echtzeit.

 

Diese Funktionen ermöglichen es Produktmanagern und Produktverantwortlichen, Flags für Experimente oder andere Anwendungsfälle einfach zu implementieren, ohne dass Entwicklerressourcen benötigt werden.

7 Bewährte Feature Flag Praktiken

Planen Sie, mit Feature Flagging zu beginnen? Hier sind einige bewährte Verfahren, die Sie berücksichtigen sollten.

Eine einheitliche Namensgebung einführen

Wenn mehrere Teammitglieder Feature Flags für verschiedene Anwendungsfälle verwenden, kann die Verwaltung leicht unübersichtlich werden.

Die optimale Vorgehensweise im Umgang mit Feature Flags besteht darin, von Anfang an eine einheitliche Namenskonvention einzuführen. Jedes Flag-Set sollte dabei eine einheitliche Namensgebung, Syntax und Organisationsstruktur haben.

Eine einheitliche Namensgebung kann:

  • das Risiko minimieren, falsche Flags zu setzen,
  • bei der Entfernung von Feature Flags und bei Überprüfungsprozessen helfen,
  • ihre Funktion auf einen Blick verständlich machen,
  • die Abläufe im Produktteam optimieren,
  • die Abläufe im Produktteam optimieren, und Überwachungs- und Warnsysteme in Echtzeit einsehen.

Alte Feature Flags entfernen

Eine bewährte Praxis, die so bald wie möglich umgesetzt werden sollte, ist das Entfernen veralteter Feature Flags aus dem Code. Dadurch wird die Möglichkeit der Anhäufung technischer Schuldenminimiert.

Technische Schulden sind die Folge von Sparmaßnahmen und suboptimalen Entscheidungen, um kurzfristigen Zielen den Vorrang zu geben. Zu viele technische Schulden können zu schlechten Ergebnissen führen und die Gesamtproduktivität mit der Zeit beeinträchtigen.

Aus diesem Grund ist es am besten, alle bestehenden Flags zu überprüfen und so viele wie möglich zu entfernen, sobald eine neue Flag eingeführt wird.

Externes Tracking von Feature Flags

Die manuelle Nachverfolgung einer großen Anzahl von Feature Flags, z. B. durch Kommentare im Code, kann auf Dauer unzuverlässig sein.

Die Verwendung eines Feature-Management-Tools kann stattdessen zeitaufwändige Aufgaben automatisieren und einen besseren Einblick in die Position von Flags im Code und ihre Funktionsweise geben.

8 Feature Flags und Feature Experimentation

Bei Feature Experimentation werden mithilfe von Feature Flags verschiedene Versionen desselben Features eingeführt, um zu messen, wie die einzelnen Varianten im Hinblick auf die Unternehmensziele abschneiden.

Feature Experimentation ermöglicht den Teams einen wirklich datengesteuerten Ansatz bei der Entwicklung eines Produkts und kann den Weg für echte Produktinnovationen ebnen.

Feature Experimentation kann genutzt werden:

  • Zur Überprüfung von Hypothesen mit wissenschaftlichen Methoden: Überprüfen Sie, ob das Produkt mit den Unternehmenszielen übereinstimmt und wie beabsichtigt funktioniert.
  • Zur Überprüfung der Produktausrichtung und -qualität: Prüfen Sie, ob das Produkt den Erwartungen der Benutzer entspricht und den Standards gerecht wird.
  • Zur Bewertung der Auswirkungen einer Funktion auf die Leistung: Verstehen, wie sich das Produkt auf die Gesamtleistung des Unternehmens auswirkt.
  • Zur Identifizierung und Konzentration auf die wirkungsvollste Variante: Bestimmen Sie, welche Version der getesteten Varianten am wirkungsvollsten ist und die meisten Ergebnisse für das Unternehmen bringt.

 

Durch Feature Experimentation wird das Einholen von Kundenfeedback erleichtert, da es quantitative Daten zur Produktakzeptanz liefert. Es bildet die Grundlage für jedes leistungsstarke Produktteam, das ein exponentielles, produktorientiertes Wachstum anstrebt.

Weitere Informationen finden Sie in unserem vollständigen Leitfaden zu Feature Experimentation.

Feature Experimentation

9 Verwendung von Kameleoon zur Steuerung von Feature Flags

Die Verwaltung und Implementierung von Feature Flags war noch nie so einfach wie mit der Full Stack Experimentation Lösung von Kameleoon.

Kameleoon bietet als einzige Plattform Web-, Full-Stack- und Feature Experimentation in einer vereinheitlichten Lösung. Dadurch können Marketing- und Produktteams auf einer Plattform und in ihrer bevorzugten Umgebung zusammenarbeiten. Diese zentrale Plattform schafft Transparenz für alle Teammitglieder und ist in der heutigen Zeit, in der die User Experience (UX) gemeinsam verantwortet wird, von besonderer Bedeutung.

Eine gesamtheitliche Sicht auf die gesamte UX ist unerlässlich, insbesondere wenn Marketing für die Kundenakquise und das Produkt für die Kundenbindung sowie Monetarisierung verantwortlich ist. Darüber hinaus ist eine einzige, verlässliche Datenquelle von großer Bedeutung, um die Zusammenarbeit effizient zu gestalten.

Eine einheitliche Plattform fördert eine engere Zusammenarbeit zwischen den Produkt- und Entwicklungsteams. Mit den Feature-Management- und Feature-Flag-Funktionen von Kameleoon müssen Produktmanager die Entwickler nicht mehr bitten, jede Feature-Version manuell zu codieren. Stattdessen können Feature Flags einfach über eine intuitive Benutzeroberfläche verwaltet und konfiguriert werden. Dadurch wird die Effizienz gesteigert und die Kommunikation zwischen den Teams erleichtert.

Wie Produktmanager mit Kameleoon die Verwaltung von Funktionskennzeichen vereinfachen können:

  • Konfigurieren Sie eine Flag, entscheiden Sie mit unserem Rollout-Planer, wie sie freigegeben werden soll und verwenden Sie erweiterte Planungsoptionen, um einen Freigabeplan festzulegen.
  • Legen Sie Alarme fest, um Features auf der Grundlage der Zielerfüllung zurückzusetzen.
  • Anzeigen, Sortieren und Filtern von Feature Flags mit einem einzigen Dashboard.

 

Feature Flags sind mehr als nur ein Werkzeug für Entwickler. Sie sind ein integraler Bestandteil jedes leistungsstarken Produktteams.

Sie suchen nach einer Feature Flagging Lösung für Ihr Produktteam? Fordern Sie eine Demo an, um Kameleoon in der Praxis zu erleben.

Back to the top