Visit Matillion AI Playground at Snowflake Data Cloud Summit 24

Find out more

What Are Feature Flags?

Feature flags are a software development tool that has the capability to control the visibility of any particular feature. They offer teams the flexibility to manipulate product changes while maintaining continuous and effective delivery of software. The utilization of feature flags is essential in different aspects of the development process for enhanced productivity and seamless operations.

Feature flags can be seen to come in a number of flavors:

  1. Product-controlled release flags are common and are perfect for separating the deployment of code from feature release.
  2. Development-controlled release flags significantly aid continuous integration, reducing the chance of merge conflicts and the need for long-lived feature branches.
  3. Experiment flags provide flexibility, such as allowing canary releasing or A/B testing.
  4. Ops flags that allow changes, such as monitoring configuration, to be applied without impacting the development team.
  5. Permission flags that need frequent checks to enable or disable features dependent on a user’s permissions.

 

Depending on the flavor, these toggles can be accessed and utilized in various ways. They can be checked at compile time or startup, periodically, or at the time of feature use.

Several options are available to implement and manage these feature flags. Lighter-weight solutions are usually kept inside the application as part of the source code. A tool like FlagSmith, LaunchDarkly, or Split may be the preferred strategy in more complex scenarios where rule-based control is required for flag values.

How Matillion Uses Feature Flags

At Matillion, we believe there is always room to innovate, so no product or process is finished. Inspired by Pete Hodgson's article on Feature Flags, we’ve integrated a mixture of Feature Flag flavors into our software development lifecycle. For example, we use development-controlled release toggles as part of our CI/CD processes and permissions toggles for internal feature control. 

One approach we use allows developers and testers to enable and disable which features they see via a GUI. 

New and upcoming features are often released as part of our preview program and tested using experiment toggles.

—- An image from DPC showing an example “Preview” feature 

This allows our users to provide feedback on new features and steer product development. Once we are happy with a feature, the baton is handed over to the Product team to enable the final release flag, allowing them to coordinate all aspects of the public go-live.

Summary

Feature flags and their nuanced deployment offer numerous benefits. From rapid software deployment to controlled testing and experimenting, they're essential tools that every software development team should consider. For effective utilization, it is crucial to evaluate the nature and purpose of each toggle and choose the most suitable implementation option. If you’d like to make your data more productive, why not sign up for the free trialbook a demo, or, if you are already a user, ask us about our preview program to see what we have hidden behind a feature flag.

Dave Chamberlin-Kidd
Dave Chamberlin-Kidd

Software Engineer