Overall, there has been a small skills revolution in IT over the last few years. Now, every ops job requires a couple of programming languages that the candidate must know. And that’s great because without programming skills, it’s impossible to maintain modern complex systems.
Unfortunately, there hasn’t been such a revolution for developer jobs yet. They don’t require any ops skills, although ops skills have long been a clear necessity. If you’ve never serviced your own software, you don’t know what problems it might have, what logs and metrics are missing to solve these problems, and as a result, you write code that is difficult for others to maintain in production. Ops skills also allow you to have a clear understanding of the environment in which your service is running, and without that, you cannot write good software. If you don’t understand how Kubernetes deploys your application, you can lose data because you forgot to handle application termination properly. If you don’t understand how logs/metrics are collected and in what formats, you can’t debug system failures.
In general, the conclusion is that ops has long included programming in its gentleman’s set, and it’s time for dev to catch up and learn how to operate.
You can listen to the second episode of o11ycast on this topic: Ep. #2, Observable DevOps with Christina Noren of CloudBees