HACKER Q&A
📣 lifeplusplus

Honestly did programming jobs always sucked so hard?


I know that's a loaded question, I need to know. I've been a dev for 7ish year. At one point I was REAALLY into it, I wanted to freaking master it. Conceive the best code architecture, learn from experts, and do everything to write code that would be efficient and so great that next person would just send me gift cards out of gratitude. To code, was to write poetry but such that it was remarkably accessible. Breaking complex problems into stupidly simple poetry felt like an art. But even during that phase I realized real world isn't gonna be me writing everything from scratch but I was ok with that compromise as long as I got some time to do great things and got paid.

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?


  👤 rramadass Accepted Answer ✓
This is the Programmer equivalent of a "midlife crisis" :-)

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.


👤 d--b
Well, you could be a chef at Le Bernardin, or you could flip patties at McDonald's. You can cook for a retirement home, or sell tacos on a beach. There are at least as many ways of being a professional programmer as there are ways of cooking food for a living.

And no, not all of them suck so hard.


👤 hvgk
That’s mostly it from experience. There is so much unproductive churn these days it’s unreal. And that comes from the tech we use and the processes around it which are just a giant cargo cult.

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.


👤 burntoutfire
The process is there to squeeze out some value of out a bunch mediocre and unmotivated people that constitute most teams in most companies. I've worked in teams without much of a process and frankly, the damage that even one incompetent developer can do to the code base is really something that can justify code reviews and automated testing. Esp. if the product is a mature cash cow for the company.

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).


👤 slifin
The best workers I've seen have always been close to stakeholders and have a large set of permissions and a high degree of autonomy

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


👤 square_usual
It's a bit trite to say this, but if you can afford it, you should strike out on your own. Programming in large orgs is what you say it is - extremely process driven - but in your own space, you call the shots. It's not inconceivable that you'll rediscover the need for process yourself!

👤 floydian10
> programming as a job has become very laborious and boring, processes driven and needlessly complex

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.


👤 GianFabien
I feel your pain. I've been working in IT for several decades but not in SV nor NY. For the most part what you describe is the REALITY.

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.


👤 emteycz
Agreed completely, but it's all in our hands. We have the unique opportunity to create startups out of thin air, unlike all the other people like PMs and BAs.

And if business is not your cup of tea, keep searching for better companies and teams, you'll find a good one someday.


👤 Zigurd
It seems like what you are describing is a code maintenance job. If that's right, there are answers to your questions in that context:

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.


👤 da-x
One problem with this field is that the 'art' is different than the 'work', meaning that if you want to marvel in your creations and output beautiful, readable, documented, and properly refactored code, you usually don't have the time to do so because you are under a time constraint and to deliver a product. Here's management is important - if in addition the requirements constantly change and you're battling to get something QA'ed and stabilized, it gets even worse.

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.


👤 readonthegoapp
you burned out on dev, and programming and IT in general have become much more sucky over the past 25 years. prob even before i started.

there are prob other models, but we're too lazy and/or incompetent to figure them out.