Just a decade ago, most software professionals considered DevOps not much more than a promising experiment. Fast forward to 2019, and DevOps has become a mainstream approach allowing modern software development companies to make dramatic improvements in their performance and productivity. This view is supported by a recent report from DevOps Research & Assessment (DORA) on a survey of 31,000 global professionals. ‘Accelerate: State of DevOps 2019’ asserted that DevOps has ‘crossed the chasm’ and continues to accelerate.
DevOps can elevate performance, but only if it’s done right
Interestingly, DevOps tools and practices enable software teams to deploy code faster and more frequently while maintaining stability and reliability. According to this year’s DORA report, elite-level DevOps performers can deploy code 208 times more often than low performers. The numbers for elite DevOps performers — deploy frequency, lead time for changes, change failure rate, and speed of recovery — are amazing across the board. More importantly, elite performers are twice as likely to meet or exceed their organizational performance goals. DevOps is good for business!
The report also found that the proportion of elite-level DevOps performers has almost tripled in the last year. The highest performers went from making up 7% of total respondents in 2018 to 20% in 2019, showing that excellence is possible, but that execution is key.
To execute DevOps well, leaders must understand how a team’s performance compares to industry metric baselines from lead time, to deployment frequency, to the amount of time it takes to restore following a failure, and then allocate resources to focus on what is lacking. This process in turn will help organisations create a healthier work culture to improve software delivery performance and ultimately reduce technical debt.
So, how can DevOps teams elevate performance?
1. Fully leverage cloud computing
While 80% of respondents host their primary application or service on a cloud platform, only 29% have implemented all of the National Institute of Standards and Technology (NIST)’s Five Essential Characteristics of Cloud Computing — a critical standard for assessing the value of the cloud within a DevOps framework. Yet, organisations that fully leverage cloud services are the ones in the best position to achieve top performance. Completely cloud-native approaches are crucial to more quick, responsive, and agile development processes due to cloud computing’s scalable, versatile, and cost-effective nature.
However, if teams aren’t 'all-in' on DevOps cultural and organisational practices, including tools and processes designed and optimised for cloud environments, they can be held back. This is often true of teams that don’t dwell enough on where they host workloads or have full visibility into the composition of their cloud environment, as multi-cloud and hybrid cloud hosting can have a major impact on a team’s ability to monitor the health and performance of its applications, and to troubleshoot and resolve issues quickly. Therefore, to fully benefit from the cloud, teams should review NIST’s Five Essential Characteristics of Cloud Computing and choose supporting tools and processes optimised for cloud environments.
2. Practice lightweight processes for code updates
Although organisations may see heavyweight, waterfall-style development and deployment processes as the best way to manage risk, those that use heavyweight processes are 2.6 times more likely to be low performers according to DORA’s findings this year. Previous DORA research has also tied heavyweight code-review tactics to higher rather than lower change failure rates. Having lightweight change processes in place, such as automated testing and peer review for making code updates, is best practice as speed and flexibility is so crucial to DevOps. Conservative project management and ops teams might view keeping a tight grip on software deployment processes favourably to avoid bad code in production systems, but what this actually results in is bottlenecks, delays, and backups — all of which lead to bigger, less frequent, and higher-risk releases that contribute to higher change failure rates.
Software engineers should thus automate, instrument, and monitor code pipeline upfront to give their colleagues better visibility into errors earlier in the development process, enable fast-feedback loops, and give lightweight change practices a chance to speed deployments and improve quality. In addition, as organisations with a clear change process were 1.8 times more likely to be elite performers, they should also ensure change processes are clear, thoroughly documented, and constantly communicated with the team.
3. Automate and capitalise on continuous delivery
Continuous delivery (CD) uses automation to continuously deliver code changes, making sure your code is always ready to deploy. It enables lower-cost and lower-risk releases, while also keeping releases in step with an organisation’s business and customer experience goals.
How can teams set themselves up for success? 92% of teams successful with CD employ automated build tools, 87% use automated unit tests and 57% integrate with production monitoring and observability tools. Usability also has a significant impact on a team’s ability to maximise the value of their chosen toolset — engineers with easy-to-use tools are 1.5 times more likely to belong to elite-performing teams.
Furthermore, the choice of instrumentation and tooling plays an important role in company initiatives — namely, those related to creating loosely coupled application architectures. This model reinforces team-level practices that promote agility, resilience and productivity, and that lower technical debt and risk. For instance, monitoring distributed environments-optimised tools can have a major impact on how engineering teams spend their time and the amount of value they generate.
Successful CD results in teams being able to deploy changes on demand to production, the deployment of quality feedback is made available immediately, and teams can then quickly act on that feedback to improve the next cycle of deployment. It is also worth noting that there is no silver bullet to performance challenges — out of nine tools mentioned in the report, seven were used by a majority of the surveyed elite-performing teams.
No matter your industry, DevOps practices both are valuable and necessary to succeed with modern software. Read ‘Accelerate: State of DevOps 2019’ to find out what the elite teams do, and how you can move to continuous improvement, DevOps style.
Note: all stats derived from DORA’s Accelerate: State of DevOps 2019 report unless otherwise stated