Feature Flags: How to Decouple Code from Features

Learn how to effectively separate your deployments from the features being delivered

Nassos Michas
The Startup

--

Version Control Systems (VCS) are nowadays the foundation of our software development practice. Teams of multiple people, often separated by thousands of miles, work in parallel on the same source code while everybody’s changes get eventually merged into the same source code repository. This type of workflow works well and with the appropriate rules and housekeeping in place can assist your team to deliver complex, feature-rich products at scale.

But what happens when you need to develop different versions of the same feature to perform an a/b test? Or when a feature is not ready for mass-consumption, yet you still want to roll it out in prod for a selected audience only? Your VCS will, indeed, help you to properly merge all your features into a working release, however, to enable/disable features at runtime you need some extra help.

Let’s see how using Feature Flags allows us to modify the behaviour of our applications in runtime.

Who’s using Feature Flags

Feature Flags are in use by many of the large, public-facing services and products we all use every day. Microsoft¹, Facebook², Netflix³, Flickr⁴, Instagram⁵, Reddit⁶, just to name a few, all use FF daily in their products and services. Feature Flags allow these companies to try out new features or alternative…

--

--

Nassos Michas
The Startup

Software engineer | Cert. Scrum master | Cert. Professional for Requirements Engineering | CTO at European Dynamics