Introduction
Software development is driven by iterations. Product managers sift through feedback and define business requirements. Developers and designers deploy updates that satisfy users’ needs. Data scientists observe user behaviors and collect feedback, kicking off the cycle once more. This is how an idea becomes software that people use.
Of course, when you're involved in the software development process, things never feel so simple. Even the most well-tested code can’t account for every real-world situation. More often than not, bugs in production create surprising issues. Monitoring can certainly report on whether a feature has unexpected consequences, but solving these errors requires deployment rollbacks and timing hotfixes.
Even outside of quality assurance, there are many reasons why a deployment might stall. For example, teams could have trouble deciding the best approach for building a new feature. A user experience study can help guide them towards building solutions people want, but these studies can often take too long to set up and assess.
In these cases (and many others), using feature flags is a powerful strategy for quickly surfacing what works—and what doesn’t.
In this guide, we'll introduce you to the concept of feature flags, why teams are using them, best practices, and some things not to do with them.