Surely it's often case that life has people in this sort of scenario and there is no realistic way to a new path. In that case, sure, take care of your loved ones and yourself, stay put, and make the most of it. This scenario arises from the messy mix of circumstances and decisions. There is no blame.
But! "Change jobs if you must", must, be changed to "Change jobs if you can.", especially for younger people. It's not mature to accept an unfulfilling job. It's a life-scale bummer. Tenaciously go after fulfilling work. Don't write off 1/3 of your remaining life. An approach that worked for me: distance yourself from the profit motive. It's not that hard.
The grass is always greener on the other side of the fence.
The problem with cog in the machine analogies is that people only think of the plus sides of having more input in decision making processes.
What people generally ignore is the added responsibility and liability that comes with being more invested in the decision making process. In my experience, after you start holding people accountable for making the wrong decisions, most people quickly go back to being happy about being a cog in the machine and taking orders from someone else. For the few who enjoy calling the shots and accepting the blame when things go wrong, you can always move up into management.
In most companies, accepting blame is career suicide. Most people who move up in management are good at taking credit for wins and pinning down someone else for failures, or moving on to different projects before their decisions come back to bite them. And that's the kind of management that leads to broken process that the OP mentioned in the article.
For many (probably most) people all jobs available to them will be unfulfilling. For the rest, many of the jobs can be fulfilling, but have unreasonable demands, like concentrating for 40 hours a week and constant stress.
Obviously everyone's body and mind are different and if yours can easily deal with stress and 40 hours a week of concentration, then go look for a fulfilling job. If you're like me, on the other hand, you will burn out due to weariness even in what is supposedly your dream job. In such case, the only way to win is to make as much money as possible and retire early. The alternative - working while constantly tired and grumpy till you're 65 - is grim.
I don’t think this is a good solution. It is certainly “A” solution, and one that many folks pick.
Software Development is ALL about creativity. It’s really hard to make computers work; the best developers make them sing. Time and again I’ve seen fairly mundane teams hire an engineer with the energy and drive to push the boundaries of what’s possible and end up doing great work. I do think that developers can be agents of change this way; it’s not easy but it’s possible. And it can be very fulfilling and inspiring to be both someone who benefits from great work and to be a person that does great work.
I do agree that life may decide your priorities for you at times. Kids, spouses, relationships are all very important and compete for time and at some point you have to decide if it’s worth it to put in extra to do great work. It doesn’t mean though that Software Engineering is devoid of creativity. It’s been pointed out that software engineers can be one of the most productive assets of a company, and that productivity isn’t achieved by magic but by creative problem solving.
At the end of the day, if you got hit by a bus, your company would send flowers to your funeral and have an open req for your position before your body was buried.
Which is exactly what I expect them to do. Its a business and not a family. They compensated me for my work, I don't expect them to cry for me when I'm gone, but to hire someone immediately to continue the business.
I do see your point but the difference is that in my perspective the emotional attachment to something I build lasts only as long as I'm building it. Once the thing is delivered, its up to the users to ultimately decide to use it or discard it. I think my emotional attachment is to the process of building things rather than to the thing produced by the process.
I do agree that if you want to see the thing you built get used then yes, very bad idea to get attached to that emotionally. But the way I see it, after its built its out of my hands.
I worked at a startup where the founder thought he was irreplaceable since he was the only one who knew how to modify and compile the custom C/MFC custom IDE/VM/compiler that he developed and everyone in the company had been using for years before I got there.
They somehow convinced him to show me how everything worked since I was the only person who had a C++/MFC low level optimization background. As soon as they were comfortable that I could do it, the board pushed him out, laid off a bunch of other developers and gave me the responsibility.
His name was never mentioned again.
If a crappy PM wastes an engineer’s time by having them churn out useless product features, the PM is ruining their own career and the career of the engineers.
It’s important to work on meaningful work in order to have a meaningful career. That doesn’t mean everyone needs to heal the sick, but it can mean a PM doesn’t waste my time making me do stupid shit like build a feature no one uses.
It’s very difficult to level up if you never build anything worthwhile. PM’s should focus on getting it right the first time or not doing it all, because in the world of software development, adding technical debt for something not worth anything anyway is worth less than doing nothing at all
Or if a new job can offer you a better deal. If these jobs are all interchangeable, then you may as well interchange them for what benefits you most.