Ursprünglich auf Französisch verfasst. Von KI übersetzt — der Sinn wurde bewahrt, nicht der Stil.
Kurzdefinition
Benannter Schalter, der im Code steht und außerhalb davon eingestellt wird und dessen Zustand entscheidet, welches von mehreren möglichen Verhalten für eine bestimmte Umgebung oder einen bestimmten Kunden ausgeführt wird.
Ausführliche Definition
Der Begriff stammt aus der Praxis der kontinuierlichen Auslieferung, wo er das Mittel bezeichnet, den Go-live eines Codes von der Aktivierung der Funktion zu trennen, die er enthält. Der technische Sprachgebrauch unterscheidet dort mehrere Familien, je nach Lebensdauer des Schalters und danach, wer ihn bedient: das Release-Flag, das entfernt wird, sobald die Funktion für alle freigeschaltet ist; das Betriebs-Flag, das bei einem Vorfall umgelegt wird; das Experiment-Flag, das einer Messung dient; das Zugangs-Flag, das eine Funktion für ein Kundenkonto öffnet und für ein anderes nicht.
In den Artikeln dieses Blogs wird das Wort für das verwendet, was es mit einer Produktfrage macht, nicht für seine Auslieferungsmechanik. Ein Repository, das ein Flag enthält, enthält nicht ein Verhalten, sondern zwei, und sagt nicht, welches gilt. Der Begriff bezeichnet hier also die genaue Stelle, an der das Lesen des Codes nicht mehr genügt und der Zustand einer Umgebung nötig wird, um zu antworten.
Bei der Lebensdauer weicht die Praxis von der Norm ab: Die ursprüngliche Definition betrachtet das Flag als vorübergehend, und viele Repositorys enthalten Flags, die achtzehn Monate alt sind und bestimmen, wie mehrere Kundenkonten das Produkt sehen. Das Wort wird hier für beide Fälle verwendet; der Zustand des Flags zählt mehr als sein Alter.
Gebrauch im Feld
Kommt in Überlegungen vor, den Code als Quelle der Produktwahrheit zu befragen: Es gehört zu den Elementen, die eine Antwort nennen können muss, und es ist der häufigste Grund, warum diese Antwort bedingt bleiben muss. Es kommt auch in Diskussionen darüber vor, was der Support oder der Vertrieb einem bestimmten Kunden gegenüber behaupten kann.
Synonyme und Varianten
„Feature Toggle“, „Flag“, „Toggle“, „Funktionsschalter“. Die hier gebräuchliche Wendung „je nach Zustand des Flags“ zeigt an, dass eine Antwort bedingt ist.
Nicht zu verwechseln mit
- Quelle der Wahrheit — Quelle der Wahrheit — Artefakt, das als maßgeblich bestimmt ist, wenn sich mehrere Darstellungen widersprechen. Das Feature Flag ist das, was dazu zwingt, diese Quelle um ein zweites Element zu ergänzen: den Zustand der ausgerollten Umgebung.
- Feature-Branch — getrennter Entwicklungszweig, in dem unfertiger Code bis zum Merge außerhalb des Hauptzweigs lebt. Das Flag wirkt auf bereits gemergten Code: Zurückgehalten wird nicht die Integration, sondern die Ausführung.
- A/B-Test — Messverfahren, das zwei Varianten zwei Gruppen zeigt, um anhand einer Kennzahl zu entscheiden. Er wird oft über ein Flag umgesetzt; sein Gegenstand ist der Vergleich, nicht die Bereitstellung.
- Zugriffsrecht — Regel, die festlegt, was ein Nutzerprofil im Produkt tun darf. Sie gehört zur Domäne und liest sich im Code auch so; das Flag ist eine Auslieferungseinstellung, außerhalb des fachlichen Vokabulars.
- Konfigurationsoption — Einstellung, die dem Kunden angeboten wird, zum Angebot gehört und dokumentiert wird. Das Flag ist für den Kunden grundsätzlich unsichtbar und dazu bestimmt, wieder zu verschwinden.
Beispiele
„Der Code zeigt zwei mögliche Verhaltensweisen, je nach Zustand des Feature Flags.“
„Hat die KI keinen Zugriff auf diesen Zustand, muss sie bedingt antworten: Ist das Flag aktiv, gilt dieses Verhalten; ist es das nicht, ein anderes.“
In der Liste der Elemente, die einer Produktantwort als Beleg dienen können, steht es neben der Funktion, der Ausnahme, dem Test, dem Commit und dem Merge Request.
Mehrdeutigkeiten / Debatten
Zwei Sprachgebräuche bestehen nebeneinander, ohne dass sich einer durchgesetzt hätte. Der erste behält das Wort vorübergehenden Schaltern vor und nennt den Rest Konfiguration; der zweite nennt jeden Schalter ein Flag, dessen Zustand über das beobachtete Verhalten entscheidet, unabhängig von seiner Lebensdauer. Hier gilt der zweite.
Der Singular deckt außerdem je nach Team zwei Dinge ab: den Schalter selbst und das System, das die Schalter verwaltet und steuert.