The Department of Homeland Security is harnessing the power of a user-friendly interface to restore confidence in its mission.
Human-centered design is key to software development and the way an agency presents itself, said James Punteney, executive director of the U.S. Digital Service team at DHS.
“One user said that because it was so well-built, it restored his faith in the federal agency and the federal government overall,” Punteney said at an FCW virtual event this week. “Creating a better user experience creates better confidence overall in the system.”
Punteney encouraged agencies to break down silos between software developers, security professionals and the end user. Consistent communication and testing will prevent a bad game of “telephone” and result in a less-buggy DevOps process and a better experience for the end user.
“We'll see teams very siloed and they're all responsible for their one part of the process, and this environment really just fosters blame,” Punteney said. “With this you also lose a lot of creative solutions. What's the best way to solve this problem? I can't tell you how many times I hear a developer, when [the software is] launched or in testing, he would say, "Yeah that didn't seem right to me when I was building it.'”
Testing throughout the development process is key to building a good product, a habit DHS is building into its DevOps approach. Even though constant testing can be expensive and time consuming, Punteney said it will actually save a federal agency money in the long run.
“If you're testing a week before launch, do you delay launch, do we put out a bad product? The longer you wait for the testing, the more problems it's going to cause you,” Punteney said. “Deployment, scalability, all these things should be tested throughout so you don't get surprises at the end.”
Automation can help curb the high costs associated with testing, and also limit the number of bugs in the end product.
“If you can automate as much as possible, you can be testing thousands of times a day and it doesn't cost you any more than an additional computer,” Punteney said. “It does require an investment to write those tests.”
Constant testing also makes fixes easy after the software product launches. If developers test throughout the DevOps process, they gain an intimate understanding of the product that allows them to fix issues much more quickly and efficiently without compromising the integrity of the product.
Punteney advises smaller rollouts to address potential issues without affecting your entire customer base.
“Smaller rollouts support research,” Punteney said. “You can rollout to 1% of your user base, monitor that, move it up to 5% then 20% then 50%, so if there is an issue only a small percentage of your users see it. For a lot of this, testing throughout is definitely easier to do in a cloud environment where you have that ability to scale up and down. A process called story mapping lays out what the system needs to do at the user perspective. I find [the activity] very useful early on in the project.”
None of this is possible without leadership buy-in and support. Agency leaders need to promote cross-functionality between teams and allow teams the flexibility to adjust development or start from scratch if necessary.
“If you don't have that leadership support and they provide the space to do that, it doesn't matter what you do at the program level because it's going to get shut down,” Punteney said. “No. 1 is having a user focus, moving with the users, observing how they're using the system, because that's going to drive the transformation. You need to have the flexibility to adjust and meet the user's needs. You need cross-functional teams to really move things forward. You need to test throughout and deploy regularly so you can keep building and building to make sure you're on the right path with your metrics.”
For agencies looking to adopt DevOps and Agile processes, he added, the best way to start is with daily stand-up meetings that encourage a consistent line of communication between leaders and developers. The result will be more user-friendly products and streamlined IT operations.
“Make sure leadership is rewarding [developers] for speaking up and sharing,” he said.