Deploying large-scale refactorings
Let’s talk about some ways of deploying code that can help you catch any issues that slip through before they become major problems.
Using feature flags
Feature flags are configuration settings that control whether features are active.
When you push out new code that includes a new capability, that code doesn’t have to be immediately available. You can deploy as usual with the new feature area disabled in the configuration.
Once you’re confident the rest of the software is working as intended, you can enable the new feature. If the feature winds up having issues, you can quickly disable it by flipping the feature flag back to its inactive state.
While feature flags are helpful when you’re releasing actual features, you can also use them with major refactoring efforts. For example, a feature flag might govern whether the system uses LegacyBookingSystem
or RevisedBookingSystem
.
Tip
Feature flag libraries...