Devops Engineer — the Swiss Army Knife

Thilo Hermann
5 min readMay 21, 2021

The perfect DevOps Engineer needs a lot of skills to fulfill his job. You can imagine the “job advertisement” being 20 years old and having 15 years of experience in a,b,c,d, …,z. Even if this is not the case, we expect a lot of those DevOps Engineers.

There are a lot of different definitions what “DevOps” exactly is. To keep it simple we start with the following definition from Wikipedia: “DevOps is a set of practices that combines software development (Dev) and IT operations (Ops). It aims to shorten the systems development life cycle and provide continuous delivery with high software quality.” (see https://en.wikipedia.org/wiki/DevOps)

DevOps Engineer

According to this definition a DevOps Engineer must cover Development & Operational tasks. Let’s start with the Development tasks:

Nowadays with Cloud and Microservices the variety of technologies is huge: Programming Languages, Middleware, Databases, UI-Frameworks, Messaging, Events, Libraries, APIs, Generators, Tools, and Software Development Environments. This can and will change over time so continuous learning and adjustment is needed. Typically, DevOps-teams tend to “try” new things early which makes it even more tricky. The paradigm to improve and automate as much as possible feeds this pattern. The danger is that you end up with a zoo of technologies which makes it hard to maintain it.

One special topic is automation and all the related tools with it. This is key to shorten the turn-around times and the base for continuous delivery. Within development the automation of tests is very important to be taken care of right from the beginning. The bad news is that it never stops, thus you need to create new tests over and over and you must keep the existing ones up and running. Handling of test data (synthetic) is key and cannot be overestimated.

Let’s move on to the Operational tasks:

Of course, the mastering of all operational tasks is something where tons of tools and scripting languages come into play and they often must interact and get connected. Just to name a few of them: DevOps-Toolchains, Scripting, Monitoring, Logging, Cloud Consoles, and Operating Systems.

Infrastructure as Code (IaC) is very powerful, but also something one must master to succeed. With the rise of Containers, a lot of typical problems like (it works on the Development environment, but not on the Production environment) are solved. You should be aware that this also imposes a complexity that needs to be handled. Especially error handling and analysis can be challenging in a container environment.

The other challenge is 24/7 Ops. How to handle that in a DevOps based operating model. The simple answer is that almost everything needs to be automated and very well tested, thus there are no Ops task which must be done during off-hours. Even if you automate like hell you often end up with “on-call duty” to be on the safe side if something is going completely haywire. This is a challenge especially in countries with legal constraints on the amount of “on-call duty” time for single team members.

As stated in the beginning there are several definitions around DevOps. So, we can add another dimension: Business. So even if DevOps is complementary to Agile they should be first class citizens and the Digital Transformation often is based on an organizational change “Product Orientation” we combine DevOps with Agile and end up in:

BizDevOps Engineer

The DevOps Engineer as part of the Agile/DevOps-Team also must be able to bridge the gap between Business and Development, thus he or she needs to take care about the requirements of the Business. It’s crucial that they understand the Business. As BizDevOps-teams talk directly to the Business (as Agile-teams do), they need to work together with them and translate “Business Demands” into Epics, User Stories and finally into working Software. Over time the BizDevOps-team will learn the Business terms and thinking, but in the beginning, it is something where you must proactively work on and another skill to add to your portfolio. So besides bridging the gap between Dev and Ops, you need to build another bridge to the Business.

Finally, we can add another dimension: Security.

BizDevSecOps Engineer

On top of maintenance it’s a challenge to keep the application secure. The STRIDE Threat Model can be helpful to identify, reason and categorize given threads to your application (see https://en.wikipedia.org/wiki/STRIDE_(security)). Cyber security and the automation of respective tests and development process needs expertise and constant observation and improvement. Once a vulnerability is identified the needed patches needs to be applied and sometimes you might even need to replace a given part because there is no patch for a known security leak.

Swiss Army Knife Engineer

So, it’s obvious that being part of a DevOps-Team with the task to master all these complex topics and environments is nothing for cowards.

At one point I realized that the expected skill profile is comparable to a Swiss Army Knife. Those knifes have a lot of tools embedded and for almost all “outdoor” tasks you will find something. There is for sure a knife to cut things, but you’ll also find a small saw which can be very handy in case a knife is not sufficient to cut wood, the can opener is essential once you get hungry, … and much more.

The problem with this is that not all of us are capable to fulfill these demands. We’re not living in a perfect world; thus, we need to adjust to the reality. In the end the DevOps-Team must be able to fulfill all of this and not one single team member. It will be challenging to create a backlog including a meaningful prioritization that utilizes all team members fully (specialization is your enemy). The more “Swiss Army Knives” you have, the better!

If you are a “Swiss Army Knife” you should be aware that you are a scarce resource and you are of high value for your team and your company! This can be helpful for discussions around promotions and salary …

By the way this analogy holds also true for every other multi-tool (e.g. a Leatherman), but I prefer the Swiss one due to the fact that I was born nearby Switzerland and my grandfather gave me a “Swiss Army Knife” once I was old enough to carry one.

To practice my “Swizzerdütsch”,

Uf Wiederluege …

--

--

Thilo Hermann

Thilo has more than 25 years of experience in IT Architecture and worked for several clients in Germany. He’s located in Stuttgart and works at Capgemini.