Implementing Continuous Delivery in the Federal Government
Nine years ago, I started on a project that was going to prove that agile processes could work within the US Department of Defense (DoD). Our goal was to introduce agile development processes, like unit testing and continuous integration, into a tool that promoted agile practices for other DoD projects.
We started by making incremental changes to things within our control. We used open source software whenever we could so that procurement time wasn't a problem. We made changes in our development and testing environments that we maintained outside of the government's data centers.
We were also usually quiet about the changes we were making, only broadcasting them once we had a successful experience. We didn't want to worry anyone with reports of things that didn't work. Moreover, as pioneering programmer Grace Hopper said, it’s easier to ask forgiveness than it is to get permission.
After a good mix of successes and failures, we decided we could do more than we originally intended. Our project manager stumbled across the outstanding book Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation, by Jez Humble and David Farley, and within a week we had all read it. It was the logical extension of everything we had been working on so far, and seeing the ideas in print reinforced that they were all within reach.
That led us into automated deploys and a continuous delivery pipeline, as well as plenty more lessons learned.
Even though we ultimately claimed victory, the culture of some of the teams around us was a challenge. They never saw the vision we had, and we didn't realize that the path forward and its benefits weren't clear to them. Only in retrospect did we understand that our cultures were drifting apart rather than coalescing.
Our experiences and successes on the DoD project led to my joining another government project this year, this one for the Department of Homeland Security (DHS). I am older, wiser, and more experienced, and this project is just bringing a continuous delivery pipeline to already agile teams. What could be easier? After all, the cultures should match up, right?
Yes and no. The teams we work with are effectively agile islands in a sea of well-established, old-school government command-and-control bureaucracy. Some of the other teams are interested in being more agile; some of them are not. Existing processes are not changing quickly enough to keep up with our transformation. We too often hear variants of "But this is the way we've always done it."
Still, we are making progress, slowly but surely. Even when our pace seems maddeningly slow, stakeholders are excited about the improvements. The biggest obstacle is still mismatched culture. We want to move fast, but other teams aren't comfortable with rapid change. However, I'm confident that the DHS will be more agile than before, even if it takes us awhile to get there.
Gene Gotimer is presenting Experiences Bringing Continuous Delivery to the DoD and DHS at Agile + DevOps East 2018, November 4–9 in Orlando, Florida.