Dissecting the 2019 State of DevOps Report, Part 1: DevOps Practices
Being an avid student of industry trends, I regularly review and study reports that provide valuable insights into the overall patterns pertaining to best DevOps practices, tools and techniques in use today. In 2019, the Accelerate State of DevOps Report, sponsored by Google, was published to reveal fascinating trends in the DevOps community. In this 3-part series, I would like to share some of the findings that I have observed within this report. In Part 1, the focus will be on DevOps Practices and organizational maturity.
According to the State of DevOps Report, organizations that apply DevOps practices fall into one of the four groups based on their level of sophistication. The groups defined based on the frequency of deployment to production, the average lead time for changes to be implemented, and mean time to restore. The following table provides additional detail regarding this grouping criteria.
Source: State of DevOps Report 2019
Using this grouping criteria as the foundation, the Report provides data regarding the type of automation implemented by various groups, as illustrated in the table below. In addition, the corresponding plot provides a more revealing view into the data.
As the data suggests, most groups are currently applying automated builds for their software development process. However, the Elite performing group excels in other areas such as automated deployment to production and automated unit tests, both presents the highest gap from the Low performing group by 30% and 52%, respectively. Furthermore, Elite performers outpace Low performers by 30% for automated acceptance tests.
This translation of the data indicates that automated deployment is the most critical automation process that separates the most effective and efficient DevOps organizations from the remainder of the field. In other words, in order to reap the true benefits from a lean-Agile approach, organizations must master the ability to deliver value to the customers quickly, consistently, and with high quality.
In my experience working with Agile/DevOps transformation initiatives, it is very common to see organizations fail to recognize this critical step: delivering value to the customer. I have personally witnessed many high-performing teams that are able to design, build, and test software products in a consistent manner, yet fail due to the inability to put that hard-earned value into the hands of the end-users. Many organizations that are new to Agile methods naively believe that as long as they master Scrum, they are able to succeed. My experience indicates that simply mastering Scrum does not guarantee the customer will have the opportunity to put the working product to use and solve their own business problems, which at the end of the day, is what matters.
In summary, building high-value products is more than being able to build the solution that the customer asked for – it is about being able to harness the power and capabilities of that solution to accomplish specific business objectives. Organizations that are applying DevOps practices must have a mindset of continuous exploration and learning in order to incrementally move from foundational automated builds to automated deployments in order to optimize end-to-end process. If your team has mastered Continuous Integration, it is probably time to experiment with Continuous Testing, Deployment and Delivery; it is highly likely that your competitors are already doing so!
Read Part 2: DevOps Tools and Part 3: DevOps Adoption Strategy of this blog series.