Edith Harbaugh, grundare och CEO av företaget LaunchDarkly, höll ett seminarie om feature flags och vad som kan hända om dessa inte används på rätt sätt. LaunchDarkly säljer en platform för just feature flags men jag tyckte inte att detta speglades i hennes talk. Jag uppfattade det istället som väldigt objektivt.

Feature flags är egentligen ganska enkelt. Det är helt enkelt inställningar som aktiverar eller inaktiverar en viss funktionalitet i koden. Det som är problematiskt är att hantera dessa inställningar över tid.

Vad kan man då använda feature flags till?

  • Kill switch - Stäng av en funktion om det visar sig att den funktionen är trasig. Vissa företag använder detta så fort ny kod kommer in i kodbasen.
  • Controlled rollouts - Låt en viss procent av användarna få tillgång till den nya koden och öka denna procent över tid för att se hur det påverkar t ex prestanda och antalet fel som inträffar.
  • Early access/blocks - Låt vissa utvalda användare få tillgång till ny funktionalitet tidigt eller låt vissa användare slippa få ny funktionalitet.

Vad kan gå fel?

Edith nämde ett företag som haft en feature flag med ett namn som inte sa något om vad den gjorde. Av misstag råkade en anställd aktivera denna flagga i produktion vilket gjorde att företaget förlorade ett par miljoner dollar över en timmes tid. 

 Hur gör man rätt? 

Flag carefully - Var restriktiv med vad som blir en feature  flag. Alla feature flags ökar komplexiteten. 

Lock down access - Se  till att inte vem som helst kan ändra en feature flag. 

Remove old flags - När en flagga inte längre är relevant, ta bort den. Att låta dem ligga kvar leder till ökad teknisk skuld vilket aldrig är bra.   

upload.jpeg

Comment