I’ve been thinking a lot lately about the term DevOps and what it really means. This train of thought is partially inspired by my recent participation in various DevOps Days events, as well as reading the DevOps for Media and Entertainment report published by O’Reilly. So, what is DevOps? Well, it’s a bit of a loaded question.
There are several definitions of the term DevOps, though most seem to refer to its technical aspects. You may think of the CAMS model, which consists of culture, automation, measurement, and sharing. Or, consider the processes as outlined by Gene Kim: flow, feedback, and continuous improvement and learning. The DevOps book from O’Reilly focuses on technology and processes and defined the core competencies of DevOps as:
- Continuous integration
- Continuous delivery
- Dynamic cloud infrastructure
- Test automation
- Security automation
From my perspective, the human aspects, or “soft” skills, are overlooked in all of these definitions, yet they are more important. Creating a culture of communication and sharing, providing feedback, and collaborating have less to do with the tools and automation and more to do with people. I recently viewed a talk online by Hannah Foxwell talking about HumanOps, and that’s when it all clicked.
The concept of HumanOps was started by Server Density and, in my opinion, this conversation needs to be elevated when referring to DevOps. DevOps isn’t something you do or a set of tools you use, it’s about:
- The people, not the technology or the tools
- The language you use when speaking to others
- Being a better person
If we’re not maintaining the health of our teams, we can’t maintain the health of our systems. To have healthy teams we need communication and empathy.
Communication isn’t about talking with other people and having a conversation. It is about hearing what the other person is saying. Listening is often the hardest part of communication. To create good software, we need to listen to customers and coworkers. Effective communication enables us to ask the right questions and in turn solve the right problems. By listening to customers or coworkers, we can identify pain points and propose effective solutions. If the wrong question is asked or the answer isn’t understood, the end result will likely miss the mark.
Empathy is the ability to identify with another person’s feelings. This quote from Empathy is the essence of DevOps by Jeff Sussna nicely sums up the need for empathy:
“Empathy allows software makers and operators to help each other deliver the best possible functionality+operability on behalf of their customers.”
Dev and Ops need to not only empathize with one another, they need to empathize with customers, sales, marketing, customer success, etc. The goal of most organizations is to create value. If we create value for our customers, our company in turn receives value through increased customer loyalty and revenue. Empathy is the cornerstone of this.
If we listen to others without empathy, we don’t truly understand the problem. A lack of understanding results in solutions that create more pain instead of alleviating it, high burnout rates, or constant fire-fighting.
Soft skills are actually quite hard, but without them, companies and DevOps initiatives won’t succeed.