Over all the books and blog posts about DevOps I've read, I've seen most of them reference the book Accelerate by Nicole Forsgren, Jez Humble, Gene Kim. I now understand why. The book presents a comprehensive overview of important DevOps practices. This by itself is super helpful.
More importantly, it delivers a research based motivation for following these practices. The authors have done extensive and convincing research, which forms the basis for the book. They have managed to link things like using version control to the commercial performance of organizations. Covering all important practices related to DevOps, they've found several interesting ways in which these practices impact companies and people positively.
Every time I had a skeptical thought about something presented in the book, it caught me off guard and addressed my skepticism. The book contains a lot of chapters focused on convincing readers about the validity of their research. They convinced me more than enough, so I could focus on the actual findings of the research and I knew how to interpret those findings.
Software has a significant impact on the commercial and non-commercial success of most companies. This has been said before, and for us as developers it feels very true. The research proves this is actually the case by correlating several software delivery factors and company performance.
One of the most interesting findings for me was the impact certain software delivery practices can have on developers themselves. For example, developers are less likely to burn out and more likely to be satisfied with their jobs if continuous delivery practices are applied in their company.
It's easy to explain what the data is showing here. Release deadlines, crunch time, big bang releases and deployment freezes all are things that cause a lot of stress for developers. Often these go together with committees and heavy processes that frustrate even more. It seems obvious that such an environment will burn out developers. When deployments become a regular event by applying continuous delivery practices, stress levels drop.
Next to the impact continuous delivery has on developers, it also has a positive impact on several metrics that are essential to the success of a system. Continuous delivery goes hand in hand with a reduced change failure rate. Smaller changes and automated deployments are likely reasons for this improvement.
Surprisingly, the amount of time spent on planned new work (versus unplanned work/rework) is also correlated with applying continuous delivery. Companies that apply continuous delivery on average spend more time on planned new work. More time spent on planned work in most cases means more time spent on those things that improve business outcomes, whatever those may be.
I imagine every company wants these benefits. "Implementing continuous delivery" or any of the other practices covered in the book is not straightforward. That's why in between the findings, you'll see actionable advice on things you can do to for example implement continuous delivery practices in your organization. This includes tons of small snippets of (researched) wisdom that I found very helpful.
As an example, data from the research showed that it is more important to have system and application configuration in version control than application code. I found there were tons of interesting tips, both for companies still new to these practices and for companies that have been applying them already in some form.
Culture is a big topic in Accelerate. As one of the first things, the concept of Westrum organizational culture is introduced. This is a scale that measures the organizational culture as experienced by an employee. Westrum defined three different types of organizations:
- Pathological (Power-oriented)
- Bureaucratic (Rule-oriented)
- Generative (Performance-oriented)
In a pathological organization, information is withheld out of fear. In a bureaucratic organization, rules are more important than the organization's mission. A generative organization focuses fully on its mission. Based on Westrum's research, generative organizations perform better and pathological ones perform worse.
These three types form a scale that predicts how well information flows in an organization. When there is less fear for sharing information, because the information is used to improve and not to blame and punish, information is shared more, and cooperation and learning improves. In this way, increased information sharing helps organizations achieve their mission. This is exactly what Westrum found:
Westrum's theory posits that organizations with better information flow function more effectively.
In Accelerate this construct of culture is analysed. They find that the Westrum organizational culture construct predicts organizational performance as well as software delivery performance and job satisfaction. This is in line with what you would expect based on Westrum's own theory.
I found the tips given to improve culture very insightful. In the end, the culture within a company is based on the behaviour and interactions of its employees. As a single employee, you can set a good example by applying the following:
- Encourage cross-functional collaboration. You can do this by "actively seeking, encouraging, and rewarding work that facilitates collaboration" and by building trust with peers in other teams.
- Create a climate of learning. You can encourage this by opening up resources/time/budget if you're able to, by creating moments and opportunities to share learnings between teams, and by creating an environment in which people feel safe taking reasonable risks and failing.
- Be transparent about your application's performance. You can do this by sharing key metrics, alerts, SLO/SLA's and failures (for example in the form of post-mortems) publicly.
If you don't have this yet, setting up a regular timeslot to share learnings between teams is a great way you can positively impact your company's culture.
I think Accelerate is an essential read for anyone who wants to understand how DevOps practices can influence or are already influencing their organization. If that's you, be sure to give it a read!