Engineering

Feature Flags: Funktionen ausrollen ohne neues Deployment

In den meisten Systemen sind zwei Dinge fest verschweisst, die nichts miteinander zu tun haben: der Moment, in dem Code auf den Server kommt, und der Moment, in dem Kunden ihn sehen. Feature Flags trennen beides — und machen aus riskanten Alles-oder-nichts-Releases steuerbare, umkehrbare Entscheidungen.

Autor Julien MarschallVeröffentlicht 2026-07-25Lesezeit 6 Min.

Ein Feature Flag ist im Kern eine simple Abfrage im Code: Ist der Schalter für diese Funktion an, zeige den neuen Pfad — sonst den alten. Der Schalter selbst liegt nicht im Code, sondern in einer Konfiguration, die sich zur Laufzeit ändern lässt. Das klingt unscheinbar, verändert aber die Ökonomie von Software-Änderungen grundlegend: Deployment und Release werden zwei getrennte Entscheidungen. Der Code kann Tage vor dem eigentlichen Start unauffällig in Produktion liegen, vollständig getestet im echten System — sichtbar wird er erst, wenn jemand den Schalter umlegt. Und wenn etwas schiefgeht, legt ihn jemand zurück. In Sekunden, ohne Deployment, ohne Nachteinsatz.

Warum das Alles-oder-nichts-Release ein Betriebsrisiko ist

Ohne Flags gibt es nach einem Release nur zwei Zustände: Alle Kunden haben die neue Funktion, oder das gesamte Deployment wird zurückgerollt. Beides ist teuer. Trifft ein Fehler alle Nutzer gleichzeitig, ist der Schaden maximal; ein Rollback wiederum reisst auch alle unbeteiligten Änderungen mit zurück, die im selben Deployment steckten. In der Praxis führt das zu einem bekannten Muster: Releases werden gebündelt, seltener und grösser — und damit riskanter. Feature Flags drehen diese Spirale um, weil jede Funktion ihr eigenes, unabhängiges Sicherheitsnetz bekommt.

Die vier Einsatzmuster, die sich im Alltag rechnen

  • Kill Switch: Jede risikoreiche Neuerung bekommt einen Not-Aus. Zeigt das Monitoring nach der Aktivierung Fehler, wird nur diese eine Funktion abgeschaltet — der Rest des Systems läuft unberührt weiter.
  • Gestufter Rollout: Erst das eigene Team, dann fünf Prozent der Kunden, dann fünfzig, dann alle. Fehler zeigen sich bei kleiner Reichweite und kleinem Schaden, nicht als Flächenbrand.
  • Zielgruppen-Freischaltung: Pilotkunden, Beta-Nutzer oder ein einzelner Grosskunde sehen eine Funktion vor allen anderen — ohne separaten Systemzweig, ohne Sonderinstallation.
  • Trunk-Based Development: Halbfertige Funktionen können hinter einem inaktiven Flag regelmässig integriert werden. Das beendet die langlebigen Entwicklungszweige, deren Zusammenführung sonst wochenlang Konflikte produziert.

Gerade für kleinere Teams ist der Kill Switch der schnellste Gewinn: Er verwandelt die Frage „Trauen wir uns das Release am Freitag?" in „Wann wollen wir einschalten — und wer schaut auf die Kennzahlen?".

Die Kehrseite: Flags sind geliehene Komplexität

Jedes aktive Flag verdoppelt die möglichen Zustände des Systems. Zehn unabhängige Flags ergeben rechnerisch über tausend Kombinationen — niemand testet die alle. Deshalb gilt: Ein Flag ist ein Werkzeug auf Zeit, kein Dauerzustand. Sobald eine Funktion vollständig ausgerollt und stabil ist, werden Flag und alter Codepfad gelöscht. Bewährt hat sich eine einfache Regel: Jedes Flag hat einen Namen, einen Verantwortlichen und ein Ablaufdatum — und ein wiederkehrender Termin prüft, welche Flags fällig sind. Wer das nicht tut, sammelt tote Schalter, von denen nach einem Jahr niemand mehr weiss, was sie schalten. Das ist dieselbe Sorte technischer Schulden wie ungewartete Altsysteme, nur selbstgemacht.

Faustregel: Ein Release-Flag lebt Wochen, nicht Monate. Wenn ein Flag seinen ersten Geburtstag erlebt, ist es entweder ein bewusst dauerhafter Konfigurationsschalter — oder ein Aufräum-Versäumnis.

Umsetzung: Klein anfangen, sauber trennen

Für den Einstieg braucht es kein Spezial-Tool. Eine Tabelle in der eigenen Datenbank, ein kurzer Cache und eine kleine Verwaltungsoberfläche mit Protokoll — wer hat wann welchen Schalter umgelegt — decken die ersten Anwendungsfälle ab. Wichtig sind drei Bauprinzipien: Erstens muss der Standardwert sicher sein — ist der Flag-Dienst nicht erreichbar, gilt der alte, bewährte Pfad. Zweitens gehören Flag-Änderungen ins Protokoll, denn ein Schalter, den jeder anonym umlegen kann, ist kein Steuerungsinstrument, sondern eine neue Fehlerquelle. Drittens sollten Flags an einer Stelle ausgewertet werden statt verstreut über den Code — sonst wird das spätere Entfernen zur Suchaktion. Spezialisierte Flag-Dienste lohnen sich, sobald prozentuale Rollouts, Zielgruppen-Regeln oder A/B-Auswertungen dazukommen.

Was das fürs Geschäft bedeutet

Feature Flags sind kein Entwickler-Spielzeug, sondern ein Steuerungsinstrument für das Unternehmen: Der Marketing-Start einer Funktion lässt sich terminieren, ohne dass die Technik in derselben Minute deployen muss. Ein Pilotkunde kann exklusiv testen, bevor die Breite freigeschaltet wird. Und wenn eine Neuerung Probleme macht, kostet die Rücknahme einen Klick statt einer Krisensitzung. Zusammen mit einer sauberen CI/CD-Pipeline und Monitoring entsteht so ein Release-Prozess, bei dem Geschwindigkeit und Sicherheit keine Gegensätze mehr sind — sondern zwei Regler, die sich unabhängig einstellen lassen.

Releases, die Sie steuern statt fürchten

Wir bauen Software mit Feature Flags, gestuften Rollouts und Kill Switches — damit neue Funktionen planbar live gehen und Fehler ein Klick statt einer Krise sind.

Software & Systeme entdecken →

Häufige Fragen

Was ist der Unterschied zwischen Deployment und Release?
Deployment bedeutet: Der Code liegt auf dem Server. Release bedeutet: Nutzer sehen die Funktion. Ohne Feature Flags fallen beide Momente zusammen — mit Flags entscheidet ein Schalter in der Konfiguration, wann und für wen eine Funktion sichtbar wird, unabhängig vom Deployment-Zeitpunkt.
Brauchen wir dafür ein eigenes Tool?
Für den Einstieg reicht oft eine Konfigurationstabelle in der eigenen Datenbank mit einer kleinen Verwaltungsoberfläche. Spezialisierte Tools lohnen sich, wenn prozentuale Rollouts, Zielgruppen-Regeln oder A/B-Tests dazukommen. Wichtiger als das Tool ist die Disziplin, alte Flags wieder zu entfernen.
Werden Feature Flags nicht irgendwann zum Chaos?
Nur ohne Aufräum-Prozess. Jedes Flag braucht einen Verantwortlichen und ein Ablaufdatum. Sobald eine Funktion für alle aktiv und stabil ist, wird das Flag samt altem Codepfad entfernt. Wer das als festen Schritt im Entwicklungsprozess verankert, hält die Zahl aktiver Flags dauerhaft klein.