The fundamental problem is that developers do everything. Heck, even in companies where there are entire teams dedicated to the task, developers still up doing them.
Maybe it's just because organizations are short staffed, lack of training, lack of skilled specialization. I won't dwell on the causes. I'll just state the reality.
In some theoretical world, source control is handled by a separate team, environment setup is handled by a separate team, testing is handled by a separate team. Each of whom are skilled enough to tackle the challenges they face.
From what I hear from some of the 'older' folks who worked back in the day at places like Nortel, this is how it was done. I'm in Toronto, so there are a lot of such people around. I'm sure similar stories could be had from other companies.
Yet, in too many roles, Ive seen devs basically writing the test plans and cases; doing the job of the test team, which doesn't want to 'know' the product. They just want to execute a script. I've seen devs knowing more about the environment than the environment team. This is even in cases where there are dedicated teams for these functions. Sometimes devs are even creating and assigning tasks in agile environment because project management doesn't know how to break down the task.
Let me emphasize, I'm not criticizing people in test or environment. It is just what it is.
Due to so many factors, it's basically up to devs to do it all. We might be able to on some level as we're reasonably smart and investigative people, but on any large project, it eats away. Since the ultimate deliverable is what we produce, many of us take it on, probably when we shouldn't.
You won't find a brain surgeon doing Vasectomies.
You won't find a corporate lawyer in acquisitions doing divorce law.
Heck, it's rare to find an English teacher teaching calculus.
This is not to say they couldn't. I'm sure a brain surgeon could pick up what is needed to do a vasectomy given the training. But they won't just do it. That is part of being a professional is demanding professional conditions.
I've seen the software field continuously scale back on people and specialization to the point where a problem does seem complex and daunting the second something is not ideal.
Can we often hack by? Yes, but not without this great unknowing which kills the professional inside of me. Yes, I know I can setup an environment, change webserver configs, setup git, test things... but there should be dedicated people who know these well.
'Just Let me Code' might seem like a whiny statement from someone who wants work to be fun. But it really is a big problem when you look at it. Companies are understaffed and under-specialized and they're quite frankly spoiled by having a bunch of devs who are capable of hacking away at things to get them working.