Now I feel completely disillusioned with the field, I need to know if it's due to field becoming completely trash or me misjudging what 9-5 was gonna be like. At first I said to myself, I'm jr so it'll get better. I'm lead now, it didn't get better.
Avg day: Get ticket written by dispassionate PM about something irrelevant and outdated base, write 30 tests, debug it for days, push changes, get handed another equally useless set of tickets. Repeat for a year, get promotion or find new job, then repeat again.
Why are there so many PMs? Why agile/scrum is even a thing? What's with infinite tests? Why so much code is being written to do so little?
If you have been a dev for 12+ years, please tell me am I right in thinking that programming as a job has become very labrious and boring, processes driven and needlessly complex?
The "Industry" is squarely to blame for this sorry state of affairs by trying to do everything cheaper, faster, fad dependent, management controlled, focused on short-term bottomline and in a word, trying to "factory style industrialize" Programming.
The "Art, Joy and Creativity of Programming" have all been banished and there is only "Drudgery" to suffer through in most companies. Countless "Bullshit Jobs" have been created (eg. Scrum Master) which add no value whatsoever and even worse, they are given power over the "Real Engineers". In order to justify their existence they invent unneeded processes and insert themselves into the management hierarchy. "Engineers/Engineering" are no longer considered central but merely "Resources" to be "Managed" and "output extracted from" in service of an imaginary "Market Value". You have been reduced to being a "Cog in the Wheel" with your Individuality/Identity/Confidence stripped away and told that is the "Normal Order" of things.
So how do you deal with it?
* Start by saying "No" to every useless/pointless request. Refuse to participate if it adds no value. Be blunt so the message gets across.
* Treat it as a standard 9-5 job and keep the quest for "Art, Joy and Creativity" separate.
* Team up with like-minded Programmers to Brainstorm/Discuss ideas to Motivate/Recharge the "little grey cells".
* Find something interesting (eg. Optimization, Formal Methods etc.) and start studying it for Intellectual Satisfaction i.e. "Knowledge for Knowledge's sake". Keep your Job's needs separate from your Self's needs.
Finally, always keep in mind the fine balance between Pragmatism and Idealism and when to give up one for the other i.e. the need for a paycheck vs. the need for intellectual satisfaction.
And no, not all of them suck so hard.
Work out what you can salvage from it, salvage it, and walk for a smaller or at least different company. That’s all I can suggest.
One thing I have learned is that if you’re not happy, don’t keep doing it. It’s not worth it.
BTW if you want to work differently, maybe early stage (pre-VC) startups are for you? They usually don't have time and money for process - no code reviews, no CI/CD, few tests. Also, game industry doesn't do any of that as far as I know (they have a lot of other issues though).
Today everyone is scared or unable to give those things to juniors so we lean on agile processes instead
The funny thing is if you read the agile manifesto it explicitly promotes "people" over processes
My experience is that I have been abstracted further and further away from my work, in both being able to do it myself and seeing the results of it and being able to understand it from a stakeholder perspective, by processes
I've seen programmers explicitly say they don't want to think about these things but I don't think we know what we're trading away
It's been mostly my experience, yes. I think it's the inevitable outcome of droves of people getting into software companies because of the salaries, and pushing mostly unnecessary processes and red tape onto devs. These days I barely have freedom to touch a staging DB, and I don't even work in a large org.
With the exception of startups and personal projects, programming is about getting business goals met. The PMs are just as burnt out as you are. They are getting masses of user requests, management demands and other "inputs". They are running interference and doing their best to ensure that at least some demands are satisfied. 95% of programming work is maintenance - bug fixing, feature additions, interfaces for new data sources, etc.
In large corporations it is mostly about fixing what the vendors and highly-paid-consultants promised and failed to deliver. Working for the global consulting firms is the same grind, but wearing more expensive suits - unless you are working in an off-shore sweatshop.
And if business is not your cup of tea, keep searching for better companies and teams, you'll find a good one someday.
1. "Why agile/scrum is even a thing?" Mainly because new development projects benefit from Agile. If you are responding to tickets, all you need is a trouble ticket system. That's not Agile. It's just a bug list with tracking. Which is what Jira was before Agile became fashionable and Jira has to become Agile.
2. "What's with infinite tests? Why so much code is being written to do so little?" Because regressions suck and management would rather pay you to be belt-and-suspenders than have surprises. Good? Bad? Depends.
3. PMs? Project managers or product managers? Or product owners (Agile jargon alert)? Same principle as why so much test code: Management wants to have a documented task that is documented as complete. Dull and bureaucratic, but perhaps appropriate to maintenance tasks.
That's why I balance this with my own toy projects and open source work. In open source, there are usually no deadlines, and so it comes as a better substrate for for creativity.
there are prob other models, but we're too lazy and/or incompetent to figure them out.