Software testing teams often find themselves sacrificing quality for speed when it comes to getting updates out on time. Over the last couple of weeks, we’ve explored how professionals are using customer testing to scale their resources and manpower within continuous delivery. This week, Centercode CTO Neil White shares his insights on a technique customer testing teams are using to increase the efficiency of their beta testing processes: feature flagging.
Check out LaunchDarkly and Martin Fowler for an in-depth look at feature flagging and its applications across the spectrum of software development.
How Feature Flagging Modernizes Beta Testing
Professionals are finding that traditional beta testing processes and practices can’t accommodate the demands of continuous delivery. Just as dev teams have adopted Agile methodologies to increase their pace and output, customer testing teams need to evolve their beta testing practices to maintain both speed and quality.
That’s where feature flagging (or “feature toggling”) comes in. Feature flagging increases efficiency by giving developers a quick way to control which users have access to a specific feature and when. It gives dev teams the freedom to test the code’s real-world performance by turning it on (or flagging it) for a certain segmentation of users in real-time.
“Agile works like Lego bricks,” said Neil. “You build one small layer at a time. Within that, feature flagging lets you turn off blocks of code so you can iterate on them while they’re in production. When it’s ready, it can go live in a matter of seconds.”
Feature Flagging Use Cases in Customer Validation
Testing in Production
“Customer testing in a production environment gives you real-world use cases for your hardware or software,” said Neil. “Identifying discrepancies in performance between staging and production servers is impossible without testing. With feature flags, you’re collecting data on performance and usage patterns from your target market in that production environment.”
Working in a production server also means dev teams are managing bug fixes to one codebase instead of two. It’s more efficient with time and it’s less prone to errors.
The ability to orchestrate gradual rollouts by simply toggling the code makes it ideal for testing new features within the production server. Feature flagging lets you deploy a new feature to subsets of your users, such as VIPs, users in certain regions, or beta volunteers.
With a large enough tester pool, you can A/B test two different iterations of a feature. This allows you to measure the effectiveness of new features and how its variations are performing.
It’s more than likely that you’re going to run into a major or critical issue during beta testing. Feature flags act as a built-in kill switch that mitigates the risk involved with using new features, protecting your users from show-stopping issues.
“In the world of continuous testing, feature flagging will allow companies to move fast and test updates in near real-time,” Neil stated. “Using permission toggles to add fixes or features as part of their delta testing efforts speeds up release iterations. The big benefit is that their customers can start testing these new versions in real-world environments immediately.”
The big benefit is that their customers can start testing these new versions in real-world environments immediately.
To examine how software development professionals are tackling the demands of continuous delivery in greater detail, check out this infographic.
Software Testing in the Age of Iterative Development [Infographic]