This story was originally published by FedInsider.
Like the Gordian knot, software is the perennial unsolvable problem for federal agencies. What program manager hasn’t been stymied by software that is late, over-budget or just takes years to get right? Unfortunately, there is no quick stroke of the sword to solve this one.
On the other hand, techniques exist to take some of the art out of software development and make it a more predictable process.
Robert Vietmeyer has spent 17 years at the Defense Department working at unraveling software development. He’s become something of the go-to guy for advice in a process known as agile development. He’s an adherent of Agile Manifesto: “Agile teams value individuals and interactions over processes, working software over comprehensive documentation, collaboration over contract negotiation, and responding to change over following a plan.”
Or, in Vietmeyer’s own words, “It’s a software development practice geared to rapid delivery of tested software and continuous, adaptive delivery.”
On the face of it, that would seem to be the antithesis of everything baked into how the government buys and develops systems. Aren’t detailed requirements, strict contract clauses and rigorous process all part of the federal way? The answer is yes, and that’s the problem.
“We still see major system failures, and four of five are because of waterfall style of management,” Vietmeyer says, referring to the traditional way of developing software. Agile (or interactive) versus waterfall (or sequential) – it’s a debate spanning decades.
Vietmeyer joined DoD – specifically the Defense Information Systems Agency (DISA) – after graduating from Randolph-Macon College with a physics degree. That was when DOD was struggling with the Global Command and Control System (GCCS) and Global Combat Support System (GCSS). Vietmeyer was chief engineer for GCCS.
“We wanted to improve on the next generation of command and control systems,” Vietmeyer said.
While at DISA, Vietmeyer became the project leader on the widely-praised forge.mil. Forge combines two important IT trends – cloud computing and agile development. Forge is a cloud, owned and operated by DISA behind the DoD firewall. But it’s based on a commercial product called TeamForge from Collabnet. Published stories emphasizing Forge.mil as an experiment in cloud computing only told part of the story. It’s also a way for developers on a given project to collaborate so that, when software components are integrated, there’s a better chance the final product will actually work.
“In 2008, when we were defining Forge,” Vietmeyer said, “we were working several joint programs. We needed to bring the developers together, to collaborate and encourage sharing. Otherwise, we were developing separately and trying to integrate later. That prevents fielding software in a way that’s timely and cost-effective.”
Today, some 10,000 software coders – mostly contractor employees – are registered to use Forge.mil. They are working on 540 projects. The cloud provides language-agnostic tools for functions like bug tracking, version control, and release management. The tools let program managers peek into development efforts to track progress. Most important, each project has what is effectively a “facebook” page, through which developers can notify one another of changes that might affect related modules or if someone discovers a problem.
Coders check-in completed chunks of code about 600 times a week, Vietmeyer said.
Within Forge.mil you’ll find a United Nations of programming languages and project types, Vietmeyer said. People are working in C, C++, Java, assembly, .net, Perl, Python, Ruby and others. They are developing web applications, command and control components, embedded systems, and intelligence systems.
Although agile development has a long way to go before it is firmly established throughout the government, Vietmeyer said he thinks it is starting to catch on, in part because of Forge.mil and in part because seemingly everyone is fed up with the delays and cost overruns that bedevil so many federal projects. He said there will always be some projects that won’t need agile, if the team is given detailed and unchanging requirements. But most projects, Vietmeyer and other agile proponents think, can benefit from agile.
Forge.mil remained at DISA, but Vietmeyer has moved on to the DOD CIO’s office, where he’s titled lead for cloud computing and agile development. It’s part of the Enterprise Services and Integration Directorate.
On the cloud side, “we’re trying to drive adoption in DOD.” The CollabNet product used in Forge.mil is available as a hosted, software-as-a-service, but DISA purchased the product so the agency could host it securely. That’s not the only cloud model Vietmeyer envisions for DOD.
“We’re working with industry to see how to securely extend DoD’s environment into industry.” He is developing a request for information, seeking ideas on how DoD security configurations and continuous monitoring, as extensions to the FedRAMP process, could be adopted by commercial clouds. Those providers would let DoD see what’s going on, but manage their own facilities.
“There’s a lot of activity underway in industry to build private clouds for DISA,” Vietmeyer said.
Vietmeyer doesn’t spend every waking moment thinking about software development. With three young children, the rest of his time is devoted to their sports events. “Soccer, basketball and swimming take up all of my free time,” he quipped.