The benefits of DevOps have been known for some time, but this year’s Accelerate State of DevOps report shows that successful companies are extending the advantages they get from adopting it. The longest-running research of its kind, the report from DevOps Research and Assessment (DORA) represents five years of work surveying over 30,000 technical professionals worldwide.
Based on their input, the report previously split organizations into low, medium and high performers. This year it added a new category – elite performers – who are embracing DevOps to raise the bar when it comes to the benefits they gain. Elite organizations are able to deploy code 46 times more frequently than low performers, lower lead times from committing to deploying changes to less than one hour (compared to 1-6 months in low performers), and recover from incidents 2,604 times faster.
For the first time, the report also focuses on the vital importance of the database to successful DevOps, echoing research from Redgate. As it points out, deploying changes to the database is often a bottleneck, slowing down DevOps. To overcome this the Accelerate report recommends integrating database work into the software delivery process, based around four good practices:
1. Strong communication and cross-team collaboration
Traditionally, the teams involved in application and database development have had different priorities and responsibilities. The biggest concern with the database was to limit change in order to keep data safe, while application development was all about creating features, often without regard to what impact they would have on the database.
With DevOps, this has changed. The faster releases of smaller changes it encourages means the database cannot be a logjam at the end of the development pipeline. Instead, it needs to be part of the same workflow, so good, ongoing communication is vital.
In many organizations this is already happening – 58% of respondents in Redgate’s 2018 the State of Database DevOps Survey said that collaboration between developers and Database Administrators (DBAs) was either good or great, showing that the processes and teamwork are in place to break down any walls between departments.
2. Comprehensive configuration management
Using configuration management tools for software development is a central part of achieving successful DevOps results. To avoid issues, these same practices and tools need to be extended to cover the database as well. Handling changes systematically creates a seamless flow that enables faster releases and dramatically reduces issues – vital when over a third of respondents to the Redgate survey said they deployed database changes either daily or more than once a week.
3. Extending version control to the database
As part of taking a holistic view, the Accelerate report found that extending version control from application code to database code delivered major benefits. Elite and high performers store database changes as scripts in version control and manage these changes in the same way as application changes. This is a task that is shared between DBAs and developers – 75% of respondents to the Redgate survey said that application developers now build database deployment scripts, and were responsible for deploying these database changes to production in nearly half (47%) of organizations.
4. Building a strong culture
Culture is a strong factor in whether DevOps succeeds or fails in an organization. This is unsurprising given that DevOps is a very different process to those it replaces, focusing on speed, collaboration between teams and a willingness to be open and continually learn and improve.
Many people are familiar with the work of sociologist Ron Westrum, who characterized the culture within organizations as one of three types:
- Pathological (power-oriented) companies work in silos, don’t co-operate and are quick to apportion blame if something goes wrong.
- Bureaucratic (rule-oriented) companies are more open, but are still suspicious of novelty and tolerate limited co-operation between teams.
- Generative organizations are most suited to successful DevOps, with a focus on co-operation, surfacing problems, breaking down silos, holding postmortems to understand why things have not gone well and continually experimenting to drive improvement.
To create the right environment for DevOps, leaders need to encourage a generative culture which builds trust within and across teams, empowers them with autonomy and uses good communication to ensure everyone understands their role and goals.
The latest Accelerate State of DevOps report has a simple topline message – higher software delivery performance enables better business outcomes. Achieving this requires taking a development-wide approach to DevOps, incorporating the database seamlessly into DevOps flows, communicating and collaborating between teams, sharing technical practices, and building a strong, open culture across organizations. Only then can they become high or elite performers, with an agile infrastructure that underpins their success.
This article was originally published on DevOps.com in October 2018
Also in Blog
In 2017 we launched our first report into the State of Database DevOps and have repeated it year-on-year. The responses from thousands of database professionals have given us unique insights into how ...
Also in DevOps
In this post I’d like to share some insights specific to Enterprises, which we define as organizations with 1,000 or more employees in the 2020 State of Database DevOps Report. We received over 2,00...
Also about Database DevOps
More and more enterprises are seeing the merit of introducing DevOps to speed up application and database development and deliver value into hands of their customers faster. The collaboration and coop...