Feature Flagging 101: What Does it Look Like to Code Without Feature Flags?
Madison Maher
7/16/2023
How does a development team operate without feature flags?
Welcome back to DevCycle’s newest blog series: Feature Flagging 101. A couple of days ago, we went back to the basics and took a deep dive into what feature flags really are, what they look like, and what development teams use them for. But before going any further into the benefits of feature flags and how to use them, we thought we’d show you what coding without feature flags looks like. Often, the best way to understand the value of something is to take a look at what life would look like without that thing.
So, let's take a look ⬇️
It’s the start of a new month, and your product team has come up with an exciting new feature for your application.
After a couple of meetings to define the scope of the feature, how much work will be involved, and what it will look like, the product team defines a set of tasks for your development team to work on.
Everyone is on board and knows what is expected of them.
In the best case scenario, each developer starts working on their respective tickets for the feature.
In the worst case scenario, some developers have to wait to work on their tickets because they can not begin their work until another developer has completed their own part of the code.
(In both cases, regardless of how quickly some developers are able to complete their tickets, the release of the feature is based on the longest standing ticket.)
You have your sophisticated branching strategy set up, so that once a developer is done with their part of the code, they can merge it into the feature branch.
From here, intensive regression testing begins. Your tests have to be very thorough since any issues with a feature release can have the potential to impact your entire user base.
When the code has been properly tested, it is moved to the deployment branch.
The feature is then released to your users 🎉 🥳 👍
Since the feature took about a month to release, your dev team has a brief celebratory moment in recognition of the hard work that went into it.
Shortly after celebrating, the daunting post-code release anxiety sets in. Each dev clears their calendars for the evening in the event a bug fix is necessary, and sits around their computers waiting for bug reports to come in.
When support begins to send in bug reports, the development team starts searching for the bug right away. Of course, there’s a lot of code to look through because the feature release had a large change footprint. Your developers search through a month’s worth of coding work to find the issue.
Alas, after 6 hours, they’ve identified the performance issue and are required to do a complete rollback of the feature.
You’ve delegated a team to work on bug fixes for the feature until everything is cleared up. The bug fixes take about a week to complete, so that team can’t get started on their outstanding tickets until next week.
The bug is fixed.
It’s the start of the next month.
Your product team has come up with an exciting new feature for your platform.
After a couple of meetings to define the scope of the feature, how much work will be involved, and what it will look like, the product team defines a set of tasks for your development team to work on.
Everyone is on board and knows what is expected of them.
The cycle repeats.
Sound about right?
Here at DevCycle, we know how the story unfolds. We’re able to tell it so well because we’ve lived in a codebase without feature flags before. We saw the impact feature flags had on our own team firsthand, and we knew they'd have the same impact on other teams. (That's a little sneak peek at how DevCycle came to be. You can read our Origin Story for more!)
Now that we use feature flags daily, we can share the impact they have on a development team and cycle with all of you. Next up in our Feature Flagging 101 Blog Series, we’re going to tell you what coding with feature flags looks like to address each of the bottlenecks we’ve laid out here today. Stay tuned!
Written By
Madison Maher