Feature flags vs branches

When everybody in software development wants to be agile, it is natural that you will frequently have many new features and improvements ready to be tested and deployed to production. To deal with this, it is common to utilise both feature branching and feature flags. This post goes into what they are, why they are useful and why they can be greate compliments to each other.

Feature branches

The idea of branches originates from version control systems in which a new version of the code resides in a different branch. It is common to put a new feature or change in a different branch before this is merged into branch designated for production. While in a different branch, other developers can review the code and test it to ensure that it is appropriate to go to production. The feature branch can also be used for testing a new change by designated QA testers or other stakeholders.

Feature flags

Feature flags is an approach to deploying new changes to the live version of the application without affecting all users. The feature flag is a setting to turn on or off the visibility of the change or feature.

One of the problems feature flags solves is that slow processes affecting the verification that a feature branch is ready to go to production results in long lived feature branches that start to diverge from the rest of the code base. In this cases, it can be helpful to be able to push the change to production where the change can more easily be tested. However, this may not be feasible if the change require significant changes that would not be compatible the rest of the applications implementation.

Get all latest news and articles

Receive emails with tips for improving your software development processes and news about updates in Valist.