- Use Feature Management to develop and iterate on a product or feature
In Optimizely’s Feature Management, a feature is an Optimizely concept that represents a major part of your product that you want to test and roll out. Features are the building blocks of Feature Management: the things you develop that you will use Optimizely to release and iterate on with experimentation.
A/B tests help you answer specific questions about smaller changes to your website and have a clear beginning and end. Features are major parts of your product that you want to test and roll out to your visitors. The process of developing a feature is not as straightforward as an A/B test. With a feature, you might start with a bare-bones prototype, then run experiments to collect data, update your prototype based on what you learn, and repeat the process to refine your feature.
An example of a feature is a contact form. After you create the form, you might use Feature Management to run tests to determine whether different layouts or numbers of questions will increase the chance that visitors will submit the form. When you are satisfied with your contact form, you can use Feature Management to carefully roll it out to a subset of visitors, such as high-value enterprise customers.
Features in Optimizely are reusable, much like audiences and events. You can define and implement a feature once, then use it in multiple experiments, like a series of feature rollouts or feature tests.
Optimizely’s Feature Management addresses many problems and gaps in the product development process:
Develop and deploy your feature in any environment without exposing it to visitors
Turn a feature on or off remotely, at any time and without a deploy
Build and deploy a feature, then gradually roll it out to increasing percentages of traffic over time
Test whether a new feature works better than an existing feature
Iterate on failed features until they meet your criteria for launch
Target a feature to perform QA or whitelist beta visitors
Restrict feature access to users who share a specific characteristic
Specify configurable parameters associated with a feature and run tests on configurations of those parameters without deploying new code
Read on to learn more about the concepts and attributes of Feature Management.
For feature methods and example code, see our developer documentation for Feature Management.
For background details and launch information, read this blog post: Full Stack 2.0: Reduce Risk and Prove Impact When Launching.
A feature toggle determines the state of a feature: ON or OFF.
Set the toggle by defining a feature rollout or a variation in a feature test. To access the feature toggle value, use the
Feature configuration is an optional set of one or more feature variables. Feature configurations make features more powerful by allowing you to make changes and create variations through Optimizely without a deploy.
Feature variables are the entities that comprise a feature configuration. Feature variables can be boolean, string, integer, or double-feature types.
Feature variables have default values, which you can override when defining a variation as part of a feature test.
Feature variables replace live variables, as used by 1.x SDK versions of Optimizely X Mobile.
Experiments and A/B tests
An experiment is an action you take to collect data and make decisions. Previously, Full Stack supported one type of experiment: A/B tests. Feature Management adds two new types of experiments: feature rollouts and feature tests.
An A/B test is an experiment that randomly assigns eligible users to one of N possible hard-coded variations. The variation assigned to a visitor is fixed over the life of an A/B test. Each new A/B test requires a code deploy. Consequently, A/B tests are most often used for making decisions about changes that fall outside of the process of launching and iterating on features.
Feature rollout is the process of exposing a new feature to specific visitors in a controlled fashion. Feature rollouts allow you to specify the percentage of traffic for which a feature is enabled and apply audiences to target groups of visitors based on attributes.
The primary goal of a feature rollout is mitigating risk. For example, if you want to be sure that a new feature doesn’t degrade the visitor experience, you can initially launch the feature to a small percentage of visitors.
Feature rollouts are also used to launch winning variations that you identify through experimentation. For example, if you find a winning variation when running a feature test, feature rollout allows you to gradually expose the winning variation to your visitors in a controlled fashion.
Currently, feature rollouts map 1:1 with a feature. If a feature includes a feature configuration, the corresponding feature variables will always return their default values for visitors who are included in the feature rollout. Feature rollouts will not provide results, and they are not listed on the Experiments dashboard. As Feature Management evolves, feature rollouts will likely become more sophisticated.
A feature test is an A/B test conducted on a feature. Feature tests have all the properties of an A/B test, plus the ability to:
Trigger the test using the feature key
Toggle the feature ON and OFF when defining a variation
Specify feature variable values as part of a feature configuration for a specific variation
You can run multiple feature tests on a feature without deploying new code.