All roads lead to culture
There are many people in the tech industry—some very influential—who believe that the adoption of CD and/or DevOps simply amounts to implementing some technical tools and then making slight tweaks to existing heavyweight processes to potentially allow software to be released every few weeks/months.
Worse still, some see this as a bona fide reason to set up a new DevOps team inside the existing organization that—all things considered—spend their time building and implementing tools and processes that make little or no difference to successful delivery of quality software.
If you believe these views to be correct, then you are simply wrong at best and delusional at worst. Just to reiterate, CD and DevOps are—put very simply—agile ways of working. The DevOps tools are just that—tools. When we say ways of working, we're not simply talking standard operation procedures or HR policies here, we're talking about the default way in which people work, think, and behave.
Just like any other efficient and effective ways of working, CD and DevOps are only as good as the culture and environment in which people work and the behaviors they exhibit. All of which play a massive part in the success or failure of adoption of any change:
When we talk about culture, this mainly refers to corporate and organizational culture rather than geographical, geo-political, or social group culture. That said, these can also have some bearing on how people behave, therefore you should be cognizant of this. For example, if you were to consider a culture that values and respects social hierarchy over individual views and opinions, then those self-same individuals may see openness and honesty as an unnatural or alien concept—or at the very least, may feel uncomfortable with the approach. This can also lead to individuals verbally accepting change simply because someone above them has asked (or instructed) then to do so—not because they personally believe in it.
Although you should be mindful of people's cultural values and motivations, you should not let this dictate or define your approach—you should simply accommodate them along the way.
The sorts of cultural and environmental aspects that are not conducive to successful adoption of CD or DevOps include the following:
- Barriers or power struggles between teams
- Silos across your organization
- Ineffective lines of communication
- Rigid, old-school hierarchies
- Strong embedded beliefs that how things have always been done is best
- Dysfunctional leadership
- The business is resistant to change
- Avoidance of learning from failure
- Command and control
Attempting to implement CD or DevOps in an environment where these are prevalent, without addressing the underlying and overarching cultural issues that sustain them, will ultimately lead to failure.
You may be reading this and thinking that you may have worked in (or work in) a business that has adopted CD or DevOps and be thinking that some/all of the preceding points do apply but on the whole things seem to be working well. The key phrase here is seem to be, which, if you were to apply it to other everyday scenarios, you wouldn't accept as readily:
- I checked the brakes on your car and things seem to be working
- I pulled together a fix for the DDOS defect that could expose personal details of 3 million active users and things seem to be working
- I investigated the reported payroll system issues and things seem to be working
- We've constantly lost 10% of our customer base over the last three quarters, but since the recent organizational changes and headcount reductions, things seem to be working
As you can see, perception can be a powerfully misleading thing and can set a false sense of security. If you were to change seem to be with are in the previous examples, you will notice the way in which you perceive the statements would be very different.
If you then apply this rule to your thinking in relation to your organization's CD and DevOps adoption, you may struggle to apply are within the statement as freely because the culture and behaviors of people involved are not as they should be. To effectively change seem to be to are, you need a positive and progressive culture to work in.