25 August 2014
A few months ago, we hadn’t yet developed the discipline of consistently toggling features in development. However, with practice, we’ve made toggles an integral part of our development process. Now every feature we build has a runtime toggle, meaning no code change or deployment is required and the toggle is instant, just like a real time light switch.
While toggling every feature requires a bit more dev work, especially when the feature touches many parts of the application, the benefits are well worth the effort. With runtime toggles, we have the ability to:
The ability to toggle on a feature for a single site is what I’d like to share more about as it has significantly enhanced our ability to get feedback on new features. Now, with a simple “toggle: true” statement, we can toggle on a single feature that’s still in dev and share it with a customer for feedback.
That the toggle is so feature specific, we can target testing on a single feature and not other functionality that may go out with a deploy. This allows our testing sessions to be laser focused, not to mention super short, giving us the quick feedback and validation we need to push forward and, ultimately, to production.
(While we understand the importance of seeing features in context of the product as a whole, getting feedback on small iterative improvements helps us move toward the design and product vision we validate on an ongoing basis with our team and customers.)
To make sure people know what they’re turning on for a site, we’ve called out a “Danger Zone” to alert people of the potential impact of this change:
A simple, but powerful visual cue to help make sure we know what the heck we’re doing :)
We felt the benefits of this practice so thought we’d share them here. Please let us know what you think and share wins you’ve made in your own practice.