feature flag notes

Benji suggests these feature flag rules

  • Check negative featureflags, not positive feature: in other words the new behavior should be in the main path so you can simply rip out the old path when you are ready.
    • Rick mentions that this will not work out sometimes.
    • Resolution: we prefer this, but it doesn’t always make sense.
    • Benji: if you have a flag check that includes another condition, don’t do it.  Benji can lint this!
  • Check feature flags as few times as possible
    • Lint this?  Rick mentions that this might be unpleasant in some cases. We do not pursue.

We also liked the effect of old soon-to-be-deletable class subclassing new class, the way charmworld does in; and we liked copying the old tests so we can delete them.  Duplication is OK for tests that will go away.