The sixth annual State of the DevOps report – encompassing over 27,000 survey respondents – just hit last week. Like every year, the findings of the report would become "the Bible" for the DevOps industry and for organizations delivering software in the months to come.
The report not only provides us with the benchmark for what to aspire to, but also shines a light on some of the proven patterns and tactics we should be focusing on to advance our own DevOps journey — to show consistent improvement and to achieve the greatest bang for our buck.
As someone who is often citing and relying on the reports’ data throughout the years, I wanted to share some of my favorite findings and takeaways from the 2017 data:
1) Automation. Automation. Automation
And, again: A-u-t-o-m-a-t-i-o-n.
Automation has always been considered a key practice of DevOps, but the 2017 State of DevOps report further confirmed that automation is a key differentiator for organizations. High-performing IT organizations do less manual work and automate significantly more of their software delivery processes – from configuration management to testing, deployments, and change approval. This automation has two main outcomes:
- Accelerating feedback loops – which improves product quality and release cadence.
- Leaving teams with more time for actual coding – versus getting bogged down with manual, mundane, IT tasks and processes. Seriously, who really wants to spend time manually provisioning yet another server, instead of writing code to make your product even more awesome?
I would also add a third outcome, not specifically called out in the report but that’s a personal favorite of mine: Automation is auditing. Automated processes come with the extra benefits of being consistent, repeatable, with predictable outcomes, and they can be automatically logged and documented. Since DevOps spans your entire pipeline, it can provide traceability from code change to release. As you’re automating things – from your build, test cycles, integration cycles, deployment and release processes – your DevOps automation platform has access to a ton of information that is automatically logged in great detail. That, in effect, becomes your audit-trail, your security log, and your compliance report – all produced automatically.
2) Think About Connecting the Dots
Automation dots, I mean.
I’ve noted before that the next evolution of DevOps in the enterprise is that of standardization and consolidation. According to Gartner, 80% of organizations have some automation in place, in what we call “pockets of automation”. These are silos of automation, where different teams use different tools to automate (some) of their various processes. While this is OK to start with, as DevOps matures in the organization, there is a move towards consolidation and standardization in order to drive automation – and its benefits – throughout the entire organization, and not just in pockets.
Connecting the (automation) dots is crucial for scaling DevOps across the organization, as well as connecting the dots between business metrics and the underlying tools and processes.
Organizations are now investing in integrating their DevOps toolchains- connecting all the functions, tools and stages along the pathway to production- from dev, test, Ops, IT, business, and more. This move from silos of automation to an integrated, end-to-end pipeline that drives your software delivery doesn’t mean you wouldn’t have independent teams/processes/point-tools, or that practitioners won’t be able to pick their preferred tool for the job. The report underscores the importance of being able to integrate and orchestrate all those tools and different ways of working, having them converge on a shared pipeline – which enables a layer of orchestration, visibility, and governance across the entire delivery process.
3) Are You Releasing Bad Code Faster Now?
The 2017 report shows the high performers outperform low performing organizations in both throughput and stability. They deploy 46X more frequently, have 440X faster lead time from Commit to Deploy (one hour, compared to between one week and one month for low performers), recover from downtime 96X faster, and their change failure rate is 5X lower.
What is most interesting is that the gap between the high performers and low performers has narrowed from 2016 with regards to deployment frequency (throughput), but has widened where it comes to stability and reliability indicators.
Low performers in 2017 are deploying code between once per week and once per month, compared to once per month and once every six months in 2016. An improvement, for sure. However, high performers have an even greater advantage recovering from outages and preventing failures in the first place – indicating that their releases are of higher quality. In 2016, high performers reported 24X faster mean time to recovery (MTTR) – less than one hour, while low performers took about a day. This gap is now 4 times larger – with high performers recovering 96X faster. Similarly, the gap in their respective failure rate has grown from 3X to 5X. This shows that low performers have focused more on throughput, but have invested less in testing and building quality in – which risk their applications’ reliability.
Testing is one of the toughest things to automate and is often the Achilles heel of your pipeline and release processes. But building quality in and shifting left testing, monitoring, and security is absolutely necessary. If you’re risking customer experience, time to market and service availability by simply shipping bugs and bad code faster — what’s the point??
4) "It’s Not You, It’s Me:" De-Coupling Is the Path Forward
The 2017 data shows that Continuous Delivery significantly contributes to lower deployment pain and higher IT performance. Makes sense! The interesting finding is that the results confirm the importance of architecture for achieving CD, and therefore high performance.
The report shows that having lean, autonomous, empowered teams, along with loosely coupled services that can be developed, tested, and deployed independently are the strongest predictors for continuous delivery. Sometimes, it’s important to realize that we’re actually better apart: these “loosely coupled” architectures – both from an organizational design and application/system design – mean that teams can power-through independently, with minimal dependency on other teams for additional work, resources, approvals, etc.
We see many of our enterprise customers looking to take advantage of microservices, containers, and other service-oriented architectures and modern technologies to de-compose their monolithic applications. De-coupling their teams and dependencies is a way to support faster time to market. However, as you can imagine, these massive architectural changes do not happen overnight. In this complex hyper-hybrid state that enterprises find themselves (having to support both legacy applications and modern ones, monolithic and microservices, VMs and containers, CD pipelines and traditional releases, and more), it’s important to find ways for your DevOps tooling to seamlessly incorporate these modern architectures as part of your integrated end-to-end software delivery strategy, rather than silo-ing them.
5) What Does a Good Leader Look Like?
We know that good leadership is essential to the success of your DevOps transformation. But do you know what is a portrait of a "good" (i.e. engaged, effective) leader?
What leadership traits and practices are most conducive of DevOps and most enhance and enable the culture and processes that are at its core?
What are the de facto manifestations of "good" leadership? How to gauge where you are on the spectrum and what needs improvement?
Based on the Rafferty and Griffin Transformational Leadership model, the 2017 State of DevOps report provides us with five concrete characteristics shared by Transformational Leaders that significantly shape your organization’s culture and practices. These are vision, inspirational communication, intellectual stimulation, supportive leadership, and personal recognition. The report shows that these attributes are highly correlated with IT performance, and that effective leaders greatly accelerate your DevOps success. In fact, high/medium/low performing organizations demonstrate significant differences in IT leadership traits across these 5 dimensions.
For DevOps to flourish, we need to align both the grassroots initiatives as well as our leadership efforts and support. With the 2017 framework and data we can:
- Measure and assess the effect that our leadership’s qualities have on our DevOps success.
- Invest in building and fostering the leadership team that’s most impactful for our DevOps journey – by continuing to hone and enhance these key, demonstrable, characteristics that are most conducive of IT performance.
The report has a ton more interesting data points and in-depth analysis. To explore all the findings, get your copy of the report now.
The original post can be found on the Electric Cloud blog.