Check the flags in multiple parts of the system, or duplicate some logic and have two completely self-contained components, one with the new pieces and one untouched.
But how do you deal with multiple feature flags implemented on the same piece of the system?
How do you create discrete components when you have three or more features intersecting on that component?
And presumably there's a proliferation of test cases, too (because you'd need to test that everything works with all combinations of features A,B,C,D implemented)?
How much of this gets cleaned up afterwards? When the feature is fully rolled out, how do you resist the pressure to move on to another feature and leave the flags implemented rather than clean it all up and remove the old code?
marcus_holmes|5 years ago
But how do you deal with multiple feature flags implemented on the same piece of the system?
How do you create discrete components when you have three or more features intersecting on that component?
And presumably there's a proliferation of test cases, too (because you'd need to test that everything works with all combinations of features A,B,C,D implemented)?
How much of this gets cleaned up afterwards? When the feature is fully rolled out, how do you resist the pressure to move on to another feature and leave the flags implemented rather than clean it all up and remove the old code?