There are many areas of culture change that are required in order to develop a DevOps culture and the fact is that many of these areas of culture change are all too often mistakenly viewed as tool or process issues instead of what they really entail and that is culture change. Below we will discuss a few specifics of what these areas of culture change include.
One of the first areas of culture change that comes to mind is Unit testing, which almost universally is viewed in many organizations as being a tool, process or even developer skill issue. This is a false assumption by most organizations, Unit testing is very much a cultural change issue. If we look closely at Unit testing, we find that most organizations already have most of the tooling in place to accomplish Unit testing, many organizations have brought in consultants/trainers to show their developers how to write Unit tests, these organizations have probably had initiatives to start Unit testing and they have probably planned for the inclusion of Unit testing in their Agile iterations, so then why are none of them doing Unit testing? The reason is that they have failed to understand that adopting Unit testing is a culture change issue and that unless they are up to breaking down the cultural barriers surrounding Unit testing they will never be successful in implementing Unit testing.
Another cultural change issue that is often misunderstood is the concept of iterative development and incremental releases.iterative development and incremental releases. The concept of getting every developer to write small snippets of code and then test the code and finally check it in immediately sounds like a fairly straight forward concept, but we have to ask why can’t most organizations accomplish this? Again, we are discussing a cultural change and not a tool or process issue. Over the years the culture of software development has been to create branching strategies that are often long lived and for developers to hold onto their code and only occasionally check code in. Breaking this model that has been ingrained into the organizational processes and individual developers means overcoming cultural barriers and not simply moving to a new source code repository tool.