Join my daily Newsletter

Subscribe to get my latest content by email.

    I respect your privacy. Unsubscribe at any time.

    preloader

    DevOps engineers don't exist!

    • Thursday, Feb 1, 2018
    blog-image

    I can hear you shout all the way over here: “Luca, are you mad? I see the job adverts every day; I get recruiters pestering me all the damn time. Of course there are DevOps engineers. It says so right here!”

    DevOps is about automation, and infrastructure as code, some say

    Some people will tell you that DevOps is about setting up CI with Jenkins, Dockerising your infrastructure, Terraforming your company.

    Others will tell you it’s about shifting your product to microservices.

    They’re all missing the forest for the trees.

    No. DevOps is about communication

    Those hypothetical (but very much existing!) persons I quoted are wrong!

    Predictable environments, automation, etc. are not the goal, they’re merely means to an end.

    The end is creating a continuous chain of communication from the initial ideas (initiated by customer demand), through development, testing, and production (where satisfaction of that customer demand is). This communication chain enables many, fast feedback loops, which in turn leads to higher product quality.

    So CI isn’t about automation (even though automation is the means), it’s about always getting near-immediate feedback about the quality of the code you just wrote: will it even compile? Do the tests run? Is the linter happy? Etc.

    To take an example further along the creation graph: monitoring in production also gives you immediate feedback. First, blatantly: is the latest deployment stable? But also more subtly: how is it affecting system load? And most importantly: how are users interacting with it? Maybe we pushed a new feature, and nobody’s using it – have they even found it yet? Maybe our UI isn’t good at highlighting the new function, and should be reworked.

    All of these facets enable a DevOps organisation to immediately and intimately understand what they’re building, and react to what they observe.

    All that talk about Docker and k8s and all the rest is just a distraction. Yes, they’re superbly useful tools, but don’t mistake the hammer for the carpenter.

    DevOps is Agile on steroids. And Agile is about people

    In my opinion, DevOps is the natural progression of Agile. One tenet of agile was to have cross-functional teams – DevOps just casts a wider net, and gains additional feedback loops.

    All the people who reduce DevOps to tools and technologies are putting the cart before the horse IMO. The technologies may enable feedback loops and all the good stuff, but they have no value on their own.

    This is why the role of a “DevOps engineer” makes as much sense as that of a “Scrum engineer” – that is to say, none. This is a team sport. There can be an “automation engineer” or “platform engineer” role perhaps: that is, someone who specialises in building tools to enable DevOps teams to perform better, have more and faster feedback loops. But the value is in the loops, not the tools. And they are very much part of, and servants to, that team.

    _(if you remember reading this elsewhere: congratulations, you uncovered my secret Reddit identity ;-)