Software Factories Trigger the Need for Flexibility
One area where a system to change systems would be fruitful, Reitzig said, is in agile software factory development. The Air Force stood up the first such program, its Kessel Run DevSecOps office, in 2018. The Department of Defense alone now has about 29 software factories, and the concept is spreading to civilian agencies.
Agencies using software factories can deploy new tools far faster and with less lead time than those that use traditional methods, Reitzig said.
“If software is becoming critical to delivering more capabilities faster, then every time we change software and we have to deploy that software, we’re changing those systems,” he added. “So, if we don’t have an effective system for changing those systems, then we’re already at a disadvantage. Especially if it’s a significantly entrenched legacy culture, that becomes even more difficult.”
In order to get an agile software factory in place, he said, an agency must establish lean practices, a cloud-native infrastructure and automation, each “a massive undertaking in itself.”
Lean agile works to eliminate unnecessary tasks and processes to make the project move faster, a task that often works better in small, flexible startups than in massive businesses and federal agencies. “Agile has been found to be tough to scale to hundreds of thousands of people who are distributed across the world,” he said.
Agencies may need assistance from outside vendors to set up forms of agile that work at scale, such as disciplined agile or the Scaled Agile Framework (SAFe). “These are the only real competent ways to have agile all the way up through an entire organization,” Reitzig said.
Vendors can also assist with establishing cloud-native infrastructure; the hyperscalers such as Google, Amazon and Microsoft, he said, along with container providers such as Open Shift/IBM and SUSE, are valuable partners when working to get a flexible, scalable infrastructure in place.
LEARN MORE: Software factories help the DOD scale DevSecOps.
Automation Increases the Need for a Standardized Change Response
The final piece in an agile environment is automation. “In a DevOps world, we talk about automation as being continuous integration, continuous deployment, CI/CD, but you can’t stop there. If that’s all you’ve automated, then you’ve just created a system for deploying defects to production faster,” Reitzig said.
“Along with CI/CD, we had better have test automation, security automation, code automation,” he added. “And then, once we’re in a production environment, we’ve got all these devices, all this software spitting out thousands of messages every second, and it’s impossible for humans to sift through that.” That can add another layer: AIOps, or artificial intelligence for IT operations.
This is why the system for adding systems is necessary. A model for this already exists in the business world, Reitzig said: franchising, where a standard business model is duplicated and standardized so that it is easier for others to follow. Most chain restaurants are franchises, as are most car rental companies and convenience stores.
“Because we have standardized what we offer and how we provide it, our customers know what they’re going to get when they interface with us,” he said. “We’re making it easy for people to innovate, not making them work on things that are a precursor to innovation.”
To learn more about DAFITC 2023, visit our conference page. You can also follow us on X (formerly Twitter) at @FedTechMagazine to see behind-the-scenes moments.