OPS03-BP05 Experimentation is encouraged
Experimentation is a catalyst for turning new ideas into products and features. It accelerates learning and keeps team members interested and engaged. Team members are encouraged to experiment often to drive innovation. Even when an undesired result occurs, there is value in knowing what not to do. Team members are not punished for successful experiments with undesired results.
Desired outcome:
-
Your organization encourages experimentation to foster innovation.
-
Experiments are used as an opportunity to learn.
Common anti-patterns:
-
You want to run an A/B test but there is no mechanism to run the experiment. You deploy a UI change without the ability to test it. It results in a negative customer experience.
-
Your company only has a stage and production environment. There is no sandbox environment to experiment with new features or products so you must experiment within the production environment.
Benefits of establishing this best practice:
-
Experimentation drives innovation.
-
You can react faster to feedback from users through experimentation.
-
Your organization develops a culture of learning.
Level of risk exposed if this best practice is not established: Medium
Implementation guidance
Experiments should be run in a safe manner. Leverage multiple environments to experiment without jeopardizing production resources. Use A/B testing and feature flags to test experiments. Provide team members the ability to conduct experiments in a sandbox environment.
Customer example
AnyCompany Retail encourages experimentation. Team members can use 20% of their work week to experiment or learn new technologies. They have a sandbox environment where they can innovate. A/B testing is used for new features to validate them with real user feedback.
Implementation steps
-
Work with leadership across your organization to support experimentation. Team members should be encouraged to conduct experiments in a safe manner.
-
Provide your team members with an environment where they can safely experiment. They must have access to an environment that is like production.
-
You can use a separate AWS account to create a sandbox environment for experimentation. AWS Control Tower can be used to provision these accounts.
-
-
Use feature flags and A/B testing to experiment safely and gather user feedback.
-
AWS AppConfig Feature Flags provides the ability to create feature flags.
-
Amazon CloudWatch Evidently can be used to run A/B tests over a limited deployment.
-
You can use AWS Lambda versions to deploy a new version of a function for beta testing.
-
Level of effort for the implementation plan: High. Providing team members with an environment to experiment in and a safe way to conduct experiments can require significant investment. You may also need to modify application code to use feature flags or support A/B testing.
Resources
Related best practices:
-
OPS11-BP02 Perform post-incident analysis - Learning from incidents is an important driver for innovation along with experimentation.
-
OPS11-BP03 Implement feedback loops - Feedback loops are an important part of experimentation.
Related documents:
Related videos:
-
AWS On Air San Fran Summit 2022 ft. AWS AppConfig Feature Flags integration with Jira
-
AWS re:Invent 2022 - A deployment is not a release: Control your launches w/feature flags (BOA305-R)
-
Programmatically Create an AWS account with AWS Control Tower
-
Set Up a Multi-Account AWS Environment that Uses Best Practices for AWS Organizations
Related examples:
Related services: