Feature Flags are the solution

Avanish Rayankula
2 min readOct 10, 2021

One of the core tentets of the company I work for is that “Software should work”. This is obvious for any piece of development that’s done, but due to the critical nature of the work impacting patient care, it’s extremely important that any development made available to our customers rates high on serveral quality metrics.

The struggle

A big struggle at our company was related to how we managed code related to large projects. Projects were often broken down into smaller chunks, however to ensure that there were no unexpected side-effects, the merge for these projects would be held off for long durations, creating difficult to resolve merge conflicts when we were indeed ready to merge the changes into released code.

How we are resolving it?

The idea now is to make sure that projects are broken down into smaller features, similar to what we are already used to, but instead of holding off the merge, the partial functionality would be hidden behind a feature flag and merged into production code.

A feature flag in this case is a setting that out organization can control to ensure that a beta feature that our team has been working on had no iopact whatsoever in customer environments.

Benefits

  • The obvious benefit is that developers are much more happier as they don’t have to think about unmerged code for months altogether, and can focus on one thing at a time.
  • Teams also stay motivated because they see progress being made
  • At any given point of time we are only focussing a much smaller set of decisions.
  • If something goes horribly wrong, it’s very easy to turn off the feature in any environment.
  • For large projects which radically change how our users use the system, we are also able to leverage the feature flag settings to pilot those changes at a smaller number of sites before rolling it out to a wider audience.

--

--

Avanish Rayankula

Software developer, been working on iOS Apps for the last couple of years