If there’s a buzzword in technology in the last few years, it’s DevOps. As soon as someone mentions DevOps, a list of tools usually follows: Kubernetes, Docker, Jenkins, Terraform, AWS . . . you name it.
But how do you start a DevOps transformation? What is the relationship between these tools and DevOps? Does adopting them mean you are now working in a DevOps environment? Is DevOps a list of tools and technologies? Let’s start at the beginning, with the most basic question: what exactly is DevOps?
First off, the etymology of the word: DevOps is a combination of Development and Operations, two areas traditionally independent in an organizational structure. DevOps is a methodology that aims at aligning and combining them. But why?
The main goal of DevOps is simple: delivering value frequently and efficiently. To do so, organizations need to speed up the time to market and apply incremental changes in response to customer feedback and changing environments by creating a more streamlined development process. And the most effective way to achieve this is—you guessed it, combining the Development and the Operations teams or, in other terms, by implementing DevOps.
Debunking DevOps Myths
“You first need to make sure everyone understands that DevOps isn’t a technical problem or a job description. It is a change in how the entire organization operates . . . . have a transparent way to continuously show how you are improving, nurture grassroots excitement and communities, make tools easy and self-service, give the teams the problem of how to deliver better, give them any support they need to do that, and get out of their way.”
— Bryan Finster, Value Stream Architect, Walmart DevOps Dojo, Walmart
By now, you should have started to realize that, against some common wrong beliefs, DevOps is not:
- A job title
- A team
- A technology
- A bunch of tools
- Automating everything without purpose
Rather, DevOps is a methodology deriving from the Agile way of working, and built on the following practices:
While the three middle points lean towards the tools and technologies that can be used in a DevOps environment, the first and last ones are about people and communication. This is because DevOps is much more about a cultural change than a technological one.
DevOps is a mental model transformation of the entire organization for better organizational agility. It is a methodology, a culture, a workstyle. It is a way of bringing together everyone in an organization, from developers to operations engineers or product managers, and making them work together towards a common vision. In doing so, one element is key: communication.
How You Can Bridge the Gaps and Kickstart a Cultural Shift
Starting a DevOps transformation in your organization is hard. Mostly because, as we pointed out, adopting DevOps requires a cultural change, and there is nothing that changes as slowly and hardly as culture.
To change toward a DevOps environment, people in your organization need to step out of their comfort zone. They need to start collaborating with colleagues and areas of the company they are not used to. They need to abandon their old habits and embrace new ways of working. And they must assume new responsibilities. All of this is hard for employees — or human beings, for that matter — to do.
Humans are creatures of habit. If your organization has followed certain practices for years or even decades, you can’t expect people to radically alter their way of working overnight.
But change is possible, and it is in your hands. Let’s see some practical ways in which you can bring a DevOps transformation onto your organization.
How To Start a DevOps Transformation?
5 Tips for Quick Wins
As a leader, how can you show the way to start a DevOps transformation? Which steps can you take to lead your organization towards the adoption of DevOps? We gathered some tips that, when implemented, will result in quick wins and drive you to the results you want to achieve.
1. Adopt Transparent Communication
The most fundamental element for a successful DevOps transformation is communication. Start here. Make it clear for everyone in your organization what this change is about, and how they can adopt it in their daily tasks. One pillar of Transformational Leadership is inspirational communication. DORA’s research on Transformational Leadership shows that “effective transformational leaders influence software delivery performance by enabling the adoption of technical and product management capabilities and practices by practitioners, which in turn drives the outcomes leaders care about.”
2. Inspire Change Leading by Example
Change, especially cultural change, takes time. As a manager or a top level executive, you should lead by example. Start embracing the DevOps methodology and make this clear across your organization. But don’t stop there. DevOps won’t stay in your company in the long run if it doesn’t reach everyone, from top to bottom.
3. Redefine the Meaning of “Failure”
A DevOps environment pushes for constant iterations, prioritizing agility over perfectionism. This goes against traditional organizational models that many of your team members might be accustomed to. Therefore, they will resist the change because they are afraid to fail — in traditional organizations, failure is an undesired outcome with negative consequences.
Making people in your organization feel liberated to fail empowers them to push boundaries and experiment, and to embrace the “fail fast, fail often, recover quickly” way of working that DevOps requires.
Communicate this openly across your organization and motivate people to adopt this attitude without fear.
4. Foster Trust and Collaboration
As we stated, people in the organization will need to collaborate across teams to implement DevOps. Therefore, it is crucial that the organization fosters an environment where this is appreciated and incentivized. Instead of having several independent teams, aim at making everyone feel part of one big team.
Rather than micromanaging, give people freedom. Trust them. They will naturally self-organize and generate change that is right and safe for the organization.
Consider empowering your teams by practicing radical candor, a management philosophy focused on “caring personally while challenging directly. Radical Candor is guidance and feedback that’s both kind and clear, specific, and sincere.”
5. Focus on Automation
While tools are not at the core of DevOps, they can be of great help in achieving something fundamental: automation. The goal of adopting DevOps is to work in fast iterative cycles, allowing continuous improvement and faster responses to feedback. Naturally, having tools to assist with this helps a great deal.
George Miranda, engineer at PagerDuty, emphasizes the importance of automated processes: “[Since] computers are much faster at building and deploying software than their human counterparts, it’s important for those humans to rigorously capture all of the steps necessary to safely make changes to their running services. By automating all of those steps, machines can be trained to deploy software faster, safer and more reliably than ever.”
This is where tools like Kubernetes, Docker, Jfrog, Terraform, Slack, AWS, and so on can help you building your automation capabilities, freeing up the developers from routine activities and allowing them to focus on issues that will help the business.
“Start with small experiments. Find a few small teams who are interested. Measure how they are delivering today. Start improving things and publish the results frequently. Track what worked, what didn’t work, and how the team feels. Hope you have leadership who want a better organization and have long-term vision. Pro tip: do not form a team of ’10x Devs.’ Start with teams that already know each other. Having an existing team improve removes lots of ‘unicorn team’ arguments and goes much faster.”— Bryan Finster, Value Stream Architect, Walmart DevOps Dojo, Walmart
Some say DevOps brings the operations team closer to development. While this can be true, there is a higher level that can be achieved: bringing every unit of the business closer together.
It is only when an organization has cross functional teams, with every single one contributing to the same end goal, that DevOps is truly implemented. After all, different teams are just like parts of a body: they are separate but need each other to survive, and to thrive.
As we’ve seen, this can be a hard challenge to overcome, but one that you can conquer by taking some steps:
- Adopt transparent communication
- Push change from the top
- Redefine the meaning of “failure”
- Foster trust and collaboration
- Focus on automation
And maybe the most important tip of all: the best time to start is now.
Co-founder of Buildingbettersoftware and Agile Leadership Coach
Søren Pedersen is a strategic leadership consultant and international speaker. With more than fifteen years of software development experience at LEGO, Bang & Olufsen, and Systematic, Pedersen knows how to help clients meet their digital transformation goals by obtaining organizational efficiency, alignment, and quality assurance across organizational hierarchies and value chains. Using Agile methodologies, he specializes in value stream conversion, leadership coaching, and transformation project analysis and execution. He’s spoken at DevOps London, is a contributor for The DevOps Institute, and is a Certified Scrum Master and Product Owner.
You can find more of his writing at https://agilerasmus.com/wordpress/
Value Stream Optimization?
We specialize in analysing and optimizing value streams.