VWO Logo
Dashboard
DEMO ANFORDERN

Feature Flag

Was ist ein Feature Flag?

Ein Feature-Flag ist ein Softwareentwicklungsansatz, der die Aktivierung oder Deaktivierung von Funktionen aus der Ferne ermöglicht, ohne dass dafür Code bereitgestellt werden muss. Mit Feature Flags ist es möglich, neue Funktionen zur Laufzeit ohne zusätzlichen Code einzuführen. Durch die Trennung von Bereitstellung und Freigabe können Sie mit Feature Flags die gesamte Lebensdauer einer Funktion kontrollieren und sich für sichere Tests im Produktionsmodus entscheiden.

Eine Funktionskennzeichnung kann den Zugriff regeln, wenn beispielsweise neue Funktionen für interne User zum Testen und für Feedback zugänglich gemacht werden. Die Funktion ist nur für Mitarbeiter sichtbar, die über eine Unternehmens-E-Mail-Adresse mit dem Programm verbunden sind.

Mit Feature-Flags können Sie Risiken klassifizieren und Komponenten verwalten. A/B-Tests, die Einführung von Funktionen für bestimmte User, der Ausschluss bestimmter Gruppen von der Anzeige einer Funktion und ähnliche Aktivitäten werden so möglich.

Es gibt unterschiedliche Arten von Feature Flags – je nach Laufzeit und Dynamik. Sie werden für verschiedene Zwecke eingesetzt:

  • Kurzlebige Feature Flags: Temporär aktiv, z. B. für Tests in der Produktivumgebung
  • Langfristige Feature Flags: Flags wie z. B. Kill Switches bleiben dauerhaft im System
  • Dynamische Feature Flags: Werte können zur Laufzeit geändert werden
  • Statische Feature Flags: Änderungen nur über Code oder Konfigurationsdateien

Vorteile von Feature Flags

Eine Feature Flag ermöglicht es, neuen Code in einer inaktiven Form produktiv auszurollen – ohne dass dieser sofort sichtbar ist. Dadurch erhalten Teams mehr Kontrolle darüber, wie Funktionen eingeführt, getestet und bereitgestellt werden. Feature Flags haben sich in modernen Entwicklungsprozessen als unverzichtbares Werkzeug etabliert. Im Folgenden einige zentrale Vorteile:

Continuous Delivery (Kontinuierliche Lieferung)

Mit Feature Flags können Teams trunk-based development umsetzen – ohne sich um langwierige Merge-Prozesse oder Konflikte durch parallele Branches sorgen zu müssen. Besonders bei mehreren Entwickler*innen, die gleichzeitig an ähnlichen Codebereichen arbeiten, bieten Feature Flags eine effektive Möglichkeit, Änderungen schrittweise zu integrieren.

Release-Management (Freigabe-Management)

Am häufigsten werden Feature Flags im Build- oder Feature-Release-Prozess verwendet. In der Versionsverwaltung können Sie bestimmten Usern frühzeitig Zugang zu neuen Funktionen, Canary-Versionen oder Beta-Programmen geben. Wenn Sie sich zunächst an kleine Gruppen wenden und diese dann im Laufe der Zeit erweitern, können Sie Folgendes erreichen:

  • Beobachten Sie, wie die Systeme und Dienste unter zunehmender Belastung arbeiten.
  • Berücksichtigen Sie das Feedback der User und nehmen Sie bei Bedarf Anpassungen vor.
  • Stellen Sie sicher, dass der Explosionsradius begrenzt ist, falls etwas schief geht.

Erhöhen Sie die Frequenz der Produktveröffentlichungen und überprüfen Sie die Funktionalität der Funktionen

Die Verwendung von Feature Flags zur Durchführung von „Soft-Rollouts“ ermöglicht risikofreie kontinuierliche Tests in der Produktion. So können die Schalter für neue Funktionen sofort in die zu erwartende Version aufgenommen werden. Indem Sie alle Änderungen regelmäßig an einer Stichprobe von Usern überprüfen, können Sie die Funktionen viel schneller an die Verbraucher verteilen und qualitativ hochwertige und weniger fehleranfällige Produkte herausbringen.

Operative Effizienz

Systemfunktionen können mit Funktionskennzeichen ein- und ausgeschaltet werden, um die Auswirkungen von Zwischenfällen zu minimieren. Sie können betriebliche Feature Flags verwenden, um:

  • Aktivieren Sie Stromunterbrecher oder Kill Switches, um zu verhindern, dass Funktionen die Usererfahrung negativ beeinflussen und Alarme auslösen.
  • Stellen Sie die Zuverlässigkeit der API sicher, indem Sie die API-Anfragen begrenzen.
  • Wechseln Sie zu einer Version mit weniger Funktionen, wenn eine Seite stark belastet ist.
  • Stellen Sie sicher, dass neue Microservices und Tags von Drittanbietern in der Produktion kompatibel sind.
  • Helfen Sie bei der Fehlersuche und ändern Sie bei Bedarf die Protokollebenen.

Kontinuierliches serverseitiges Experimentieren

Mit Feature Flags können Sie Ihre Änderungen schnell an einer kleinen Gruppe von Usern testen und die Performance anhand der von Ihnen festgelegten KPIs verfolgen. Das Experimentieren mit A/B-Tests ermöglicht es Ihnen, neue Dinge zu entdecken. Sie können Ihre Intuition verifizieren oder verwerfen, indem

Sie verschiedene Funktionseinstellungen mit Feature Flags testen. Um sicherzustellen, dass Sie die optimale Version einer Funktion einführen, die sich positiv auf die geschäftlichen KPIs auswirkt, bietet das Durchführen von  Experimenten greifbare Daten und praktische Maßnahmen.

Risikominderung

Auf der Grundlage des Konzepts der sanften Einführung können wachsame Teams Funktionskennzeichen in Kombination mit Echtzeit-Überwachung und -Analyse als Lösung für scheinbar zeitweilige Schwierigkeiten verwenden.

Herausforderungen der Feature Flags

Die Verwendung von Feature Flags ist zwar empfehlenswert und verbessert die Arbeitsabläufe Ihres Teams erheblich, aber es gibt Situationen, in denen Sie auf Schwierigkeiten stoßen können, z. B:

Komplexität

Die Verwendung von Funktionsmerkmalen kann mit der Zeit und mit der Ausweitung der Anwendungsfälle kompliziert werden, zumal einige Firmen interne Systeme wählen, die möglicherweise nicht ausgereift genug sind, um Ihre Waren zu bedienen.

Unberechenbares Drehbuch und Zusammenarbeit

Im Laufe der Zeit kann die Anhäufung von Feature Flags in einem System zu ungeordnetem Code führen. Die Funktionalität Ihres Systems kann durch die bedingten Anweisungen, die über Ihre Codebasis verstreut sind, gestört werden, und das Vorhandensein verschiedener Codepfade macht es schwierig, bei der Fehlersuche die Ursache eines Problems zu identifizieren.

Technische Verbindlichkeiten

Flags müssen gelöscht werden, sobald sie verwendet wurden und nicht mehr funktionieren, da die Beibehaltung veralteter, inaktiver Flags letztendlich dazu führt, dass Ihr System technische Schulden anhäuft.

Bewährte Praktiken für Feature Flags

Bei der Verwendung von Feature Flags müssen Sie eine Reihe von Verfahren befolgen. Im Folgenden finden Sie einige empfohlene Vorgehensweisen, die Sie berücksichtigen und anwenden sollten, um die Verwendung von Feature Flags so reibungslos wie möglich zu gestalten:

Verwenden Sie eine standardisierte Namenskonvention

Ohne einen Namensstandard können die Mitglieder Ihres Teams anfangen, verschiedene Flags mit demselben Namen zu bezeichnen, was zu Verwechslungen führen kann. Infolgedessen kann es zu Systemstörungen kommen, wenn Ihr Team die falsche Flagge aktiviert.

Verwalten, wer Zugriff auf Flags hat

Führen Sie eine Protokollierung ein, um zu verfolgen, wer wann wichtige Änderungen vorgenommen hat. Dies ist wichtig, um die Abhängigkeit zwischen dem Produkt- und dem Entwicklungsteam zu verringern und die Effizienz zu steigern, da mehr Transparenz bei der Umsetzung von Änderungen herrscht.

Verwalten Sie jeden Kippschalter auf eine bestimmte Weise

Da es viele verschiedene Arten von Flags gibt, muss jede auf ihre eigene Weise verwaltet werden. Es wäre z.B. falsch, einen Freigabeknopf und einen Kill-Schalter auf die gleiche Weise zu behandeln und zu implementieren.

Häufige Reinigung der Flags beibehalten

Achten Sie darauf, dass Sie nicht mehr benötigte Flags regelmäßig aus Ihrem System entfernen, z.B. Flags, die nur vorübergehend eine Funktion erfüllen sollen.

Fazit

Feature Flags sind ein effektives Werkzeug im Continuous-Delivery-Toolkit und lassen sich auf vielfältige Weise einsetzen. Grundsätzlich ermöglichen Feature Flags es Teams, mehr Kontrolle über ihren Code, die Bereitstellung und das Nutzungserlebnis der User zu gewinnen.

Weitere Begriffe aus dem Glossary

Kampagnenplanung

Mit der Kampagnenplanung können Sie planen, wann Ihre Kampagnen beginnen und enden sollen, um sicherzustellen, dass sie Ihre Zielgruppe zu den optimalen Zeiten erreichen. Sie können Start- und Pausendaten und -zeiten festlegen und Ihre Kampagnen sogar nach einem bestimmten Zeitplan wiederholen. Die Planung Ihrer Kampagnen hilft Ihnen, Konflikte zu vermeiden, Ihre Daten zu optimieren und die Wirkung Ihrer Kampagnen auf Ihr Zielpublikum zu maximieren.

Mehr lesen

Kanonische URL

Eine kanonische URL ist die bevorzugte Version oder der beste Vertreter einer Webseite in einer Gruppe von doppelten Seiten.

Mehr lesen

Markenbindung

Markenbindung ist der Prozess des Aufbaus und der Aufrechterhaltung der Bindung eines Kunden an eine Marke

Mehr lesen

Verhaltenswissenschaft

Die Verhaltenswissenschaft ist die Untersuchung des menschlichen Verhaltens durch systematische Experimente und Beobachtungen.

Mehr lesen