Feature toggle and testing in production

home | photography | software engineering | talks | About


The fast continuous integration and deployment cycles adopted by the majority of the software organizations mean greater code churn - new features are being released everyday and old features are being deprecated. For a large software development team, such churn makes it difficult for engineers to keep track of all ongoing changes and dependencies. This in turn increases the possibility of making human errors, introduces bugs, and degrades user experience.

A ring-based testing and deployment approach would help an organization navigate this high risk since we are able to test the software in an environment release or pre-production that has the same dependencies, infrastructures, and code as the production environment. One remaining problem that we need to tackle in this scenario is that for a most large organizations and software engineering teams, it is practically impossible to have the release environment to be an exact replica of the production environment.

What we need is to a mechanism to test or experiment with new features in the production environment (that includes all bells and whistles). We can also segment all of our users into cohorts internal team members, preview customers, customers in a specific geographic location, etc., run A/B tests, and or release the feature gradually to them.

The following libraries provide feature flighting functionalities: