Contributed by Abby Kearns, CTO, Puppet
I had the pleasure of presenting a session at virtual cdCon this year where I discussed the challenges that organizations face as they work to truly implement continuous delivery in a DevOps environment. At Puppet, we’ve spent the last decade researching DevOps and high-performing organizations. We’ve seen that it is possible to deliver software faster without compromising reliability and agility — but only through a shared and measured DevOps practice with a particular focus on Continuous Delivery.
The advantages for companies who do so are significant:
- 46 times more frequent code deployments
- 440 times faster deployment than peers
- 5 times fewer failures
- 24 times faster ability to restore services
A DevOps environment helps to shift organizational culture from low trust to high trust, from bureaucratic to generative, and it creates more cross-functional teams, more automation, higher productivity, and greater visibility into the software delivery lifecycle. It also yields higher job satisfaction.
But, as we all know, there are also significant challenges. In fact, by 2023, up to 90% of enterprises will fail to scale DevOps if they do not create a shared, self-service platform.
Three key challenges
Shifting your organizational practices is hard. There are three key obstacles that I see enterprises struggle with:
- Lack of intelligent automation and a robust (enough) DevOps culture;
- Complicated infrastructure that grows more complex every year;
- Enormous pressure to future proof, while also automating quickly and showing immediate results.
But, how can you address these issues?
First, start with breaking down the silos among teams, and ensure that application development, infrastructure, security, compliance, cloud, and others are aligned on the core goals, and are delivering value to customers.
Second, most organizations rely on an enormous set of isolated tools to keep things secure and running. These tools need to integrate in order to be automated. You also need to reduce any bottlenecks and friction between teams and tools.
While this all may sound simple, it is actually complicated and takes more time than you expect. But, when every tool you need is integrated around the right people and the right processes, it becomes something far greater: a platform. The right platform is a foundation for everything that drives value in your organization. It brings people, processes, and technology together.
Making continuous delivery work well
Continuous Delivery is all about integrating people, process and tools. It provides automated guardrails to enable faster and more efficient delivery. But Continuous Delivery can’t be done in a vacuum. It requires collaboration across multiple teams and stakeholders. While the platform is and can be a catalyst, it relies on all of the teams in the delivery cycle to make it work. Continuous Delivery is a team sport and everyone needs to get their heads in the game if they want to scale DevOps practices across the organization.
To do Continuous Delivery well:
- You need to take an infrastructure as code approach so that environments are available on demand.
- You need to have automated delivery pipelines with security and compliance built-in.
- And ultimately, you need to enable developers by providing self-service interfaces.
As we look to what’s next for Continuous Delivery, we envision a future where people, processes and tools are tightly integrated; where there are specialized platform teams focused on improving the developer experience and underpinning all of that is a robust self-service platform.
If you want to scale DevOps and Continuous Delivery practices more broadly, then I recommend investing in the platform and the people who make it work. Everyone who’s involved in the software delivery cycle needs to be invested in it, as well. And, if there’s anything I’ve learned thus far, it’s that it’ll take all of us to get there.