Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Feature Flags & You

Feature Flags & You

Given at BrooklynJS November 2017

Daniel Cousineau

November 16, 2017

More Decks by Daniel Cousineau

Other Decks in Programming


  1. Team 1 Team 2 Merge Feature A Merge Feature B

    Deploy Deploy OMG ROLLBACK DEPLOY!!! Merge Feature C Merge Bugfix for A Deploy Deploy BLOCKED!!! Deploy
  2. Team 1 Team 2 Merge Feature A Merge Feature B

    Deploy Deploy Rollout Flag A Rollout Flag B OMG ROLLBACK FLAG A!!! Merge Feature C Deploy Merge Bugfix for A Deploy Rollout Flag A Rollout Flag C
  3. Feature Package Permission Implementation If/Else Gate If/Else Gate If/Else Gate

    Target Beta Cohort Client Tier Role / Org Chart Owner Prod / Eng Prod / Sales / CS Client
  4. 1.Feature is planned with PROD & ENG 2.ENG creates flag,

    all new code behind flag 3.ENG opens flag to feature devs 4.ENG does code review, merges, deploys 5.ENG opens flag to PROD 6.PROD approves, begins rolling out live 7.PROD confirms 100% successful rollout 8.ENG & PROD schedules sprint for removal 9.ENG removes old code & flag
  5. 1.At least 1 engineer codes with flag OFF 2.All changes

    to existing code behind flag 3.Rigorously QA with both flag ON and OFF 4.Seriously, check that flag OFF still works 5.No regressions! 6.You will make this mistake. 7.Did you make this mistake? 8.Learn from it then do #1 and #3 again
  6. 1.Retrieve flag by name… 2.With current user details… 3.And serve

    variations based on above… 4.Accessible enough your PM can manage it.
  7. 1.Iterating faster is Good™! 2.Optimize for inevitable rollbacks 3.Feature flags

    solve for both 4.I was wrong to hate them for so long