Definition „Feature Toggle“ Was macht ein Feature Flag?
Anbieter zum Thema
Feature Flags erlauben es, neue Funktionen einer Software zu testen, ohne bestehenden Code zu verändern oder komplett neue Anwendungen bereitzustellen. Dies kann zahlreiche Vorteile in der Praxis haben.

Feature Flags werden gelegentlich auch als Feature Switch oder Feature Toggle bezeichnet. Entwickler und Entwicklerinnen können damit Funktionen in Applikationen ein- oder ausschalten, ohne nachträglich Änderungen am Code durchzuführen.
Im Kern handelt es sich um eine Anweisung direkt im Code. Sie überprüft, ob ein vom Developer definiertes Feature aktiv ist oder nicht. Je nach Ergebnis kann die Applikation dann das gewünschte Codesegment ausführen oder dies überspringen.
Dies erlaubt das flexible Aktivieren oder Deaktivieren von Funktionen, ohne dass beispielsweise per Update neuer Code eingespielt oder bestehender Code verändert werden muss. Je nach Umfang der genutzten Feature Toggles können diese allein jedoch bereits einen beachtlichen Umfang annehmen, weshalb sinnvolles Code-Management wichtig ist.
Vorteile von Feature Flags
Ein Feature Toggle kann mehrere Vorteile bringen, die teilweise aufeinander aufbauen:
- Die Technik erlaubt es, neue Funktionen nicht für die gesamte Nutzerschaft auf einmal, sondern nur für einen Anteil der Nutzer zur Verfügung zu stellen. Dies könnte beschränkt werden auf beispielsweise interne Entwicklerteams oder Personen, die explizit dem Test neuer Features zugestimmt haben.
- Konnte die Sicherheit, Integrität oder Stabilität einer neuen Funktion noch nicht ausgiebig geprüft werden, hilft ein Feature Switch dabei, sie zuerst im kleinen Rahmen zu testen. Erst anschließend wird das Feature auf die breite Nutzermasse ausgerollt. Dies verhindert weitreichende Schwierigkeiten im Problemfall.
- Zusätzlich lassen sich Feature Flags für wirkungsvolle A/B-Tests verwenden. So können Teile der User eine Funktion auf eine bestimmte Weise nutzen, während sie bei anderen Nutzerinnen und Nutzern abgeändert oder gar nicht bereitsteht. Dadurch können Development-Teams feststellen, welche Variante größeren Erfolg erzielt und die zukünftige Entwicklung der Anwendung daran orientieren.
Beispiel für Feature Flags
Ein typisches Beispiel für einen Feature Switch, der in A/B-Tests genutzt wird, ist die experimentelle Auswahl eines dunklen Modus in Anwendungen. Der Dark Mode könnte vorher bereits im Code vorhanden gewesen sein, aber anschließend erst via Feature Flag aktiv geschaltet werden.
Auf diesem Weg lässt sich feststellen, ob die Nutzenden die Funktion gutheißen oder ob sie für technische oder anderweitige Probleme sorgt. Ein Dark Mode könnte beispielsweise Probleme mit Layouts und Designaspekten hervorrufen. Auch dies kann durch Feature Flags aufgedeckt werden, ohne dass der Code per Hand verändert werden muss.
Feature Flags für Programmsicherheit
Ein Feature Toggle ist gelegentlich sinnvoll, um neue, experimentelle Funktionen zu testen, die noch nicht für den Massenmarkt bereit sind. Außerdem kann durch die Steuerung auch das Verhalten der Anwendung fast in Echtzeit angepasst werden. Dies ist vor allem bei zeitkritischen Ereignissen sinnvoll, wenn Apps aufgrund eines bestimmten Events vorübergehend ein anderes Verhalten zeigen sollen.
Nützlich erweisen sich Feature Flags auch dann, wenn es darum geht, die Sicherheit eigener Apps zu verbessern. Funktionen können zu Fehlern führen oder vielleicht Sicherheitslücken öffnen. Über einen Switch ließen sich diese Funktionen sofort nach Bekanntwerden der Lücke deaktivieren, ohne dass User die App zuerst aktualisieren müssten.
Nachteile von Feature Toggles
Feature Flags können einige Nachteile hervorrufen. Dazu zählen unter anderem:
- 1. Sie können die Komplexität von Programmcode erhöhen, da immer neue bedingte Anweisungen in den Code geschrieben werden. Der Code kann dadurch komplexer in Umgang und Wartung werden.
- 2. QA-Phasen bei der Softwareentwicklung können komplexer werden und dadurch länger benötigen. Dies liegt daran, dass Feature Flags verschiedene Kombinationen aus aktivierten und deaktivierten Features ermöglichen – die allesamt getestet werden müssen.
- 3. Feature Toggles erfordern Sauberkeit bei der Codeverwaltung. Werden diese im Laufe der Zeit nicht entfernt, steigt die Komplexität des Codes aufgrund vieler (dann unnötiger) Verzweigungen an.
- 4. Die Sicherheit kann durch Feature Flags beeinträchtigt werden. Bei schlechter Flag-Verwaltung kann es passieren, dass Daten oder Funktionen für Nutzergruppen bereitgestellt werden, die damit nicht in Kontakt kommen sollten.
Die meisten dieser Nachteile lassen sich durch ein verantwortungsbewusstes Code Management aus der Welt schaffen. Planung und Verwaltung der Feature Flags auf einem hohen Niveau reichen aus, um die Nachteile zu minimieren und die Vorteile zu maximieren.
Feature Flags auf einen Blick
Insgesamt zeichnen sich Feature Toggles durch drei Komponenten bei der Softwareentwicklung aus:
- 1. Sie eröffnen neue Flexibilität, da Entwickler nicht zuerst auf die Auslieferung von neuem Code warten müssen, sondern sofort eingreifen können.
- 2. Sie bieten mehr Kontrolle über das Verhalten der App, da diese mit wenigen Eingriffen in ihrer Funktionsweise geändert werden kann.
- 3. Sie ermöglichen Experimente, die für die Allgemeinheit nicht geeignet sind, aber für einen kleinen Nutzerkreis – ob intern oder extern – in Frage kommen.
(ID:49478465)