Feature Flag workflow with Split.IO and Azure DevOps

Chris House
3 min readApr 8, 2022

--

Feature flags (also known as feature toggles or feature switches) are a software development technique that turns certain functionality on and off during runtime, without deploying new code. This allows for better control and more experimentation over the full lifecycle of features.

I personally think feature flags are technical debt and should be cleaned as fast as possible. As a codebase grows, and more features get added, the more technical debt will accrue on the codebase.

Split.io has an integration with Azure DevOps that can help make this cleanup process a little easier.

The below image you will see the workflow of creating a work item and linking it to a feature flag. With the integration, we are able to automatically create targeting rules per environment and default the flag on or off!

They have made it very easy to create flags and link them to work items, but how do I get the flag out of my code base and then have it visible that it is delete from both Split.IO and our codebase?

In our teams process, for every split we create, we also create a clean-up product backlog item, and stick it in the following sprint.

Once our work item reaches production (or whichever environment /blast radius), we would like to remove it from our code, and then delete it the feature flag permanently.

Every two weeks we deploy new code to different environments and production. With the rollout board in split, we can keep track of which items are in production and move them to the 100% released status in split.

Once the cleanup product backlog item has been worked and pushed to production we will see on the rollout board in the 100% released column that a particular split is no longer receiving traffic. This is denoted by the yellow icon for Prod above. At this point, we would click in the feature flag and check that the two linked work items are in the done status, and then proceed with deleting the feature flag from Split.IO.

--

--