Feature flagging is de werkwijze waarbij je aan/uit-schakelaars in code gebruikt om te bepalen welke functies welke gebruikers bereiken. In plaats van dat elke wijziging in één keer voor iedereen live gaat, bepalen teams wie wat ziet en wanneer, met de mogelijkheid om het in een tel terug te draaien.

Stel je voor dat je een nieuwe vleugel van een winkel opent. In plaats van op dag één alle deuren te ontgrendelen, laat je eerst een handvol vaste klanten binnen, kijk je hoe ze door de ruimte bewegen, los je het ongemakkelijke op en open je hem daarna voor het publiek. Feature flagging geeft software die gefaseerde opening, zodat een riskante wijziging tien gebruikers ontmoet voordat hij er tienduizend ontmoet. Lopen die eerste tien tegen een muur, dan zijn er maar tien mensen geraakt, en heb je iets goedkoops geleerd in plaats van iets duurs.

Het verandert ook hoe een team een release plant. Een grote functie kun je in stukjes over meerdere weken samenvoegen, elk stukje verborgen achter zijn eigen flag, zonder dat er iets zichtbaar is tot het geheel klaar is. De marketinglancering en de code-deploy zijn niet langer hetzelfde spannende moment. De een kan op een rustige dinsdag, de ander wanneer de campagne staat.

In de kern zit de bescheiden feature flag, maar de werkwijze gaat verder. Het ligt onder technieken als een canary deployment, waarbij een nieuwe versie eerst aan een klein deel van het verkeer wordt getoond. Het scheidt ook vrijgeven van uitrollen, zodat code veilig in productie kan staan tot jij hem aanzet. En mislukt een experiment, dan zet je de flag uit in plaats van een deploy terug te draaien.

Bij TopDevs bouwen we feature flagging vanaf het begin in klantproducten, zodat nieuwe ideeën met echte gebruikers getest kunnen worden en in een tempo worden uitgerold waar iedereen zich prettig bij voelt.