While embracing DevOps and DevSecOps is an essential step in expediting application development without sacrificing security, many government agencies have been slow to make the jump, or have faced challenges on their way towards embracing Agile and DevOps approaches to application development.
This was evident in a recent Webinar featuring Kendra Charbonneau, a lead engineer and enterprise agile transformation coach at U.S. Air Force Business Enterprise Systems, and Rajive Mathur, the former CIO at the Social Security Administration (SSA). During that discussion, Charbonneau was very candid about the current state of Agile and DevOps adoption within the Air Force, and even provided six specific factors that were slowing government DevOps adoption down.
As with the adoption of many new technologies and application development approaches, the private sector has been leading in adopting DevOps, and there are best practices that private sector organizations can share to help government and military organizations make the leap. In fact, Chafin Bryant, a Senior Engineering Manager at Capital One, recently provided a list of seven tips for application development teams that are looking to start their own successful DevOps journey.
Here are Bryant’s seven best practices, which he originally shared as part of an article he authored for the CloudBees Blog:
1 – Adopt a disruptive and fail-fast mindset. Try new things and be willing to try something else if an idea fails. Having a fail-fast attitude and accepting that not every idea is going to work out is a key success factor. This allows you to be nimble and quickly find a solution that’s going to work for you.
2 – Aim for consistency. There’s a saying attributed to the Navy SEALS that goes something like this: “Slow is smooth and smooth is fast.” That’s a great strategy for achieving DevOps success. Make a goal of consistently achieving your quality gates, even if your cadence isn’t rapid at first. If you can create consistency, then you can make that process quicker and you can scale it.
3 – Embrace the cloud. Capital One is cloud-first, which helps us avoid the pitfall of running out of resources just when we need them the most. Provisioning new tech capacity can take months of planning and implementation, which slows innovation. Cloud infrastructure enables our teams to build and destroy thousands of resources every hour and scale with ease when we need more capacity.
4 – Centralize tooling. Want your development teams to get more efficient? By centralizing DevOps and delivery tooling, our teams no longer need to develop and manage their own tools in different silos. This reduces duplicate efforts and increases resource reuse and collaboration. Some of the enterprise functionality that CloudBees CI provides, like granular role-based access control and support, helps our teams provide tooling for the entire enterprise in a centralized, managed, standardized and yet flexible way.
5 – Architect for scale and growth. As you start your DevOps journey, think about where you’re planning to go and build your systems to match. “Begin with the end in mind,” just like Stephen Covey says in his classic book “Seven Habits of Highly Effective People.” Too often, organizations start projects with the idea that the scale is going to be fixed. Then when the project takes off, you run into an architectural wall. If you’re early in your DevOps journey, think about how you’re going to grow so you can make sure your tooling and processes are poised to grow in step.
6 – Set a high quality bar, then automate your controls. How do you achieve consistently high software quality? Start by thinking through all the development processes you’re currently running, then set a quality bar to ensure you’ll meet the highest expectations for your software. Then, work to automate each of those quality controls and gates to reduce human error and simplify audit and compliance. You may need to rethink and reimplement your existing manual/human controls, but in the long run this will make the process better, faster and more consistent.
7 – Start somewhere. Where do you begin? Take one identifiable thing you can improve, make it better, and then do it again and again. Others will begin to notice you’re making a difference and you’ll start to build organizational momentum. It’s like a playground merry-go-round. You push hard at the beginning to get it going, but as it goes faster, it actually starts to pull you along.