9 ms·
Ask HN: 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?
- hvgk 5y agoThat’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.
- emteycz 5y agoAgreed 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.
- square_usual 5y agoIt'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!
- GianFabien 5y agoI 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.
- slifin 5y agoThe 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
- deleted 5y ago[deleted]
- rramadass 5y agoThis 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.
- burntoutfire 5y ago> "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 say "no longer" as if it was ever different - and the truth is that we were always just tools ("cogs in the wheel") in the hands of business people.
- rramadass 5y agoThat was not always true. In the early days tech. companies always considered Engineering as their Core and other depts. (eg. Marketing, Sales etc.) as Ancillary. It was only quite recently that the roles have been reversed (all in the name of "maximizing short term profits and shareholder value" BS) to the detriment of the entire Industry. The best example i have on hand is the "Speech given by Dave Packard to HP Managers" - https://gizmodo.com/the-hp-way-how-bill-hewlett-and-i-built-our-company-5634378 https://gizmodo.com/the-hp-way-how-bill-hewlett-and-i-built-... (they founded Silicon Valley).
- d--b 5y agoWell, 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.
- floydian10 5y ago> 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.
- burntoutfire 5y agoThe 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).
- Zigurd 5y agoIt 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.
- lifeplusplus 5y agovery questionable assertions, entire field of CS was build, as well as the internet plus operating systems without the need of all those 'roles'.
- bruce511 5y agoThe key part of your sentence there is "was built". 30 years ago I wasn't maintaining software, I was writing it from scratch. We didn't sell "software" to customers, we sold "you could use a computer in your business". We started in DOS, and were around when literally every program was rewritten from scratch in Windows. We had no scrum, no product managers, just tiny numbers of people building the world. Today software is everywhere, and it's spent the last 30 years maturing. Tiny projects have turned into huge monsters. We've succeeded in computerising every process. Businesses have lots of processes so there's lots of software working together. Today's world doesn't need a new invoicing system - there are plenty of capable commercial ones already available - it needs armies to maintain the existing ones. It needs the vision to build on what is there to make it ready for the next 30 years. Today there are still cutting edge jobs, and new platforms to build new stuff on, but this is a small part of the current "software industry" - these jobs are rare and more people will end up working on existing code. The good news is that my cohort are retiring and these big existing projects need new "big picture" owners. So there are good, long term, jobs for those who want to take things to the next level.
- readonthegoapp 5y agoyou 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.
- da-x 5y agoOne 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.