Zum Inhalt springen

Glossar · F

Feature-Flag

Konfigurations-Schalter, mit dem man Features für bestimmte Nutzer, Umgebungen oder Prozent-Anteile ein- und ausblenden kann. Ohne neuen Code-Release.

Definition

Eine Feature-Flag ist ein Konfigurationsmechanismus in der Softwareentwicklung, mit dem bestimmte Funktionen (Features) gezielt aktiviert oder deaktiviert werden können. Dies geschieht unabhängig von einem neuen Code-Release, sodass Features dynamisch für bestimmte Nutzergruppen, Umgebungen oder prozentuale Anteile freigeschaltet werden können. Feature-Flags ermöglichen eine flexible Steuerung der Softwarefunktionalität zur Laufzeit.

Der Begriff Feature-Flag wird auch als Feature-Toggle oder Feature-Switch bezeichnet. Dabei handelt es sich um eine programmiertechnische Implementierung, die es erlaubt, neue oder experimentelle Funktionen schrittweise und kontrolliert auszurollen. Die Steuerung erfolgt meist über Konfigurationsdateien, Datenbanken oder externe Dienste, die den Status der Flags verwalten.

Was bedeutet das für Ihr Unternehmen?

Mit Feature-Flags lässt sich eine neue Funktion zunächst nur für interne Tester oder ausgewählte Kunden freischalten und bei Problemen per Schalter wieder abschalten, ohne neues Update. Das senkt das Risiko großer Änderungen, etwa eines neuen Checkouts oder Preismodells. Der Haken liegt in vergessenen Schaltern: Werden alte Flags nicht entfernt, wächst die Zahl der möglichen Kombinationen und Fehler werden schwerer zu finden.

Hintergrund und Entstehung

Feature-Flags haben ihren Ursprung in der agilen Softwareentwicklung und Continuous-Delivery-Praktiken, die seit den 2000er-Jahren an Bedeutung gewinnen. Sie dienen dazu, Risiken bei der Einführung neuer Funktionen zu minimieren und die Softwarequalität durch schrittweise Tests im produktiven Umfeld zu verbessern. Die Technik wurde populär durch Unternehmen wie Facebook und Netflix, die Feature-Flags in großem Umfang für ihre Deployment-Prozesse einsetzen.

Die Verwendung von Feature-Flags unterstützt DevOps-Teams dabei, schneller auf Nutzerfeedback zu reagieren und Fehler zu beheben, ohne auf den nächsten Release-Zyklus warten zu müssen. Zudem erleichtern sie A/B-Tests und experimentelle Rollouts, indem unterschiedliche Versionen einer Funktion parallel betrieben werden können.

Funktionsweise

Technisch gesehen werden Feature-Flags als boolesche Variablen oder komplexere Zustände in den Quellcode integriert. Die Software prüft zur Laufzeit den Status eines Flags und entscheidet daraufhin, ob ein Feature aktiviert wird oder nicht. Die Steuerung kann auf verschiedenen Ebenen erfolgen, etwa global für alle Nutzer, segmentiert nach Nutzergruppen, geografischen Regionen oder auch zufällig für einen bestimmten Prozentsatz der Nutzer.

Zur Verwaltung kommen häufig spezielle Feature-Flag-Management-Systeme zum Einsatz, die eine zentrale Steuerung und Auswertung ermöglichen. Diese Systeme bieten Schnittstellen zur Integration in bestehende Anwendungen und erlauben das schnelle Umschalten von Flags ohne Neustart der Software. Dadurch wird eine hohe Flexibilität bei der Feature-Verteilung gewährleistet.

Einsatzgebiete

Feature-Flags werden vor allem in der agilen Softwareentwicklung und im Continuous-Integration/Continuous-Delivery (CI/CD)-Umfeld eingesetzt. Sie ermöglichen es, neue Funktionen zunächst nur für interne Tester oder ausgewählte Nutzer freizugeben, bevor sie vollständig ausgerollt werden. Dies reduziert das Risiko von Fehlern im Produktivbetrieb und verbessert die Nutzererfahrung.

Darüber hinaus finden Feature-Flags Anwendung bei A/B-Tests, mit denen verschiedene Varianten eines Features auf ihre Wirksamkeit geprüft werden. Ebenso dienen sie zur schnellen Deaktivierung problematischer Funktionen im Fehlerfall, ohne dass ein neuer Software-Release notwendig ist. In großen verteilten Systemen sind Feature-Flags ein wichtiges Instrument zur Steuerung von Funktionen über verschiedene Umgebungen hinweg.

Abgrenzung zu verwandten Konzepten

Feature-Flags unterscheiden sich von klassischen Konfigurationsparametern dadurch, dass sie speziell für die dynamische Aktivierung oder Deaktivierung von Funktionen konzipiert sind und meist eine granulare Steuerung ermöglichen. Im Gegensatz zu Feature-Branches in der Versionsverwaltung erlauben Feature-Flags, dass sich unterschiedliche Feature-Versionen im selben Codebase befinden und selektiv aktiviert werden.

Eine verwandte Technik ist das sogenannte Canary-Release, bei dem neue Softwareversionen schrittweise an einen Teil der Nutzer verteilt werden. Feature-Flags können dabei als Teil der Canary-Strategie genutzt werden, um einzelne Funktionen unabhängig vom gesamten Release zu steuern. Im Vergleich zu Rollbacks bieten Feature-Flags eine feinere und schnellere Möglichkeit, Funktionen zu deaktivieren, ohne den gesamten Softwarestand zurückzusetzen.

Verwandte Begriffe

Passende Leistung

Sie möchten wissen, was das für Ihr Projekt bedeutet? Sprechen Sie uns an.

Zur Leistung: Individuelle Software