Jonathan Bennett

How to safely deliver daily

If you’re delivering work daily, many of your incremental improvements won’t be ready for public consumption right away. So, how do you release frequently while keeping unfinished work hidden? The answer lies in the magic of Feature Flags.

Feature flags allow you to control which features are visible and when. There are many ways to implement them, but I like Flipper for Rails projects. Most feature flag systems work by providing a toggle, which lets you switch between different versions of code. For instance, you could use it to display version 1 or 2 of a screen based on the flag’s state, without needing to change code.

Typically, you’ll start with a global toggle, enabling or disabling features for all users. But more advanced systems allow you to toggle for specific users, groups, or even do incremental rollouts—releasing a feature to just 1% of users and increasing that number as things prove stable.

With feature flags, you can control the deployment of custom features without disrupting your users.

Come back tomorrow to learn about the final challenge to overcome in building a high-performance development process!