Funktionen aktivieren mit Feature Flags
02.04.2025, Christian Cremer

Feature Flags sind eine Möglichkeit, zur Laufzeit Funktionen in Apps zu aktivieren. Zentrale Feature Flag Management-Plattformen ermöglichen es, neue Funktionen kontrolliert auszurollen, Risiken zu minimieren und wertvolles Feedback zu sammeln. In diesem Beitrag gehen wir näher auf den bewussten Einsatz von Feature Flags ein.

Was sind Feature Flags?

Feature Flags (oder Feature Toggles) sind Einstellungen im Hintergrund für Apps oder Webseiten. Meistens lassen sich Funktionen leicht und ohne Unterbruch einschalten. Beispiele sind etwa:

  • Das Rollout eines Rebrands von einer App muss zu einem bestimmten Datum erfolgen. Die technische Umsetzung des Rebranding wird vorgängig ausgerollt, aber noch nicht aktiviert. Erst zum Stichtag wird die Änderung wirksam gemacht.
  • Der Release einer neuen Funktion muss zusammen mit dem Marketing koordiniert werden, beispielsweise damit Werbung dafür geschaltet werden kann. Damit es sicher keinen Unterbruch gibt, muss der technische Rollout somit schon früher gemacht sein.

Solche Situation klingen selbstverständlich, es ist aber erstaunlich, was solche Einstellungen im Hintergrund für die App oder Webseite eigentlich bedeuten.

Im Beispiel vom Rebranding müssen beide Designs vollumfänglich funktionieren und auf Knopfdruck gewechselt werden können. Der Code muss sowohl ohne als auch mit der neuen Funktion funktionieren.

Entwicklung von Features

Üblicherweise lassen sich Feature Flags remote und live über eine zentrale Management-Plattform steuern. Bevor der Code ausgeführt wird, wird bei der Plattform die aktuelle Einstellung der jeweiligen Flags abgefragt. Oft werden auch Metadaten mitgegeben, die zur Entscheidung eines Flags beitragen können. Beispiele für solche Metadaten sind Region, Sprache, Geräteart (Mobile/Desktop), Zugehörigkeit zu einer bestimmten Kundengruppe oder beliebige weitere Attribute.

Es gibt auch Apps, die es den Benutzenden erlaubt, selbst über die Aktivierung von Features zu bestimmen. Auf der App oder Website gibt es dann jeweils einen Bereich, in dem sie bestimmte Funktionen (oft testweise) aktivieren können. Dabei können sie neue Funktionen oder Designs ausprobieren und dem Entwickler Feedback geben. Der Entwickler erhält dabei Zeit und wertvolles Feedback und kann die Funktion verbessern, bevor sie für alle Benutzenden ausgerollt wird.

Beispiel aus GitHub für von Nutzer:innen aktivierbare Vorschaufunktionen

Beispiel aus GitHub für von Nutzer:innen aktivierbare Vorschaufunktionen

Wichtig für den Hersteller ist auch der nachträgliche Abbau von Feature Flags, wenn die entsprechende Funktion für alle Benutzenden ausgerollt wurde. Denn sonst bleibt veralteter Code bestehen und das führt zu unübersichtlichem und unwartbarem Code, was die Entwicklungskosten für künftige Änderungen und für neue Funktionen erhöht. Jeder Flag bedeutet einen doppelten Aufwand beim Testen der betroffenen Funktionen.

Gradueller Rollout

Man stelle sich vor, eine grosse Plattform wie Facebook führt eine neue Funktion ein und das für alle gleichzeitig. Wenn es zu einem Problem mit der neuen Funktion kommt, sind weltweit alle Benutzenden gleichzeitig betroffen. Das gäbe sogar mediale Aufmerksamkeit.

Deswegen führt man neue Funktionen schrittweise ein, z.B. zu Beginn nur für 5 % der Benutzenden oder gezielt für bestimmte Benutzergruppen. Wenn neue Funktionen limitiert ausgerollt werden, werden die Auswirkungen von Fehlern minimiert. Im Weiteren kann damit auch die Belastbarkeit der neuen Funktion getestet werden.

A/B Tests

Mit Feature Flags können auch A/B Tests gemacht werden. Beispielsweise bei YouTube können Ersteller mehrere Titel und Vorschaubilder hochladen. Später wählen sie den Titel oder das Bild, welches die meisten Klicks generiert. Oder es werden bei einem Webshop zwei Designs miteinander verglichen: Etwa Variante A mit Hintergrund und Variante B ohne Hintergrund. Für eine Zeit wird gemessen, welches Design mehr Klicks generiert, und dann dieses gewählt. Für die Benutzenden bleibt es völlig unbemerkt, dass sie hier quasi einem Experiment teilgenommen haben.

Voraussetzung dafür ist das Monitoring der aktivierten Flags pro Nutzergruppe, damit die Klicks oder Verkäufe auch den entsprechenden Flags zugeordnet werden können. Für denselben Benutzer müssen immer die gleichen Flags gelten. Eine gute Feature Flag Management-Plattform übernimmt das jedoch üblicherweise.

Verantwortung von Flags

Feature Flags sind sehr mächtig. Weise genutzt, können sie stabile und schnelle Entwicklung fördern.

Aber es gibt auch die Kehrseite der Medaille. Wenn ein neues Feature für alle Benutzenden ausgerollt wurde, sollte man den entsprechenden Flag und den alten Code rasch entfernen. In einem von PostHog beschriebenen Extremfall einer Trading-Firma kostete ein Fehler mit einem Feature Flag gar Millionen an finanziellem Schaden an der Börse und die Firma musste von externen Investoren gekauft und gerettet werden.

Was bedeutet es, eine Software entwickeln zu lassen?

Mein Name ich Christian Mäder. Jeden Freitag nehme ich mir eine Stunde Zeit, um Fragen rund um die Entwicklung und Pflege von Software zu beantworten.

  • Kann man meine Idee mit Software umsetzen?
  • Wie gehe ich vor?
  • Was muss ich können?
  • Ist eine Individualentwicklung sinnvoll?
  • Was kostet das?
  • Wie lange dauert es?

Solchen und weiteren deiner Fragen beantworte ich dir gerne. Die Stunde steht exklusiv dir zur Verfügung. Sie ist für dich komplett kostenlos und unverbindlich. Du musst dich lediglich anmelden: