Posted April 26, 2018

Full Stack 2.0: Reduce Risk and Prove Impact When Launching Products

Optimizely X Full Stack 2.0 with Feature Management is now generally available

Jamie Connolly
Jamie Connolly
a green background with white text

  • Optimizely customers can reach out to their Optimizely rep for access or interested businesses can reach out to us
  • Implement feature management to ensure safe launches, gradually roll out new features, and experiment and iterate on the fly with variables
  • Improve product development by unifying experimentation and feature management in Optimizely to minimize risk and prove impact

Launching a new feature is a risky proposition. Even the most well designed and researched features can initially harm an applications’ performance and business metrics. Rolling back a poor performing feature can be time consuming and costly. However, it doesn’t have to be. Teams that implement feature management and experimentation into their development lifecycle can reduce risk and prove impact when launching new features.

Starting today, we’re introducing Optimizely Full Stack 2.0 with Feature Management and version 2.0 of our SDKs, which helps product development teams test, iterate, roll out and customize features with confidence, As part of today’s launch, we’re improving testing across the development cycle by adding support for synchronizing experiments across multiple environments. We’re also making integrations with external analytics sources easier with notification listeners. Finally, we’re helping customers run experiments where specific groups of users need to share a consistent experience by adding support for bucketing IDs, which provide the ability to randomize experience based on an account ID or group ID instead of user ID.

We announced the Feature Management beta at Opticon 2017. Over the past months, we’ve iterated and improved on the product based on feedback from our beta testers.

Feature Management: Shipping New Features With Confidence

At the core of Feature Management are configurable feature flags that can be used to turn on or off access to features and determine which users have access to that feature.

Using rollouts, product development teams can gradually roll out new features to validate the effect on product performance and business metrics. Teams can specify the percentage of users that get access to feature and target that feature to different audiences. Feature rollouts also provide a kill switch to quickly roll back poor performing features. For instance, imagine a team that plans to roll out a new chat assistant to help their customers find products across their website and app, they could limit risk by providing access to only 1% of their user base first. The team can slowly ramp up access while validating the chat assistant’s performance and impact on business metrics.

application

 

Setting up a feature and rollout in Optimizely Feature Management

 

 

Feature Configuration: Updating and Iterating on The Fly

Deploying code every time a team wants to experiment on or update a feature can be time consuming. That’s where feature configuration come in. Feature configuration includes variables that can be parameterized and remotely configured from the Optimizely dashboard without deploying code. By instrumenting variables up front when coding a feature, teams can test many permutations of the feature without having to redeploy or write new code.

In the chat assistant example, a product development team can use variables to run experiments on the assistant. They can add variables to their feature that control how frequently the chat assistant makes suggestions during a customer’s session, the size of the chat window, and whether or not to support live agent takeover. Since variables allow experimentation without code deployment, these experiments can be run by product managers and designers without requiring additional development. This frees up developers to focus on building new features without having to spend time on coding different experiment variations.

 

 

table

Configuring a feature variable in Feature Management

A Complete Platform for Launching and Validating New Features

With Feature Management, Optimizely Full Stack now provides a complete platform for rolling out and experimenting on new and revised features. With feature management and experimentation tightly coupled, product development teams can drive impact while reducing risk. Combining feature management and experimentation provides a single system of record for managing access to customers’ experiences.

A good starting point for using Feature Management is testing the performance and business impact of adding a new feature versus the experience in the app or website without it.

graphical user interface

Testing the impact of a turning a feature on within Optimizely Full Stack

 

 

If the feature has a neutral or positive impact on metrics, then it can be launched to everyone and iterated on with experiments to transform a good feature into a great one. For instance in the chat assistant example above, a team could test whether more frequent suggestions results in more engagement with their chat assistant and whether it ultimately drives purchase.

graphical user interface, application

Testing different frequencies of suggestions for a chat assistant within Optimizely Full Stack

 

Or that team could test the impact of different size chat windows and the impact of enabling live agent takeover. By setting up a feature with variables at launch, these experiments can be run without writing or deploying code which saves time and enables faster iteration.

Environments: Integrate Testing Across The Development Cycle

Full Stack now supports multiple environments within a single project. Most development teams have different environments for development, staging, and production to reduce risk and isolate changes, now Optimizely supports that workflow too. With the latest update, teams can now set up multiple environments that map to their staging, production, and other development environments. This simplifies teams’ development workflow by allowing staging and production experiments to share audiences and metrics, while offering granular control over access to features by environment.

graphical user interface, text, application, chat or text message

Running experiments in different environments

 

Notification Listeners: Integrate Experiment Data With Analytics Tools

We’ve added notification listeners to our Full Stack SDKs to help teams send activation and track events to external data sources such as analytics, BI and application performance monitoring tools. This makes it easy to view Optimizely experimentation and rollout data in any analytics platform. A team could use Optimizely’s Stats Engine reporting to understand the difference in conversion rate between two different feature variations and then look at the retention and lifetime value of those variations as well using their analytics platform.

Bucketing IDs: Ensure Consistent Experiences Within Customer Accounts

We’ve added support for bucketing IDs to Optimizely Full Stack to help support B2B experimentation use cases. Bucketing IDs enable teams to run experiments that randomly bucket users into variations based on a different identifier than user ID such as an account ID. This enables the ability to run experiments that randomize user experiences across accounts while ensuring a consistent experience within an account.

Get Started with Optimizely Full Stack 2.0

  1. Contact your Optimizely representative or reach out if you’re not yet an Optimizely customer about getting access to Optimizely Full Stack 2.0
  2. Read our updated knowledge base article on Optimizely Full Stack