A few years ago, many organizations viewed DevOps as a promising experiment, rather than a basic approach to software development. Now DevOps is a proven and powerful set of development and deployment practices and tools that accelerate new product releases and increase productivity. More importantly, the DevOps effect is aimed at the overall growth of the business and increase its profitability.

Our team translated the most interesting from the 2019 Accelerate State of DevOps Report, compiled by experts from DevOps Research & Assessment (DORA). The study involved 31,000 professionals from all around the world. Let’s see what has changed in the industry in 2019 and how a business can increase the efficiency of software delivery.

How industry and company size impact DevOps

The study did not identify a link between DevOps performance and the organization’s industry, with the exception of retail, where performance was slightly better. This, in particular, is due to the fact that retailers need to quickly respond to fluctuations in demand and customer needs. According to the study, any company, including the financial sector and the public sector, can achieve a high level in DevOps.

DevOps performance indicators in companies with more than 5,000 employees were lower than in companies with less than 5,000 employees. Most likely, this is due to the fact that in large organizations, larger processes, stricter control, more complicated architecture of IT systems, which introduces delays in the process of developing and rolling out the code. At the same time, experts believe that the scale of the company does not impede success in building DevOps, just in some cases it may require more effort.

How to evaluate the level of DevOps in a company

Experts compared DevOps processes with a benchmark, dividing the survey participants into four groups with the best, good, medium, and low indicators.

Four key metrics for evaluating the effectiveness of DevOps were taken for the report: the time taken to complete the changes during software development, the frequency of deployment, the frequency of failures, and the recovery time.

Four levels of DevOps – evaluate where your company is located:

Software delivery
performance evaluation
metric for the company’s
main services
Low
Score
Team
Medium TeamGood TeamTop Score
Team
Deployment frequency
How often does a company deploy code to production or release it to end users.
Once a month / several monthsFrom once a week to once a monthOnce a day to once a weekOn request, multiple deployments per day
Change Lead Time
How long does it take to switch from a test to software that successfully works in production.
Month to six monthsFrom one week to a monthFrom one day to a weekIn less than a day
Service Recovery Time
How long does it take to restore a service after an incident or bug affecting users.
From week to monthIn a weekDuring the dayLess than an hour
Change Failure Rate
What percentage of updates or new releases lead to poor service and need to be fixed.
46-60%0-15%0-15%0-15%

The study revealed the following trend: the number of teams with a high level of indicators almost tripled, increasing from 7% of all respondents in 2018 to 20% in 2019.

Compared to teams in a low-performance group, high-performance DevOps teams:

  •     Completed 208 times more code deployments.
  •      106 times less time spent deploying code
  •      7 times less likely to encounter failures
  •      2,604 times faster to restore software after failures

In addition, DevOps teams with high scores are two times more likely to achieve or exceed their organizational performance metrics than teams with low scores.

Many experts think that it is impossible to achieve an increase in all indicators at the same time, we must compromise. So, some believe that increasing the speed of rolling out releases can adversely affect the reliability of the software delivery process and the provision of services. However, studies have shown that the speed and stability of the results are not mutually exclusive.

How to improve DevOps processes

The report presents two areas that will help improve DevOps: improving the efficiency of software development and delivery and improving productivity.

According to the report, the key to digital transformation is corporate culture. Highly effective DevOps teams need a culture of trust and psychological security, an understanding of work results and clear goals. Such an environment allows team members to make informed decisions, express their opinions and be more creative.

Cloud technologies, continuous delivery, disaster recovery testing, and change management will also help to improve the efficiency of software development and delivery. Labor productivity can be improved by investing in easy-to-use tools, reducing technical debt, reducing the percentage of inefficient code and obsolete technologies, organizing a corporate knowledge base and access to external solutions.

Below we’ll look at some of the components that improve DevOps team performance.

Cloud technology contributes to DevOps success

In 2019, more and more organizations are choosing cloud solutions that significantly increase the productivity of DevOps teams.

DORA found that 80% of respondents host core applications or services on a cloud platform. Nevertheless, only 29% of respondents implemented all five of the main characteristics of cloud computing at the National Institute of Standards and Technology – this is the most important standard for evaluating the value of the cloud within the framework of DevOps.

Percentage UsedCharacteristic
57%
(+ 11% since 2018)
Self catering on demand
Consumers can automatically provide computing resources as necessary, without the participation of the provider.
60%
(+ 14% since 2018)
Broad network access
Cloud capabilities are available across multiple platforms,such as mobile phones, tablets, laptops and workstations.
58%
(+ 15% since 2018)
Resource pool
Provider resources are combined into a multi-tenant model, where physical and virtual resources are dynamically assigned on demand.
58%
(+135 since 2018)
Scalability and elasticity
Resources are scaled horizontally or vertically on demand, they are practically unlimited and can be issued in any quantity at any time.
62%
(+ 14% since 2018)
Transparency
Cloud systems automatically control, optimize and report on the use of resources depending on the type of service: data storage and processing, amount of traffic, active user accounts

Platform as a Service (PaaS) is increasingly moving towards a deployment model centered around containers. Cloud platforms simplify software deployment, so teams only need to worry about running the application code itself. Scaling, resource planning, administration and maintenance of infrastructure also goes to the side of providers.

For cloud providers, the universal standard is the provision of a variety of services: virtual machine networks, identity and access control (IAM), storage and databases, machine learning, the Internet of things (IoT), container solutions, security solutions and others.

Clients of cloud providers pay only for the resources that they use, which ensures cost transparency, in contrast to traditional data centers, where information on the cost of development is difficult or impossible to get. Respondents from companies that meet the cloud characteristics listed above are 2.6 times more accurate in estimating the cost of software work, 2 times more often understand which applications consume more resources, and 1.65 times more often remain within the budget allocated for IT.

Technical Practices DevOps

Many organizations wishing to implement DevOps are looking for a set of instructions or best practices. However, there are no identical companies, therefore, what practices to choose depends on the current state of the business and its goals.

At the same time, there are general directions that help to improve the efficiency of DevOps: some of them are developed at the team level, others require efforts at the organization level.

What are the growth directions for DevOps teams in 2019:

loosely coupled architecture
implementation of changes
code support
Organization level
continuous integration
test automation
deployment automation
monitoring
development pipeline
Team level
use of cloud services
disaster recovery testing
At the team and organization level

The study confirmed the positive impact of loosely coupled architecture on DevOps performance.

A loosely coupled architecture is when teams can independently test, deploy, and modify systems on demand, independently of other teams, without additional support, resources, approval, with less feedback. This allows you to work more efficiently, but requires a high level of organization and management.

Successful DevOps teams automate everything

Continuous integration and delivery (CI / CD) allows you to bring services and applications to the prod with less cost and risk, as well as maintain releases in accordance with the goals of the organization.

A successful CI / CD also means that teams can implement changes to production on demand, they can immediately see feedback on deployment quality, they can be quickly worked out and the next deployment cycle can be improved.

The report shows that successful DevOps teams invest in a wide range of supporting processes, practices and tools:

  •      92% use automated assembly tools
  •      87% use automated unit tests
  •      57% extend automation to acceptance tests
  •     72% automate deployment in test environments, 69% do the same for deployment in production;
  •     69% integrate chatbots in the deployment process
  •     57% integrate with monitoring tools.

It is important to choose the right tools and technology

When building complex systems and managing business critical infrastructures, it’s important to choose the following technologies:

  •      which are easy to use both during the first connection and in constant operation;
  •      which help to achieve your goals.

The report examined the tools used to deploy software via CI / CD, and test automation tools – these are the technologies that underlie DevOps.

What technologies use DevOps commands:

High Score TeamsGood TeamsMedium TeamsLow Score TeamsTechnology
33%32%34%30%Combination of proprietary, open
source and commercial box products
10%7%8%17%Mostly open source and highly
customized boxed solutions
20%18%21%14%Mostly open source and box-based solutions with little tweaking
4%8%12%8%Primarily Boxed Commercial
Solutions
6%5%6%20%Internal development and
proprietary solutions for the company
12%5%7%6%First of all, open source
with strong customization
15%24%12%5%First open source with a little
tweaking

The convenience of tools significantly affects the ability of the team to maximize the value of the selected technology stack: engineers with easy-to-use technologies are 1.5 times more likely to belong to teams with high rates.

Disaster recovery

Each organization whose work depends on the operation of the software must have a disaster recovery plan. The report shows what types of disaster tolerance testing are used by various companies.

What types of trials companies use for disaster recovery

AverageHigh Score TeamsGood TeamsMedium TeamsLow Score TeamsTest type
28%30%27%26%35%Tests that do not affect real systems
38%38%34%43%27%Infrastructure failover (including data center)
43%49%41%46%25%Application Failure Testing
23%29%23%22%18%Simulation of incidents with malfunctioning test systems
12%13%12%11%18%Modeling incidents with malfunctioning work systems
8%9%7%8%9%Creating automation and systems that disruptproduction systems on a regular, ongoing basis

Only 40% of respondents conduct disaster recovery testing annually using one or more of these methods. At the same time, companies that conduct disaster recovery tests have a higher level of service availability. The report shows that DevOps teams with high performance are 1.4 times more likely to take into account disaster recovery test data in software development and deployment processes.

It is important that DevOps teams have access to information

Keeping the performance of DevOps commands at a high level will be facilitated by an easy search for information to solve problems. This is especially true in a modern technological environment, which consists of complex systems.

Sources of such information can be divided into two groups:

  •     Internal sources: company documentation for creating and maintaining code, corporate knowledge bases, repositories, and more. Those DevOps teams that used internal sources of knowledge were 1.73 times more productive.
  •     External sources: search engines and stack replenishment. External DevOps teams were 1.67 times more productive. External technologies offer a great advantage for learning and growth, especially the use of public clouds and open source tools.

It is important for companies to reduce technical debt

Technical debt includes code or systems with known but not fixed bugs; insufficient test coverage; low quality code or design; artifacts that are not used but not deleted; implementations that the team cannot effectively support; outdated technology; incomplete or outdated documentation.

Experts have found that technical debt adversely affects DevOps performance. Teams with high technical debt were 1.6 times less productive. Teams with high rates were 1.4 times more likely to have low technical debt.

Key findings from DevOps research

  •     The percentage of high-performing DevOps teams almost tripled at 20%. This means that business understands the promise of practices to improve software development and delivery, companies are more actively implementing DevOps in their IT departments.
  •     Fast application and service delivery is at the heart of technology and organizational transformation. The speed and stability of rolling out releases increases profit and customer satisfaction.
  •     Cloud technology continues to be key to achieving high performance DevOps teams. Using clouds allows you to organize the delivery of software at the right speed, provides availability, scalability and productivity of the infrastructure.
  •     The effectiveness of DevOps-teams can be improved if you pay attention to the productivity of team members, provide a comfortable psychological atmosphere and the use of convenient tools.
  •     Increasing the speed of rolling out releases with the right approach does not affect the stability of the company’s services and applications.