Author: Yurii Ishchenko, Product Manager at Ciklum. Yurii has over 20 years of experience in Retail, E-commerce and Enterprise Applications product development. Passed a career path from a software developer to an IT manager in a large Ukrainian Retail and E-commerce company. At Ciklum, Yurіi manages the Accelerator Program that includes various E-commerce and DevOps accelerators, as well as Ciklum Toggler and Admin Dashboard products.
Most of the interaction between the client and the business now is done through digital products, the demand for the quality of applications increases accordingly. The competitive business environment forces organisations to follow the client needs, which leads to an increase in the number of features that organisations need to create in the shortest possible amount of time.
Developing a large number of features in a short time, safely deploying them into production and tracking features metrics are not easy tasks. Failure or error at any of these stages can lead to downtime of digital products for clients. Fortunately, modern technologies like DevOps and feature flags help to tackle these risks.
Feature flag definition
Feature flags (also known as “feature toggles”) is a technology that allows you to control application functionality on the fly in runtime, turning features on and off without the necessity to change and redeploy the application code.
The ability to change application functionality on the fly is of great practical importance. This is particularly true when errors are detected in the code of critical features, which can lead to dramatic consequences in the form of economic or reputation losses, or an increased churn rate. This is where feature flag technology along with the feature flag management system come to the rescue.
Another important aspect of feature flag technology is that it allows you to speed up the development pace, as it moves away from the practice of bringing features to clients as part of releases, to a model where features are constantly released as they are ready. With the help of feature flag technology, features are better isolated from each other and this can significantly accelerate team performance. It is possible to deliver features one by one, test them on users, get user feedback, and then, after the features are switched on, make sure that the application release functions as it should. This approach makes delivery risks significantly lower, which positively affects product metrics and user loyalty.
For many businesses, time-based factors, such as seasonality, national and international holidays, marketing campaigns are some of the key factors that influence revenue generation. Marketing activity is determined by the time frame during which it operates. The client should be able to interact with the business in a certain time frame during which the marketing campaign is active. Using feature flag technology, an organisation can perform a timely release of a feature. The feature can be made available to customers and then removed at a predefined time. There is no need for the technical team to turn the feature on and off at specific times — all of this can be done automatically by the feature management system.
Canary releases and rollouts
Feature flags are also indispensable when it comes to minimising the risks of bringing features into production. A technique called “canary release” involves implementing tests of features for a small segment of users. As this segment of users will be the first to see a new feature, the most loyal users are usually selected. Typically, these are company employees, their friends, employees of partner organisations, etc. After these users test the feature and give positive feedback, the user segment is gradually expanded. At this point, the feature becomes available to external users. They can be selected either arbitrarily or segmented according to certain criteria — geography, age, hobbies, etc. — that are available to the business. Based on the results of testing the features and fixing all errors in the code, a decision is made about the need for either the next testing step on a new, wider segment of users or rollout of the feature for all users.
An important benefit of the “canary release” technique is the ability to test hardware and infrastructure for scalability. Very often, the introduction of a new feature leads to a regression of system performance. User segmentation and a gradual rollout of features allow you to measure the degradation of system performance in a small segment of users. You can use the obtained data to assess system load in production. This data can then be used to inform the necessary pre-release preparations — for example, the purchase of more high-performance equipment or managed services.
In my opinion, the most interesting application of feature flag technology is A/B tests and multivariate feature tests, which are also called experiments. Feature flags enable a seamless integration of experiments into the software development cycle.
Multivariate testing of features allows you to conduct experiments, accumulate experimental data and use the data to make the right product decisions.
The objective of the experiments is to establish which of the features has the most positive feedback from users. For this, the development team creates several variations for the feature, which become available to the test audience of users. Each individual user gets access to one of the variations. The user interacts with their variant and the results of this interaction are recorded in the system. Based on an analysis of the accumulated data using statistical analysis tools, the best-performing feature can be determined, and it can then be rolled out for all users of the system. All of these steps can be done on the fly without the need to change and redeploy the code. The feature flag management system can do all of the heavy liftings for you by conducting experiments within the time frame you set, collecting statistics and interpreting the experimental data to determine a winning variation of the feature.
Giants of the IT industry, such as Facebook, Google, Reddit, Flickr, and Netflix use feature flag technology extensively to take advantage of optimised feature releases, rollouts, and experiments.
Ciklum has developed and offers its customers the “Ciklum Toggler” product. This is a feature flag management system that can be used in the development of a digital product by all stakeholders — product manager, technical team, marketing manager, etc. In addition to the product itself, we offer consulting services, implementation and support of our flag feature system, which allows you to experience the maximum impact of this technology on critical real-time systems at scale, without the risk of performance degradation.
If you are interested to learn more about feature toggling or schedule a demo session, just contact us.
Originally published at https://www.ciklum.com on July 30, 2020.