For me...the rise of a billion devops tools with their own opinionated designs and syntax.
Programming is programming, and the language doesn't make a ton of difference to me, though I do have strong preferences.
But that is the -easy- part. The hard part is everything else. Jenkins? Gitlab runners? Github Actions? There are at least 5 people regularly use, all have their own way of doing things and syntax.
To Docker or not to Docker. Kubernetes? ECS? RPM? How about just lambda functions?
What about your config management.. Ansible? Chef? Puppet? Salt?
It's the worst part of switching jobs to me. Especially when feeling like you have to invest time learning a system that's falling(or even has already fallen) out of favor.
I used to love the idea of owning the whole pipeline. Now I just want to sit in a hole writing solid code, and let someone else handle all the CI and systems parts.
This is in large part what drove me out of programming to become a patent attorney. I started out as a moderately competent enterprise java backend developer who really knew his way around the major app servers.
Then things changed around me quickly, and one day I woke up and realized that I had hardly any idea what was going on any more. Cloud ops, docker, kubernetes, etc. It was exhausting trying to keep up and it made me lose interest in getting better.
I always knew I wasn't going to be a programmer forever, but modern devops stuff accelerated the transition out.
It's just a matter of a specialization. You were a backend app engineer who wasn't specialized in containers and cloud deployments. You shouldn't be expected to know everything in the software engineering landscape. The same way you're a patent attorney now and aren't expected to practice criminal law.
> You shouldn't be expected to know everything in the software engineering landscape.
I like the idea, but people keep talking about "full-stack developers" and "DevOps" (or "DevSecOps").
Also, many people seem to interpret Agile as "people are completely interchangeable", which means that you need to know all technologies used in the project, because any ticket can be assigned to you.
Good patent attorneys share with good software architects the ability to distil a design to its essence, and with good scientists the ability to detect the crucial novelty.
Interesting career move! Are you using your software skills in any way (ie does it involve software patents?) or was it just a hard gear shift because of other interests/factors?
For me...the rise of a billion devops tools with their own opinionated designs and syntax.
I'm convinced that some of the complexity is by design, or at least left around for the purposes of selling certificates and trainings. For example there's basically no reason why Terraform has to be its own language, the declarative engine can be wrapped around any other one. It's much more profitable if your tool is a "skill" to build an industry around than if it is just something that people use, easily understand, and can be done with.
Who are the customers? Are they already experts who know what they're doing and can leap over any barriers to entry in a single bound? Such a person might invite a hard-to-use technology becoming popular as it gives them more leverage when negotiating rates.
I deal with devops tooling and infrastructure a lot for my startup, so the part you consider hard is the part I consider easy. It's just a matter of specialization. Doing devops like 20-30 years ago would've been awful compared to today where there are a ton of tools with clear documentation to accomplish full CI/CD chains.
A real problem is that a lot of startups think it’s a good idea for everyone to have to do devops rather than people who know what they’re doing, and we’re all harmed for it until some devops specialists come in and undo the spaghetti
I came to the conclusion that the huge number of DevOps openings are probably because the work sucks. The team is struggling, scrum didn’t work so the next silver bullet is a complex k8ns cluster with ci/cd. The real winners however are the big cloud providers as the overweight pipelines are spun up yet again. NoOps FTW.
Programming is programming, and the language doesn't make a ton of difference to me, though I do have strong preferences.
But that is the -easy- part. The hard part is everything else. Jenkins? Gitlab runners? Github Actions? There are at least 5 people regularly use, all have their own way of doing things and syntax.
To Docker or not to Docker. Kubernetes? ECS? RPM? How about just lambda functions?
What about your config management.. Ansible? Chef? Puppet? Salt?
It's the worst part of switching jobs to me. Especially when feeling like you have to invest time learning a system that's falling(or even has already fallen) out of favor.
I used to love the idea of owning the whole pipeline. Now I just want to sit in a hole writing solid code, and let someone else handle all the CI and systems parts.