some users - internal accounts and a ‘beta group’ • Deployment of code and releasing to customers are often combined • We wanted to be able to deploy and release separately, and give control of the latter to product owners Tuesday, 10 July 12
the same time • Timeboxed releases, every 6 weeks - scope is the variable • Disable features with a single patch Very dumbed-down version! Source: https://docs.google.com/present/view?id=dg63dpc6_4d7vkk6ch Google famous for rolling out new features quietly to test them Tuesday, 10 July 12
testing: We’re not optimising something that already exists - we’re revolutionising it • Not a permissions system: The aim of gradual feature rollout is that it will eventually go to all users - different from permissions system Tuesday, 10 July 12
conducted on the phone, in person and via email • Use of analytics - e.g. flag which version of a form that a given model was created with and compare data quality Tuesday, 10 July 12
form • Validating our assumptions • Correcting mistakes early on Wanted to make the form easier and also improve the quality of data to reduce errors when syndicating the data to our partner network Tuesday, 10 July 12
migrations (not schema changes) gradually as well, by checking if features are enabled • This makes it easy to roll forward and back, and avoids conditional logic in the migrator around who to migrate Tuesday, 10 July 12
both a sales and support tools - our closest customers are given early access to new features and can see progress in the product more quickly • Enabling and supporting product evangelists Tuesday, 10 July 12
graduates, we remove all code written to support dual-running • Minimal conditional logic and decorators makes this easy • Start by removing the routes • ... and removing code is always a pleasure! Tuesday, 10 July 12
side, and this is our focus for the next few months • Redis cloud hosting seemingly not as resilient as other databases (eg RDS) - rollout makes redis core to our application Tuesday, 10 July 12