Whenever I see comments like this I feel bad for the commenter.
For all the opportunity and different companies to choose from in tech, to not enjoy your job after 30 years probably means you picked the wrong career path. It’s not healthy to have this much disdain and displeasure around your work.
At no point did I say I don't like this. It's absolutely the best career I could think of. No heavy lifting, no dealing with bodily fluids or excrement, no harsh weather conditions, low to no risk of getting killed, no dangerous chemicals, no being shot at etc. And I get to play with things all the time and solve interesting problems.
I didn't pick up disdain or displeasure from your original message, and I didn't feel bad for you. I felt good for you! I thought "here's someone like me, who's making a decent living in a nice job, but who has a good sense of perspective and isn't getting caught up in the inane irrelevant trivialities of the tech workplace that are ultimately utterly meaningless."
You can make a living doing something you enjoy without having to buy into every single aspect of a corporate workplace and without tangling up your identity with your job. Some of us work to live, and are happy doing that. It's not a failure to be not totally consumed with your career.
Tbf to u/cj, there's a few things you mentioned that would lead one to believe you aren't fulfilled with your job (which, I think, is an important distinction from being 'happy' with one's job).
If 'objective one is to get paid' it comes across as primarily a monetary transaction. That's generally not how the people I know who are really fulfilled in their careers look at it. Sure, pay is an important part, but they also really value aspects like a sense of purpose, the camaraderie of working on a good team, and being able to meaningfully contribute, amongst others.
"One day the fucks will run out." You say this as a point about disconnecting, but you can disconnect while still "having fucks" about your job. Your life doesn't have to revolve around your job, but I don't want to work with a bunch of people who don't really care about what they are doing.
You talk about how you spend remote meetings doing other not-work-related things. I get that meetings can be boring or of little value at times. In those times, ideally, I would prefer someone be honest and say the meeting is of little value and go do something more productive. At the least, I would like them working on something of value to the group while occasionally checking in. You wouldn't act this way in person, so I don't understand why you think it would be ok to do so remotely, other than it's because you can get away with it. Again, that makes it more transactional than contributory.
I could go on with the other points, but all that is to say, I don't think u/cj was completely off with their comment.
I was going to make the same points. Some of these are frustrated and cynical dismissals that may represent reality sometimes, but are counterproductive when taken axiomatically.
For instance, “estimates are lies” fails to acknowledge that planning must still be done in the face of uncertainty, and engineering is the best equipped to do this. The last thing you want is for the pointy hairs to just start pulling deadlines out of thin air. But recognize it’s not about putting in time, it’s about helping the business plan and setting up the team to build things the right way. If you do this well, everyone wins, but it does require the ability to work smoothly with people who don’t share your same expertise and not treat them like idiots.
Planning doesn't mean estimation though; we all know it's just guesswork, and basing business decisions on guesswork is madness. On top of that it's a lot of wasted time and effort.
Milestones and projections is a much more constructive approach, simply tracking the number of tasks in your backlog over time will give you an increasingly correct projection of when the project will be finished.
Very good point, planning is a broader activity than estimation. I find people bring a lot of baggage to the idea of estimation, like in this case you say "it's a lot of wasted time". There's an assumption in there somewhere about what constitutes an estimate. If you're talking about an eng-week granularity estimate for a project that is going to take 6+ months then absolutely I agree with you.
But for me an "estimate" is just a sense of the level of effort required sufficient for the needs of planning at the time. It goes hand in hand with risks, dependencies, and other assumptions that need to be kept in mind. The exact form of an appropriate plan depends a lot on the business constraints like how delivery timeline interacts with customers, external events, and the broader ecosystem that the company operates in.
As for your suggested backlog approach, this makes sense if the requirements are rigid and accuracy on the delivery timeline is the most important thing. This is situational, but in many projects I've led, the scope is negotiable, and therefore important to keep the big picture in mind to find opportunities to refining or consolidating scope. A common anti-pattern I've seen when relying on ticket/task-level tracking is the team missing the forest for the trees. It's possible to leverage these systems to support high-level planning, but I tend to prefer documents or a simple spreadsheet gantt for that purpose, and use ticket/task tracking for last-mile work, intakes, bugs and other inputs that we don't want to lose track of, but may vary widely in their importance and relevance.
To your point, most planning is bad. That doesn't mean planning is worthless when done right. It seems that most bad planning fundamentally misses the interactions between different tasks (ie it largely treats the different tasks as independent). A probabilistic approach that correlates the tasks seems to work better.
Sometimes estimates are made out of ignorance or borne from an optimism bias. But sometimes they are lies, because its easier to get a project funded based on a misrepresentation, and keep it funded once the initial cost is sunk.
The point is they're always guesses, so we multiply by Pi or whatever to make reasonably sure we're not coming up short. But it's all a game, and everyone knows deep down inside that it isn't working.
Maybe it's so prevalent in SWE that most are jaded, but all it means is that we are pretty bad at modeling it or simply don't care. Other domains, like aerospace, have similar problems but have much better methods to arrive at more reasonable estimates (when they care). For example, [1] gets into joint cost/schedule estimating using a more data-driven method where you can put uncertainty around it. It certainly beats 'multiplying by pi.'
Comparing to physical engineering doesn't make much sense to me.
Part of the problem is it's all virtual, so there are no limits; part is that we're always pushing the envelope in the complexity department.
Building the same software again with just a tweak or two doesn't happen very much, the reason we build new systems is often to try something so different that it's not feasible to adapt existing systems.
Most of the time we have no idea exactly what we're building until we get there, even the customers usually have no idea exactly what they want.
Imagine going to a car manufacturer and giving them the kind of specifications we usually get for software, I can assure you they wouldn't be able to give you a good estimate either.
Research is a better comparison. How long will it take you to build a fusion reactor? Depends, right?
There's a lot you've said here that I agree with, but I think we use it to arrive at different conclusions.
FWIW, I've worked in software, automotive, and aerospace. They are probably more alike than you may realize. Vague requirements are quite common. The link above has a section specific to software development, so I don't think it's fair to say it only applies to physical systems. I would characterize it as a systems approach, rather than domain-specific. It uses "WBS" or "work breakdown structure" to delineate tasks. That's an approach that is agnostic to the domain. So if you're working on a mechanical system you might have propulsion, deployment, and control surfaces. If you are working on a software system, it might be user interface, command & control, and data acquisition. But the applicability of the method is the same.
What I think you highlighted is that SWE is generally much less well-managed than other domains. Mechanical engineers often get vague requirements but implement much more standardized processes in their work to hone in those requirements, largely because the costs of jumping in and iterating are much higher. By comparison, software development is the wild west. Like you said, software is virtual, so people are lulled into complacency that they don't need a structured process because they can build and make tweaks cheaply. But what you point out isn't really that software development is inherently different, but just that it's not managed well.
I think your research comparison misses its mark. Research isn't involved with developing some end-stage product for a consumer. The 'product' of research is an experiment and every research project I've been involved with starts with an estimate of how much that experiment will cost and how long it will take. And that follows the same basic structure as any other development effort. Maybe it's an apt comparison for some yet-to-be-proven tech like self-driving cars, but it doesn't explain why most basic CRUD applications miss cost and schedule estimates. I think the answer is that most software development has a culture that isn't as well developed in process control.
And that's my point exactly, every new software system is an experiment. No one has any idea if it's actually going to work out, it's all plug and pray.
If estimating research projects is as much a thing as SW, it's just as insane.
Pretending we know something we don't is lying.
Projections is another thing altogether, let's say we let this run for a month and then we have another look and see where we are. Much more connected to reality than pretending we know where everything is going from square 1.
It’s not any more different than any new mechanical design. Every new car line or rocket design I worked on was an “experiment” just like every new software product. You seem to confuse engineering with mass production. They are two different things.
If you think you’ll get to do research without estimating cost and schedule, you won’t be a researcher for very long. Pretending you know something you don’t is bad project management. But what I’m advocating is estimating with transparency regarding uncertainty. Uncertainty can be quantified. Pretending software is some precious unicorn project that doesn’t have to follow any process is just rationalizing bad process management.
> If 'objective one is to get paid' it comes across as primarily a monetary transaction. That's generally not how the people I know who are really fulfilled in their careers look at it.
Having a fulfilling career is a myth sold to you by employers.
Focus on getting paid enough to have a fulfilling life instead.
After all, chances are the higher ups at your company will fire you at the drop of a hat if they think it will secure them a bigger year-end bonus.
Except it’s not necessarily. As a software developer, you have the privilege to not really care about money if you don’t want to. I didn’t have money problem, ever. Without even trying. I can fly three times between Europe and America, and about 20 more times inside the continent in a year, and I can still put about third of my salary to saving. And I live in a country now where software developers are heavily underpaid: Austria. Most of my friends in other fields can’t even imagine my life - their exact words.
> As a software developer, you have the privilege to not really care about money if you don’t want to.
That sounds nice for you, but your experience is not common I don't think. It's certainly not my experience as a software developer in Canada, where I struggled for years and even now make "just" a comfortable living.
I'm very happy I don't have to worry about rent and groceries and I can save quite a bit, but I'm certainly not able to "not care about money"
HN has a high concentration of above-average salaries, even within the US. It's tough constantly hearing how many multiples more my southern equivalent at FAANG is earning without it affecting my sense of self worth.
I think this is one of the major downsides of focusing on money as the primary part of a job. It can easily become a constant comparison, which has a natural way of making you miserable.
Is it a myth if people have managed to do it? It takes some self-awareness and conscious decision-making, but it's certainly possible.
IMO, a focus on getting paid can lead you to optimize the wrong things in life, making fulfillment less likely than more. It has a weird way of changing your value system by changing what you focus your attention on.
After 30 years in the job, I say that the poster you're responding to is just realistic. I love my job. I love what I do, but it's worth remembering that it's just a job. There is so much more to life.
Not everyone needs to be passionate about the day job. Being present, competent, and reliable is enough. I’d personally go on to say that it’s risky to put too much emotional investment into something you don’t own/control.
I prefer to invest my passion in things outside of my day job. Working is fine, but it’s a means to an end to fuel more meaningful things. We don’t live to work.
"I’d personally go on to say that it’s risky to put too much emotional investment into something you don’t own/control." Bingo! This is exactly what happened to me.
What I learned is that, even in a great environment where there was a ton of latitude to have ownership of technical details and even product details, it's still contained within the broader context of a business. That business has interest in the thing you're working on while it's a factor in creating value, and when it becomes time to change focus onto other things, it will generally do that without much hesitation.
I've been burned by this multiple times. Eventually it clicked for me in the way you phrased it. So I show up and do what I can, bring my expertise as much as I can, gauge where the limits of what I can provide are, and keep a healthy distance mentally otherwise.
One other note - you can still be passionate about software and not one specific day job. You can still work on other projects and explore ideas as much as you want. It's just that that's a separate thing from work. Dedicate time and space separately for that IMO.
> One other note - you can still be passionate about software and not one specific day job. You can still work on other projects and explore ideas as much as you want. It's just that that's a separate thing from work. Dedicate time and space separately for that IMO.
This is what I was trying to get at and you've phrased it beautifully. Thank you.
> There is a world you could be working in a place where you are more passionate and less cynical.
The idea that if you're passionate about something you won't have any complaints about it or enjoy it 100% of the time is unhealthy. Most people realize that there's always an element of 'grind' to any task. You could be the most passionate person in the world, but I can guarantee that something about your passion will annoy you slightly. That's just being human
To some extent presenting a cynical affect is seen as intelligent, or “cool”. The poster claims they like the work, so I’d just take them at their word.
I haven’t found a company yet that meets my energy. All I get is people “excited” to be working for their company because they are “changing” the world. It’s marketing vomit.
To be honest I would prefer to have few million dollars in investments and not to work for anyone at all. No arbitrary deadlines, no corporate ladder, no politics.
I just want to write some code, build some servers and play with things. Maybe make something that benefits people in general.
Most people are faking it. Being able to spend your time on something that both significantly improves humanity and pays the bills is a rare opportunity.
I don't think that's really true (though the claim might be too general to even evaluate on its merits). The same way that I don't believe most religious leaders are secretly atheists.
I've always wondered what substances people are using, the more that they have to touch that stuff. When I was more naive and inexperienced, I was blind to this, and I also judged it.
Nowadays, as long as the marketers are taking care of it, and they aren't ruining their health, I don't care what they're taking as long as it's not meth.
I always wonder this. I think many people actually believe the bullshit because they aren't intellectually curious and have spent no time exploring how other organizations might work. This becomes a problem for software engineering because they have nothing to draw on other than their past work. If they haven't worked anywhere other than your current employer, and your currently employer is a dumpster fire, they are going to continue to repeat bad patterns.
In a company whose business is software-mediated (which is basically all businesses these days), there are a bunch of people who are excited to be part of the journey… and a bunch of tech people who have the power to actually do things because their hands are on the keyboard and they can make the business change.
I know which group I would rather be part of.
Given that being paid to do things is going to involve working for some sort of business, I’d rather be in software development for such a business than in marketing or sales or HR or operational support…
Of course I have. I do make good money but not $500k.
I’m hoping to increase my net worth by few millions in the next 10 years. Getting close to my first one.
I might grind and go for a big tech job, but it needs to be remote.
I then plan on either working an extremely laid back job where I put in 10 hours a week and collect a salary without giving much fucks or doing something exciting that might not pay so much.
Maybe I will find something along the way that excites me.
harsh reality is that 80% of humanity works a dead-end/awful/not wanted job just because bills. IT is a nice bubble in which you do something you are mostly passionate about and you get paid well. I'm not saying "we got it good so don't complain" but sometimes is worth to analyze the situation from the perspectivo of an outsider.
IMO i can do whichever tech job, the more i dislike it the more i need to be paid, that's all
Pretty much any job I might have enjoyed more, if it's not a lot of fancy words for "become a celebrity", will look like minimum wage compared to software engineering. Even when it doesn't, pre-AI software engineers were aggressively stalking around the corners of dark alleys to cut the wages/number of seats of that job.
Most other lines of work guarantee poverty or are a riskier gamble with worse prizes and worse loses.
You want to be at the top of the titanic looking down at those swimming to what's left of the upper deck, not rearranging chairs seconds away from being underwater.
I love writing software and building things that solve real problems, but it’s astonishingly rare to do this as employment. Yet, you still need income as children don’t eat for free. So for the other 90% of us you have to make a choice:
* Go to work knowing you are probably not productively writing software and just accept that reality for what it is: staring out the window while other people listen to the sound of their own voice out loud all day long. And, you often have to drive through lengthy traffic to relish in this experience.
* Write software outside of work at cost to your marriage, time with kids, personal finances, and everything else with work life balance.
They might just have a different perspective than you. I complain about my job a lot. People say to me, “Wow, you must absolutely despise it.” The truth is that if I absolutely despised it I would have left a long time ago. I just have no reason to talk about the good parts. I focus on problems because I want to improve on them.
> I focus on problems because I want to improve on them.
Does this work, though? Does the complaining lead to improvements?
I'm posing the question as a challenge, and also out of curiosity. And I'm of the school of thought that it's necessary to acknowledge reality, but, complaining to the point where people think I despise what I'm complaining about may indicate that another approach may be necessary (such as finding practical solutions and giving yourself options that you can test out).
It’s probably different for every person but complaining about my job either helps me arrive at a solution or realize that I can’t do anything about it and distance myself. I’m very lucky to have never been in a situation yet where the problem is unfixable, truly unbearable, and I also can’t just leave.
Ever hear the term "mid life crisis"? It exists because people around 40-50 - that is 20-30 years into their job they realize they have been doing the same thing and it is getting boring.
While it isn't too late to consider a career change, I'm not sure that is a good idea. For some it is, but many stay - particularly in tech - because they can make a lot of money and thus afford some hobbies that are not boring. Often this is overall your best course in life: find a hobby you enjoy and keep doing your job.
Obviously everyone needs to make their own decisions.
> It’s never too late to consider a career change.
Absolutely, but the huge difficulty is finding a place where the grass is greener. Nearly the whole world is quite equally shitty, it is just the kind of shit that you will see at the various careers ("septic tanks") differs.
I remember going to hackathons and wanting forced timed experience to build anything. I remember going up to the companies that wanted you to build on their stuff and being surprised at their substandard APIs and how lackadaisical and unmotivated those engineering representatives were, I just didnt understand. A fortune 500 team just hanging out a hackathon with no capability or interest in providing real support?
Now I think back and I realize they just had other things to care about
The hackathon and job could be fulfilling, their DIY projects at home were more fulfilling.
Their entrepreneurial endeavors were more fulfilling.
Sure, they could be totally checked out and burned out too.
But it doesnt matter, set boundaries with your job because that definitely doesnt matter.
Aye. Sounds like there are no illusions and a "lets get it done so we get out at 5pm sharp" attitude.
The "I love coding and need to stay to 8pm every day because we're going to change the world!" is insufferable. Hit whatchu gotta hit, don't play the games, and push the release out the door. Then get out there and live life.
Big boomer energy here: it's called work for a reason.
You don't have to enjoy every minute on the job. It's not likely that you're going to be working on passion projects every day. You're not even going to be intellectually stimulated by the vast majority of tasks you will be given. You need to get used to the fact that almost every job as a programmer is probably going to be working on a system that retains eyeballs on screens, counts something, or shuffles around forms.
When you do this for twenty or more years it gets pretty boring. Where are all of the data structures, type systems, formalizations, optimizations, etc? Taken. There are a few people who get lucky enough to have jobs where they can work on things that interest them, where they get to work on hard problems that get them out of bed and plague them while they're in the shower. But they don't leave those jobs and there aren't exactly a ton of new ones being created either. Unless you're lucky enough to be in the right place at the right time to get into one of these jobs, you're more likely to be sitting in meetings and filing JIRA tickets.
Cherish the times when you do get to work on a project that piques your interest. It can happen. But it's rare for it to last for most people. You have to sustain your interest and curiosity in other ways. And it's totally fine if it's anything to do with not-programming.
Meanwhile, on the job? Do your best, show up, be nice and professional. You'll do fine. You're here to clock in your time for money so that you can do other things that you actually like: reading books, spending time with family, doom scrolling, etc.
When I was in college I had a professor who joked that her standards had gone down over the years. Nowadays, her only criteria are: "no criminal record."
Maybe it's just a joke and we don't need to get that cynical, but I think that in the end, enjoyment of the work comes from: whether you can find some creative process in it, and whether you like your coworkers. I think this is the optimistic way of looking at "work is called work for a reason."
To that end, even plain-old programming beats a whole lot of other fields. But to think that we should be drinking the kool-aid and all is definitely not going to stick for the vast majority of us by the second or third decade. I certainly enjoy my job, even though it's just "work."
My professional life and mental health definitely improved when I finally accepted this in full. Whereas at my previous job, the entrepreneurs sold everyone on using the tools and languages of their choice (and sacrificing for compensation in a big way). Noble attempt, perhaps, that may have worked in a different time and era of tech, and under vastly different macroeconomic circumstances. But ultimately, it should not have been surprising, in retrospect, that no one would do any of the work-work that it would've taken to make the company work.
> I think that in the end, enjoyment of the work comes from: whether you can find some creative process in it, and whether you like your coworkers
Hard agree. I look for the interesting things about it and try to, "find the fun." It's nice when you see something you built work well for people, solve problems, etc.
When you get to work on a project that aligns with your values and goals, it's a blessing! Take it, enjoy it, savour it, and write about it. Dive in deep! When it's gone, it's gone.
But there's a lot of busy, necessary work in programming that isn't going to be like that and it still needs doing.
There are a lot of businesses out there that need people to do that busy work and will pay well for someone capable, competent, and willing to do it. It's not glamorous, exciting, satisfying work... it's work. You get paid for it.
It absolutely might be too late for a career change. If you're paid well, and have come to rely on your income, staying put is likely your only realistic option.
Working for any organization comes with its downsides. Pretending like they don't exist and gaslighting someone who's come to peace with them for long-term job satisfaction comes off as pathetic to me.
Spot on! After 16 years, I'm looking to get back to academia and do a PhD. I felt like I don't enjoy what I'm doing for far too long, even though I changed jobs about 8 times.
I used to think like this, but after getting a wife and kids, there’s just no way a corporate job can be continually rewarding like you describe.
Everything is always mired in unpleasant bullshit and emotionally detaching like the above poster suggests is the most pragmatic way to handle work.
I’ve lost all desire of proving myself and working on interesting problems, because at the end of the day, I’d just rather spend time with my family and do fun personal projects. Work is work and it will be never live up to an idealized concept that you have in your head.
> It’s not healthy to have this much disdain and displeasure around your work.
The disdain and displeasure is a result of experience. Of knowing what needs to be done and not being allowed to do it.
> The right way, the wrong way and the Army way
Usually, the problem is the sort of people who get promoted into mismanagement. They were good at "people skills" (and all too often - their only skill is sucking up to their boss) and bad at programming. This is a systemic problem that I have not seen any sort of possible way to fix in all the decades I've been working (or visiting dad's office when a youngster). If you could find a way to ensure that only skilled managers get promoted (and incompetent ones fired), you will fix Capitalism. No more Enrons. No more Innitech.
It's a self-perpetuating process though, since the productive, skilled workers are by definition spending the majority of their time learning and doing productive things, while the remainder have the majority of their time freed up to play political games and elect more of their own political kind into leadership roles. That tends to increase the workload of the productive people, further pushing them away from the nexus of decision-making as they're too busy keeping things running. Eventually a crisis occurs in the top-heavy organization (or society, even). The doers burn out or leave, only demanders remain, and everything goes to shit.
Perhaps worker-owned companies could help with this, but I'm sure that the time investment imbalance dynamic would still be an issue to contend with.
I don't think it is reasonable to expect to truly enjoy one's job. This seems like a luxury that some people in certain fields might enjoy, but most of us tolerate or hate our jobs and wouldn't do these activities by choice.
Your parent post is on-point. You can be passionate about your job and still do the things that he said he does.
You're gunning for absolutism while parent's post is realist.
I love my jobs (yes, all of my employers) but there are few meetings that IDGAF but have to be there because of many reasons. I muted myself and do something else.
I used to be an idealist but I slowly changed my approach because I realized at the end of the day, I'm dealing with human beings day-to-day.
Don't mistake zero-fucks with zero-cares. Staying cool while keeping your sleeves rolled up working on fixes is an absolute life skill. Knowing it's always "Same shit different pile" is maturity, not resignation. Working hard because you are a valuable engineer doing a good job, despite knowing that the world is full of chaos and nothing will matter in 5 years is called Professionalism.
Get paid, invest, be chill and fun to work with, enjoy your family and friends, go fishing or something.
For all the opportunity and different companies to choose from in tech, to not enjoy your job after 30 years probably means you picked the wrong career path. It’s not healthy to have this much disdain and displeasure around your work.
It’s never too late to consider a career change.