The latest drivers of software delivery performance
Nicole Forsgren and the Accelerate DORA team has just released the newest iteration of the State of DevOps report. The report investigates what practices make us better at delivering valuable software to our users as measured by business outcomes. Read on for our analysis of the report, and how it can be best put to use.
Everybody wants to be data-driven. How we choose to work and the many micro-decisions we make each day are unfortunately primarily based on gut feeling and anecdotal evidence accepted as pseudo facts.
Fortunately, Forsgren and her team have done the research and condensed their findings and insights into the Accelerate State of DevOps Report 2019 allowing us to make evidence-based decisions.
As well as reaffirming the results of previous studies that DevOps capabilities drives business outcomes, Forsgren adds insights on what works in DevOps transformations.
The recommendation is to start with a foundation of basic automation, monitoring, a clear change process and a healthy culture. On this basis, start a loop of finding constraints and allocating resources to mitigate them.
The report also finds that making the change approval process clear is important, and the more successful companies have re-positioned the role of their Change Approval Boards. They achieve their goals more effectively when they take a coaching and strategy role rather than being a kind of gatekeeper. This is something that challenges conventional business practices at its core!
Fostering independent, empowered teams is so valuable, yet it is easy to forget that it also represents a tradeoff. A common and difficult tradeoff is trust vs. control. A transition that takes time and commitment from both contributors and leaders alike.
It is also great to see that a healthy culture is at the foundation of any DevOps transformation. I would argue that any type of transformation requires healthy culture to be impactful and sustainable.
Culture is not something that we as engineers tend to be comfortable talking about: it is too fluffy and vague. We can, however, take inspiration from Accelerate and measure our Culture using the Westrum Typology.
This allows us to get a baseline of the type of culture that exists in an organization and whether it is healthy or not.
A key finding from earlier Accelerate State of DevOps reports is that your industry does not predict DevOps performance. This year they surfaced another surprising result: the retail business is an outlier. I would have expected the outliers to be in the extreme low end of the spectrum of DevOps performance, but the retail industry is actually more likely to be high performing.
This was a harsh counterpoint to my prejudice around traditional business and DevOps. The report argues that there is an extreme degree of competition in the Retail domain, and those who do not excel are culled from the herd.
While other industries for instance have had the opportunity to blame regulation in order to avoid embracing new paradigms, the retail business has had to adapt and evolve. When we go to cloud native events, we’re surprised to see the retail industry such as Zalando and booking.com show up. They are there to help them hire talent: they brand themselves as an attractive high tech workplace.
Other industries are getting more competitive, such as the finance segment. It will be interesting to see who will manage to adapt in time.
A less surprising, although satisfying, finding is that large corporations (>5000 employees) are less likely to be high performers. With all the coordination and synchronization, slow procurements and planning cycles, this seems to be inevitable.
Focusing on building communities and taking skills where they are needed rather than in knowledge silos with experts disconnected from day to day work are deemed to be the best way to spread DevOps capabilities throughout organizations.
While the many job postings for “DevOps Engineers” often are misunderstood cases of needing someone to build pipelines or provision cloud infrastructure, there is obviously a key technical facet of DevOps and Continuous Delivery.
In the 2019 report we get some numbers on what automation the different performance profiles have.
It is heartening to see that even the low performers are moving heavily on the basics: automated build and unit tests. This could indicate that this soon will simply be permission to play - there will be no discussion about whether these practices must be pursued.
Additionally, more than a third of the low performers already have automatic provisioning and deployment to testing environments. This is truly a feather in the cap of the cloud providers and the Cloud Native Computing Foundation. The products in this sphere have matured both in terms of features and usability to a degree where adoption of infrastructure as code can be a business discussion rather than a question of whether it’s technically possible to do in a low-performing organization.
In conclusion, automation is a sound investment. A fun observation is that Slack and Chatbot integration, or ChatOps, is more likely to occur in medium than high performing organizations. This could either be due to the fact that high performers have been building their integrations and tools starting earlier, when integrations were not as mature and pervasive. Or it might simply be that medium performers are more likely to go for the gimmicky ChatOps than those more focused on outcomes.
Cloud adoption is up, and again this year it’s driving business outcomes. What’s important is not that you use a public cloud such as AWS or GCP. What matters most is the way that you consume those cloud resources.
NIST has provided us with five cloud characteristics: Rapid Elasticity, On Demand Self-service, Broad Network Access, Resource Pooling and Measure Service. These services are difficult to provide on-prem, but not impossible.
If you are not already moving towards cloud adoption, it is time to ask yourself, when we say we can’t use a cloud platform: is that actually true? An oft-repeated argument against cloud is price. With the cloud though, you get better transparency and predictability. Organizations that exhibit these characteristics in their cloud usage is much more likely to be able to predict operating costs.
In a similar vein, custom-built and heavily customized tools are also more likely to indicate a low performing organization. If we do not have the bandwidth nor the skills to build state-of-the-art tooling, it is important to bias towards COTS and Open Source software. The value is also in getting best practices and domain knowledge simply by convention.
Use these findings to start making evidence-based decisions on your DevOps capabilities!
Header picture: Nicole Forsgren talking at CoDe-Conf 2017 in Copenhagen
Digital Transformation is a major challenge for any organization. Our Continuous Delivery and DevOps experts will guide you on the road to true agile through a series of workshops.
Had enough of sluggish polling? With instant Artifactory event triggers you can give responsiveness in Jenkins a real boost. Here’s an easy way to set it up.
A super easy configuration guide
With the arrival of microservices code is becoming disposable. Does this mean that we no longer need maintainable code? Is it the end of refactoring?
Still relevant or increasingly redundant?
In software development tight coupling is one of our biggest enemies. On the function level it makes our application hard to change and fragile. Unfortunately, tight coupling is like the entropy of software development, so we have always have to be working to reduce it.
How to safely introduce modular architecture to legacy software.
I am an Atlassian certified trainer and over the years I have been spending much time with clients and their Jiras. In this blogpost, I have collected some small tips and tricks that will make your Jira usage better.
Jira Software is a powerful tool deployed in so many organizations, yet in day to day usage people are missing out on improvements, big and small.
In this post, I’ll take a closer look at the version of Jenkins X using Tekton, to give you an idea of how the general development, build, test, deploy flow looks like with Jenkins X. How does it feel to ship your code to production using a product coming from the Jenkins community that has very little Jenkins in it?
A crash course in Jenkins X and how to test it out on a local Kubernetes cluster
In this blog I will show you how to create snapshots of Persistent volumes in Kubernetes clusters and restore them again by only talking to the api server. This can be useful for either backups or when scaling stateful applications that need “startup data”.
Sneak peak at CSI Volume snapshotting Alpha feature
When I read Fowler’s new ‘Refactoring’ book I felt sure the example from the first chapter would make a good Code Kata. However, he didn’t include the code for the test cases. I can fix that!
Writing tests for ‘Theatrical Players’
A major challenge of software development is that our work is by and large invisible. This makes our folklore essential in business matters. Some of our commonly used arguments and visualizations are digital urban legends rather than solid foundations for informed decisions. Here, we’ll go through a few examples and some measures to address our misconceptions.
How the stories we tell influence our decisions
When you embark on your cloud native journey there will be important choices to make about cloud providers, continuous deployment, environments’ setup and separation. This guide will help you make the right choices by sharing lessons learnt from running cloud native apps in production.
Kubernetes has become the de facto container orchestration platform. When we help clients of different sizes and domains start their cloud native journeys in Kubernetes, we assist them in making sound decisions and technology choices. There is no one-size-fits-all solution when it comes to choosing cloud providers, CI tools, continuous deployment pipelines etc., so it is important to make the right decisions at the start. Failing to do so can be very costly in terms of lost time and money.
How to make the right technical choices on your cloud native journey
Hear about upcoming events in Scandinavia, latest tech blogs, and training in the field of Continuous Delivery and DevOps