Define processes and tools prototypes/experiments/features
Why
Differentiating between prototypes, experiments and stable features will help
scope our different pieces of work and classify them on the pipeline where they
belong.
Improving our processes and tools will allow us to create prototypes easily,
perform multivariate testing, and stabilize features in a clearer way.
Current situation
Everything is a prototype, at some point we transform it to a beta feature and
after some time we pass it to stable often without sign off. Everything is always
in production or just on local developer's machines. The criteria for moving from
prototype to beta feature to stable aren't clear.
Objectives
- Create and document definitions and development processes for the different types of work (prototype, beta feature, feature)
- Create a process for process for promoting/discarding prototypes and beta features
- Feature flag our different features through our properties. Enable the needed features on production. Enable experimental, incomplete or deprecated features on staging.
- Document and implement how to A/B test in our platform for running experiments.