“What does DevOps mean to you?” I’m currently looking for my next DevOps job, so I’ve been asked this in a few interviews. Why would someone ask me that? I’m not asking that sarcastically. It’s a serious question — why would a potential employer ask me, a DevOps professional, what the word means? To me?
Is it a technical question? No. Technical questions generally have a “correct” answer. There is no “correct” answer to the question, because there’s no industry consensus. There are a whole lot of different things we can point to and say “That’s DevOps” — and obviously, none are complete, because there are other “DevOps” things outside the scope of the thing we’re currently calling “DevOps”.
Is it an opinion question? I don’t believe so. Opinions are largely about taking sides on an issue, partly in opposition to other sides on the issue. But it’s not like the people who say “DevOps is a set of tools” are right and people who say “DevOps is a culture” are wrong (although the “We are gonna hold a bunch of meetings and then buy the DevOps and then all our problems will go away” people are clearly wrong).
Everyone who can be considered a “DevOps professional” will have a different answer. Most of them will be right. It’s not a question of fact, or of opinion — it’s a question of focus. Of concerns, and experience. Of temperament. And more. How a DevOps professional answers “What does DevOps mean to you?” says a great deal about who they are, and how they will do their work.
We still haven’t fully answered my question to the question, though — why even ask the question? And when I see those faces looking at me expectantly across the table, I think they’re not just trying to learn about me. They’re trying to learn about themselves. They’re trying to broaden their own perspective, to be able to better answer the question when someone asks it of them.
Oh yeah, the point.
Of course, one of the goals of a job interview is to look smarter than you actually are. So you need an answer. My schtick is sounding wise, but part of sounding wise (as opposed to being wise, which mostly involves keeping one’s big mouth shut) is not wandering off into the deep weeds of metaphysics and boring the crap out of people you’re trying to impress. And do it fast, because the clock is ticking…
So what does DevOps mean to me? To me, DevOps is about how we communicate about software development between human beings — specifically, turning vague words into precise, machine-readable form. In the simplest case, where developers write the software, and then “throw it over the wall” for operations to deploy it, DevOps is about creating a shared and precise language, no longer open to interpretation or confusion.
In this case, automation is not an end in itself, but merely a means to an end. Errors in the build/test/deploy cycle can be split into two classes — bugs, and human error. Human error happens because humans are imprecise. We misread things. We miswrite things. We mistype things. And worse.
If you don’t provide the automation with everything it needs, it doesn’t work, period. If you give it complete and correct information, and it doesn’t have bugs, it works. If it has bugs, you fix them and then it works. And you can always understand even highly complex processes, because they are written down precisely, in a form that is readable by both humans and machines.
The pressure to do faster, more hands-off cycles is as much about reducing error as it is about increasing throughput. Faster cycles amplify bugs and human errors, making them more painful. What’s tolerable and worked around once every three months is horrendous once every three hours — so you fix it. You automate it. Quality goes up, and stress goes down.
Humans become frustrated, angry, and demoralized when they fail to understand each other. The DevOps push to standardize communication across people and teams into machine-readable automation eliminates misunderstandings. The plain meaning of one person appears in the code and configuration acted on by another.
And here, we’re getting to the point — DevOps is a way of automating happiness. When we can do our work without the frustrations of miscommunication, we enjoy the work without fearing pain as a consequence of the work. Automated happiness. I love living in the future.
So… what does DevOps mean to you? Leave your answer in the comments!