DevOps – the merging of software development with its deployment and operation – has been one of the hottest topics in ICT over recent years. DevOps shares much common ground with Agile project management, putting an emphasis on fast iteration and achieving concrete outcomes for the customer.
The advantages promised by DevOps are compelling, offering faster speed to market, rapid bug fixes and increased responsiveness to customer needs. However, putting DevOps into practice can present challenges.
The Gartner 2017 Enterprise DevOps Survey (Gartner subscription required) found 88% of respondents believed that culture was key to successfully scale DevOps.
However, three years later, the conversation about DevOps adoption is still dominated by what technology is used. In this blog, we will look at why any successful DevOps adoption can only start with cultural change.
It is interesting that most conversations on DevOps focus on tooling and not team behaviors. To successfully adopt a true DevOps culture we need to take a centrally orchestrated group of individual contributors, and change them into a self-organizing team collaborating to achieve a collective outcome.
A suitable analogy would be turning a ballet troop into a great rugby team.
The idea that this could be done by changing what tools or kit the new rugby team use, underlines the shortcomings of the idea that adopting DevOps is a technology-led change.
What actually is DevOps?
As there is no commonly accepted definition of what DevOps actually is, it is helpful to abstract away from the ‘how’, and look at ‘why’ you want a DevOps culture. A DevOps culture is one in which different roles collaborate effectively to deliver a better outcome. Most people can agree with this intent, even if they disagree on how it becomes a reality.
DevOps starts with culture change, not tech
Increasing collaboration is about changing how people behave. This puts adopting a DevOps culture squarely in the realm of cultural change.
Culture change is a long term, gritty, and complex endeavor that needs strong leadership and vision. A general rule of change is it succeeds if, and only if, the pain of change is less than the pain of staying the same.
Senior leaders need to make sure that this fundamental rule is met by pulling the levers available to them. Once they have done this they need to have the fortitude to keep them there. The work of John P. Kotter (Leading Change) outlines that this is the only place to start if you are to be successful in your intent to have a true DevOps culture.
Collaboration vs Co-operation
To succeed in adopting a DevOps culture you need to ensure you are clear on the distinction between Collaboration and Cooperation.
Collaboration is “the action of working with someone to produce something” i.e. the Rugby Team.
Cooperation is “the process of groups working or acting together for common, mutual, or some underlying benefit” i.e. the Ballet troop.
The tools and behaviors needed to increase collaboration are fundamentally different from those to increase co-operation. Increasing collaboration is done by improving intra-personal relationships, by increasing trust, clarity, and communication. Whereas Cooperation is typically an inter-team relationship, which is improved by the creation of processes, interfaces, and contracts.
Shifting the Organization
Commonly, if we want to adopt a DevOps approach in a traditional IT organization, which is organized in vertical technical silos (e.g. Storage, Database, Networks) we need to remove the structural barriers to collaboration. This can be done most efficiently by shifting the organization 90 degrees to outcome-aligned, multi-skilled teams. To achieve this there is no shortcut to the heavy lifting of organizational change, that needs the same change leadership and vision defined above.
The key to successfully adopting a DevOps culture is increasing collaboration within an organization. This means we need to change behaviors thus making it a longer and more nuanced endeavor.
Given the paradigm that technology is never “the” solution, it merely assists or accelerates a process. If you start with technology, all you are going to get is a common tool where you either encode your current non DevOps processes, or have to create and encode a new process. Either way, if there is not a sufficient need to change then any new tool won’t be widely adopted or owned by those using it.
To adopt a DevOps culture successfully we need to address culture and organizational transformation. Leaders need to create sufficient desire to change, re-organize to empower teams to be outcome aligned, and allow them to define their own ways of working.
Only once those steps are successfully implemented then we can address the question of the DevOps tooling - and begin to achieve the benefits of this powerful approach.