Feature Toggle
# Feature Toggle

Feature Toggle (von engl. feature = Eigenschaft, Fähigkeit, Funktion; Toggle = Schalter) oder Feature Flag ist eine Programmiertechnik in der Softwareentwicklung, bei der ein Feature oder eine Funktionalität zur Laufzeit der Software an- oder ausgeschaltet werden kann.

Martin Fowler unterscheidet zwischen:

* release toggles – im Kontext des Continuous Delivery werden unfertige Features per Toggle ausgeschaltet, und erst wenn das Feature fertig ist, aktiviert. Der Quellcode wird allerdings schon früher in den Master-Branch übernommen und in die verschiedenen Stages deployed.
* experiment toggles – der Klassiker, zum Beispiel für A/B-Tests
* ops toggles – damit sind Schalter unter betrieblichen Aspekten gemeint. Wenn z. B. neue Features ausgerollt werden, und das Performanceverhalten der Anwendung noch unklar ist, kann das Feature einfach ausgeschaltet werden, falls Probleme im Betrieb auftreten. Soweit alles stabil läuft, werden die Schalter entfernt.
* permission toggles – gewisse Feature werden nur Premium- bzw. zahlenden Kunden bereitgestellt, oder Benutzern mit erweiterten Rechten.

Weiterhin unterscheidet Fowler zwischen statischen und dynamischen Toggles, sowie zwischen kurzlebigen (transient) und langlebigen (long-lived) Toggles, was beides maßgeblich ist, wie und wo im Quellcode ein Toggle letztendlich implementiert ist.

Die Verwendung von Feature Toggles ist in vielen gängigen Programmiersprachen möglich, wie C# oder Java. Für manche gibt es auch Bibliotheken, die es besonders unterstützen.

Feature Toggles werden zum Beispiel bei der Programmierung erfolgreicher Websites und Applikationen verwendet, die mit vielen Entwicklungsteams arbeiten. Ein Beispiel ist Spotify.

