Feature Toggles

16 April 2016 - 9:07am -- Pedro Portella
Feature Toggle

Considering you accept the definition of Continuous Delivery (CD), based on one of the three schools of thought: “Continuous Delivery has to do with Agile Software Development.”

Then, you probably also remember one of the Agile Manifest Principals: “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”

And so, assuming that Continuous Delivery is a good way to improve customer satisfaction and keep the momentum going in the digital department, how can we actually make this a reality? Hint: Feature Toggles.

Feature Toggles for Continuous Delivery

Feature Toggle has a lot of pros and cons, but this article will assume we can bypass the problems of for now.

According to Wikipedia, Feature Toggle is “a technique in software development that attempts to provide an alternative to maintaining multiple source-code branches (known as feature branches).

Continuous release and continuous deployment provides developers with rapid feedback about their coding. This requires the integration of their code changes as early as possible. Feature branches introduce a bypass to this process. Feature toggles bring developers back on track, but the execution paths of their features are still 'dead' if a toggle is 'off'. But low effort is required to enable the new execution paths just by setting a toggle to "on".

“The technique allows developers to release a version of a product that has unfinished features. These unfinished features are hidden (toggled), so they do not appear in the user interface. This allows many small incremental versions of software to be delivered without the cost of constant branching and merging.”— Wikipedia

Why Feature Toggle is best to achieve Continuous Delivery?

Now that we've established what Continuous Delivery (CD) and Feature Toggle (FT) is, so why do I think FT is the way to achieve CD? Well, that is quite an easy question to answer.

GoogleNetflixFlickr have being using this approach for a few years, and now the rest of the Digital Industry is starting to picking that up.

My experience with Feature Toggles, at Air New Zealand has been really positive, and I can see it gives peace of mind to release code more frequently — not to mention the ability to run A/B testing, which is a plus!

Therefore, I say: Feature Toggles for Continuous Delivery!