In the race to modernize federal applications for the digital era, agencies increasingly are turning to the continuous integration, continuous delivery model for software development.
In the agile CI/CD approach, a distinction within the CD side of the equation can help an agency reduce risk and issue new functionality more frequently. That distinction is between deployment and release.
That’s where feature management can help. When release and deployment are treated as the same motion, it can introduce risks into the production environment, said Phoebe Nerdahl, senior director for U.S. public sector at LaunchDarkly. Feature management separates deployment from release, allowing development teams and process or business owners to take actions between those two steps to reduce risk.
For example, an agency can release a module or feature to a limited subset of users before rolling it out to all users, she said.
By releasing new functionality to a limited audience, an organization can gain a detailed analysis of usability, security and user acceptance — before deciding whether to pull back for redevelopment or move ahead with full release, Nerdahl said during an interview for Federal Monthly Insights – Feature Management: Cyber Perspective.
“Testing while in production is essentially a dark launch and the most secure type of testing,” she explained. “When you turn features on, you’re able to do so from a secure standpoint without fear of anything breaking or causing issues with your code base or your application.”
Modernize and manage with feature management
Feature management lies in the continuous delivery part of the development, security and operations (DevSecOps) cycle. “We enable teams to continually update the application, have more releases frequently in a secure manner, without having to wait for either a two-week release period or two weeks of sprints,” Nerdahl said.
Should a feature, once deployed, cause problems, the risk can be mitigated.
“You could essentially turn off a problematic feature with the push of the button —toggle it off is how we’d say it internally,” she said. “It’s called a kill switch. ”
That type of application development and management can be particularly helpful in modernizing large-scale applications typical in federal agencies where enterprise apps might serve millions of users, she added.
Nerdahl gave as an example migrating a large database application from on premise to a commercial cloud. An agency could make new features available to a small percentage of users initially, with larger blocks added as developers and program managers ensure the app and its code are fully functional and secure.
In the case of the Centers for Medicare and Medicaid Services, feature management lets the agency quickly turn off features after enrollment periods. The Interior Department’s Recreation.gov site similarly uses feature management to pivot seasonal applications on and off, she added.
The on-off switches depend on a Boolean statement around a feature’s code block. The statement connects to the LaunchDarkly application with a software development kit available for roughly 50 software languages, Nerdahl said. That function is what the company calls a feature flag.
Gaining speed through synchronous processes
Teams can use flagged features to compress development time. Each flag connects coders with quality assurance and business owners, Nerdahl said. That way, the limited release, quality assurance and basic utility of a feature occur simultaneously and not serially.
“You’re basically enabling that continuous delivery piece, without it being a waterfall approval approach,” she said. Plus, feature management gives an agency a way to deploy two or more versions of a given feature simultaneously to perform A-B usability and acceptance testing.
“Say you want to apply usability testing to see if a feature resonates more if the text is yellow versus if the text is green,” she said. A-B testing extends to mobile versions of applications when agencies deploy them to improve customer experience too.
“Feature management creates that high level viewpoint for leadership, as well as giving the analytics to the dev team,” Nerdahl said.