Very much the opposite of this view from 15 years ago of people who were energized by long work weeks and lots of time spent traveling for work and in offices.
I would bank money/pay off mortgage agressivley, and then as I got older I would just quit and work part time or do contract work, not having any major financial obligations and plenty of money in reserves
Now I'm feeling like there are even more responsibilities being tacked unto engineers and developers, where effectively, we are arriving at two main roles in software companies: Technologists, and Managers. Of course everyone is going to have to work more hours because everyone has more roles to take care of.
At least the software industry has been consolidating roles, and from my experience I have gone from developing, to developing, testing, managing people, communicating goals, doing presentations, and much more, when all I want to specialize in is problem solving for code. If we still had specialty roles, there would be a lot less weight on people's shoulders and they could optimize their role to a comfortable spot where they are not overworking so much.
Now that QA is gone it's just us versus them, and they have a majority ownership in the decision process.
In general it's best to "shift left" with quality control activities and write automated functional and system test scripts simultaneously with product code. Otherwise developers tend to write garbage, then pitch it over the wall to testers and wait for defect reports to come back. That back and forth is a total waste which causes long release delays.
How so? More responsibilities surely equals more work. Furthermore, if you can focus on one role, you are more likely to optimize it.
> Otherwise developers tend to write garbage,
Then the developer is not good enough. Perhaps the problem has always been a lack of appreciation of CompSci skills.
> If you're being overworked then push back, or look for a different job.
You can't really push back, you get replaced, and all jobs right now are this way. People are asking why is there a culture of overwork... this is my explanation. If we want less overworking, perhaps we should go back to DIVIDING the work such that people can properly estimate and optimize for their role and eventually find a balance that works for them. As it stands now, you can't optimize for all the responsibilities properly, and are always catching up in learning, while trying to deliver features that have tight deadlines.