Ask HN: Career paths when you've been disillusioned by the software dev process?

34 points by Trasmatta ↗ HN
I'm 10 years into my career, and I'm very tired of team based software development. I still enjoy programming but I've come to dread almost everything surrounding it.

My work / life balance is decent, I work for a pretty good company on a cool product, and my co-workers are good people. I have suffered from mild to moderate depression most of my life, but I'm doing my best to take care of the basics there, and I'm seeing a therapist. I'm beginning to see some of the classic signs of burnout, but I don't think this is strictly a burnout question.

I work well on teams, my teammates like me, but I've always preferred solo work. I think this is a stable personality trait, as I remember feeling like this as early as kindergarten. Other factors include the already incredibly complex social problems that come from developing software with a team of humans, the monster that Agile / Scrum have become, bizarre and poorly thought out technical decisions, failed projects, endless meetings, and being told what to do by people who have never written any code.

Anywhere, here are some of the possible ideas I've come up with, and my thoughts on them.

Make the most of what I already have - I'm fully willing to admit that I may be in the best possible scenario already. The Hedonic Treadmill is real, and the grass is often not greener. I might just need to reframe how I think about it.

Find the perfect team - Maybe if I job hop enough, I'll land on the perfect team that actually fits my work style.

Consulting / freelance - I'm not sure if this is any better, because you have the constant pressure of needing to find and work with clients. There's something to be said for having the freedom to only take on the projects that interest you (or pay the best), and to not be shackled to them forever. The freelancers I've talked with all seem to agree that your happiness in this path is largely contingent on your ability to find good clients.

Solo Founder / Indie Hacker - It sounds like a dream to have a small product that you build entirely yourself, that makes $100k-$200k/year. There's a lot of cool stories in that space, but I've also read a lot of stories of people working tirelessly for years on a project that never makes over $1k MRR. The thought of putting that much work into building something while also working full time just feels like too much to me.

One idea is to combine freelancing with being a solo founder: do enough freelancing to cover living expenses, then use the rest of the time to build your own things (with the hope to sell them).

Optimize for salary, and FIRE as quickly as possible - I could just grind to get a job with the highest total compensation possible, work it for enough years to be able to FIRE, and then just code on my own terms. It mentally exhausts me just to think about doing this, though. I don't want to go through the interview hazing followed by months of learning a company's internal politics.

Get out of writing software as a career entirely, do it as a hobby only - Maybe, but at the moment I don't have anything else that I'm either skilled enough at to get a job for now, or interested enough to put the work into. But it's something I can keep in the back of my mind.

--

The "freelancing part time while working on my own product(s)" seems like an interesting path to pursue. I'm being cautious though, and I don't plan to make any big changes for 1 or 2 more years at least. I may find that I'm already in the best possible spot, and that this is just the Hedonic Treadmill at work.

Has anyone else here been going through a similar thought process? Or decided to take one of these paths (or another I haven't thought of) already for similar reasons?

33 comments

[ 1.7 ms ] story [ 77.9 ms ] thread
I'm 25 years in and have the same problem. I feel like I could have written this. I have a side project (which has a software component but doesn't require that), but it's not monetizable yet. Like you, I still have to sell my skills in the marketplace -- one that has changed dramatically since I entered, and in all the ways you pointed out.

Software development used to be fun, and many parts of it still are. But a sad new dev culture has taken over which I think hurts both developers and the products we create. This leads to junky software that no one likes.

I wonder how much of it is due to the VC-backed philosophy of "selling to the next greater fool." As long as a company is just waiting to sell out to the next round of investors, the folks at the top have little incentive to make a great product or a great work environment. After all, those things are not counted in company valuations.

In the enormous list of job postings on HN this month, I can see many companies which are obvious failures from the get-go. And many others which are clearly scammy, purely opportunistic, or vulture-based business that simply tax others and profit from their misery. I'm sure those places make money -- for a while. But I can't believe that these are sustainable product ideas or places to work.

What's to be done to fix our industry?

There's an almost religious adherence to broken product management practices. Endless sprints, endless user stories, obsession with "velocity", constant meetings and status updates...all of which grind the actual work to a halt. It's about the appearance of work, rather than the work itself. Developers are considered as code monkeys who need constant attention, not skilled professionals. It boggles the mind that companies pay so much for developers, and then put endless obstacles in the way of them actually getting real work done.
> There's an almost religious adherence to broken product management practices. Endless sprints, endless user stories, obsession with "velocity", constant meetings and status updates..

It's caused by non-technical people invading our field and taking over many of the managerial positions. They can't pretty much contribute anything software-related and often have poor grasp on what's going on - so the only thing left for them to do is to be the "process police" and pester people about estimates, ceremonies etc. It's the only way they can "contribute", so they insist it's vital, as otherwise it would be completely transparent that they're a third wheel.

Same here. 25 years. Bored to death of the whole thing but not having the talents or inclination to build a career in a different field at this point in life.

I've never worked in the VC culture (public sector and SMEs instead) but there is still this slavish adherence to things that were "cool" in The Valley five or ten years ago. Scrum is my bete noire. I've just been moved onto a product team that follows the full shamanism of it and the amount of time wasted is staggering. Between daily sprints, weekly planning sessions and fortnightly retrospectives we waste half the week. Then they insist on adding in some "fun" "team-building" activities too.

On top of business practices, I think dev practices have changed so much too. My job these days is increasingly about configuring some Saas system we've bought in or hooking up the plumbing between different open source libraries. I appreciate that it removes the tediousness of building yet another CRUD web app but it also devalues the skill of the job. Maybe our platforms have just got too complex now for any one person or small team to manage it all.

I've tried going into management before and hated it. The higher you go, the more time you spend in meetings discussing the same shit with the same people just on different days.

Have you looked into working at a non-agile company?

I thought working in waterfall projects would suck, but I think it is a large part of why my current job doesn't require much interaction and why most of my colleagues have a calm air around them.

The funny thing is that my current company technically doesn't practice agile. They love to advertise that to interviewees, but the problem is they haven't really replaced it with anything. There's still a lot of process involved, but it's almost all communicated ad-hoc, so there's massive confusion about how stuff should get done, or who should do what. Requirements gathering is a mess, and yet we're still asked for estimates, even though we don't even have a rough list of requirements.

People have begun pushing back against that (including me), but in response I'm beginning to see the tendrils of Agile sneak their way in, which has me uneasy. But I don't know what a good alternative is...that's kind of why I think the social problems surrounding team based software development are often way harder than the code itself, and why I've got this interest in shifting to solo work somehow.

Yeah, I guess most companies struggle with agile and end up in the middle of nowhere. With the rituals but not the mindset.

I meant to describe a company that doesn't do the rituals and uses waterfall to run projects.

I created an account just so that I could comment.

I'm not a dev although perhaps in a few years hope to pivot to the field in some capacity. I do however work closely with devs, product, etc and i'm n the engineering space. Having said that, perhaps you could use this as an opportunity to solve this problem. What does that look like? Writing a book on the matter to help others since you do have a lot of experience and could possibly partner up with others in the field in the same kind of situation, creating a course, an app (there are endless amounts that focus on mental health and wellbeing but how many that are more focused on those in engineering disciplines?).

I have dealt with depression and an anxiety disorder in the past. I have helped some friends and family members learn to cope and overcome as well. By no means am I an expert but I do have some insight that I share with anyone willing to listen so that they can better maneuver around it rather than avoid it entirely and make it more difficult for themselves.

This is a fun idea, I'm going to let it stew for awhile, thanks!
"There's something to be said for having the freedom to only take on the projects that interest you (or pay the best)"

Do you live in the USA with work authorization? You already have the freedom, probably...find another open position somewhere looking for someone like you, start working somewhere else

Yeah, this is always true. I think I was coming more from the perspective of a 1-6 month freelance project being a lower commitment than starting a new full time job. Even if I could absolutely jump ship after 1-6 months anyway, signing on full time just feels like more of a commitment. And also that I'm fairly sure I would run into the same problems at each company I moved to that I do at each of my previous companies.

Freelance or contract work might also open the door to more projects where I could be the sole or primary developer on something. A lot of my problems stem from how writing software on a team is almost like trying to write a novel with 30 other authors, who all have a different creative vision for the book.

I'm in exactly the same situation, feeling exactly the same way. I don't have an answer, but I do have another option to add to your list which is to take a year out.

I share the dream of making my own product, but I lack imagination, and probably skill and work ethic too. But, if I intentionally planned to take 12 months off, especially if my employer is happy to take me back, the opportunities are endless. Get fit, travel, read, start your own side gig, learn a language, find love, and most important of all, unplug from the system, become human again. I don't know if I'm trying to persuade you or me at this point, but it's something to consider if you have the cash to cover it.

Yeah I've definitely thought about this as well! A 6 month to 1 year sabbatical could be massively helpful in sort of being a reset, and providing clarity. It seems like more developers are doing this. It's a bit hard for me to justify the opportunity cost of what I could make and invest in that year, but you do only live once...

For me at least, doing some freelance or contract work during that time to help cover my living expenses would ease my mind. Of course, then it's not really a full mental reset.

If you find a team that is small enough (2-4 engineers), you might find that most of your work is effectively solo.

I can relate to a lot of what you are saying. I’ve thought about becoming an analyst / data scientist, but there seems to be more competition for fewer jobs that also pay less. And I’m not at all sure if changing roles would “fix” the problem.

Analyst isn't very interesting. I spent three jobs to land on a more technical position. Analyst usually just use Excel, SQL and maybe a bit of scripting and dashboarding and usually it's on the lowest position of the food chain.

Data scientist could be interesting if you are interested in mathematical modeling.

Thanks for your insight. The distinction between data science and analytics seems very fuzzy to me. Plenty of “data science” certificates and degrees teach mainly the skills that you listed as belonging to an analyst. It’s rare to expect an analyst to know about machine learning, but otherwise I haven’t seen a consistent difference in definition.
Yes it's fuzzy. Given the chance I'd recommend that you speak to someone in the team to know more about what they are working on. From my experience DS teams in "modern internet" companies are doing some interesting things.
I run a website that helps people navigate relocation to my area. I mostly write content but occasionally write code for the website. It's a lot more relaxing.

Writing software "when it feels right" is a very different experience. I quite enjoy it.

What about taking your development experience and using it to your advantage in a role in security or even sales engineering? Having ten years of experience in development means you could slot very nicely into application security roles, and I'm sure there are a number of sales engineer spots where you will code little PoCs and demo's but spend more of your time talking with customers and going out to dinner...even traveling if that is what interests you.
This is crazy because I am 10 years in and feel exactly the same. I actually just put in my two weeks because I got sick of our scrum team doing cargo cult agile and I’m going to take some time off to reset and then maybe look for a 4 day work week remote job doing architecture mostly solo. If I can’t find my perfect software job I’m going to branch out into something else I can do outside software that I like. Life is too short to be miserable.
Good luck with your reset / sabbatical!
> remote job doing architecture mostly solo

In my experience, architecture is the much less solo than dev work. Everything you do as an architect impacts a lot of people (usually multiple teams, managers), so there has to be a ton of communication behind your work. Senior architects are not unlike managers and often spend most of their days in meetings.

Having performed the role of architect in two different companies I might caution that the role is most often about training and mentoring. There's a lot of explaining the same concepts (this time to a different team) and soothing touchy egos. It's also a role that requires a strong ability to communicate upwards to less technical people otherwise you'll be left high and dry without any support. You have to be on constant defense from all sides, as almost no engineer thinks you offer any value, and so is often trying to convince management you are superfluous.

It can be very satisfying, and I've really enjoyed it both times and would actively seek it again, but it's certainly not the ivory tower it looked like when I was an engineer.

Developers are attracted to software engineering because of autonomy.

As it turns out, the industry has figured out how to remove that autonomy in favor of old fashioned management and processes. This includes scrum, meetings, badly implemented code reviews (not everyone is a good reviewer), badly implemented coding standards, ineffective Dilbert driving projects that need inspirational leaders.

It's sad but I have decided to take the path of FIRE and say fuck you to anyone who imposes their will on me without considering alternatives.

Pick a different programming stack. Some stacks encourage large teams, agile and meetings about other meetings.

Javascript development with AngularJS or React lead to daily scrums and larger teams. Perhaps it's cultural but if you switched to Vue your chances of avoiding the daily standup go up. Environments with services that you are supporting include a lot of meetings discussing boundaries. A lot of services are written in golang.

Consider C++, Ruby, PHP, Perl and older tech like COBOL. These communities haven't fully accepted tbe daily standup.

Sticking to companies that are small (under 20 people) will force small teams and less meetings and more solo work.

There are a lot of meetings in the Ruby world these days.
> I work well on teams, my teammates like me, but I've always preferred solo work. I think this is a stable personality trait, as I remember feeling like this as early as kindergarten.

This describes me for the first 3 decades of my career. I can now enjoy working together on solving problems. In particular full-time pair programming was brutal at first but then you hit a groove and it's great. No specific advice here, merely a self observation.

> Other factors include the already incredibly complex social problems that come from developing software with a team of humans, the monster that Agile / Scrum have become, bizarre and poorly thought out technical decisions, failed projects, endless meetings, and being told what to do by people who have never written any code.

My advice would be to find a company that has/does less of these things you dislike. The best setup I had was working on a 2-pizza-sized 'platform team' for a ~100 person startup. There was a good mix of developing new features, scaling, and firefighting (that we learned to reduce applying SRE practices). We could start with a problem, whiteboard ideas, start prototyping, finally end up shipping the solution in the same sprint for an unplanned issue.

> being told what to do by people who have never written any code

I wouldn't say this is a good view to hold and may be a source of discontent. The 'what' is really a product question answered by knowing your customers and markets. I wouldn't expect devs to be experts here. The how, at what cost, or when would be better to execute are areas that devs mainly contribute. I do get a sense of what you generally mean though, and my solution had been to work at smaller companies with strong technical management (preferably up to the CTO and/or CEO) and very little to no middle management.

I highly recommend the solo founder + consulting path. Look around you and find a problen you want to solve, and try to solve it well. Maximize for being able to spend time on that thing. Do consulting work when you need money or want to change things up a bit. Eventually along the journey you’ll find other bright and motivated people who you will want to work with (as friends first), and possibly form a team of cofounders to build stuff together. I was in a similar spot about 5 years ago and not only has this path given me numerous ways to hone my skills across a broad spectrum of disciplines and stacks (not to mention dealing with very real “business shit”), but you meet wonderful people as part of this, gain a “see it with your own eyes” perspective of how dysfunctional most orgs actually are, and you forge a lot of good contacts and in-roads who can potentially be future customers of a product you build. Selling things is so much easier if you have people championing you internally, and people will happily champion you if you prove your competence and truly solve their problems. You also get real agency with this path - if you’re doing consulting work to pay your bills but maximizing for your free time to build products, you can also just…not build products for a bit. I’ve learned many skills, do personal research projects, and get to spend more time with people I love as a result. Obviously I’m incredibly privileged to be in this position but I truly believe if you’re competent and maybe a bit clever the opportunity is still there and very much alive. The best part is that if you no longer find it palatable, it serves as the best resume fodder you can possibly have - just go back to the “normal” working world and kick off the cycle again later using what you learn on someone else’s time (while also being an excellent internal contributor because they may also be your customer some day).
This is a good plan to do also as a solo founder. I've been joining groups related to my startup and the best one I found is the Founders Cafe https://founderscafe.io/. They are all founders there like us and they would often suggests things to improve in my business. These people are the reason why my business is still thriving. <33
It's interesting how this question resurfaces on many (most?) weekends, but is rarely posted on weekdays. It shows that we pretty much only have time for some introspection in the two free days in a week allotted to us - the remaining five are just a grind.
" It is during that return, that pause, that Sisyphus interests me. A face that toils so close to stones is already stone itself! I see that man going back down with a heavy yet measured step toward the torment of which he will never know the end. That hour like a breathing-space which returns as surely as his suffering, that is the hour of consciousness. At each of those moments when he leaves the heights and gradually sinks toward the lairs of the gods, he is superior to his fate. He is stronger than his rock.

If this myth is tragic, that is because its hero is conscious. Where would his torture be, indeed, if at every step the hope of succeeding upheld him? The workman of today works everyday in his life at the same tasks, and his fate is no less absurd. But it is tragic only at the rare moments when it becomes conscious. Sisyphus, proletarian of the gods, powerless and rebellious, knows the whole extent of his wretched condition: it is what he thinks of during his descent. The lucidity that was to constitute his torture at the same time crowns his victory. There is no fate that can not be surmounted by scorn."

- The Myth of Sisyphus by Albert Camus.

I am the in the same situation as you. This has been what I've identified is the main thing that ruins my life. Every day it takes me about 30 minutes for me to convince myself to get out of the bed and continue doing senseless grind with no end in sight.

I have zero autonomy over what I do, because I joined a extreme programming shop where I'm supposed to pair 8 hours a day. Do you know how hard it is to program all day without listening to music because you have to "communicate" all the time? The only thing I've been able to device to reduce this sense of dread and lack of autonomy is to focus on developing my own tools to work. But now, I can't even do that because some dolt complained that me using non-standard tools made him "confused" during our pair-programming sessions.

The standard advice for this situation is to get another job. But I know, that will not fix the main issue. The previous job I had, was a legacy tech debt nightmare, we were understaffed and management didn't want to address any of the issues while expecting us to do over-time support.

The job before that, had beautiful code but the code-reviews were insanely political and if the reviewer didn't like you, you would get 400 comments on a PR.

This industry has managed to take a beautiful thing like developing software and turn it into a nightmare. JUST LET ME CODE IN PEACE YOU IDIOTS!

As for solutions, the one that seems more rational to me is the "freelancing part time while working on my own product(s)". That's the one I'm betting my life on.

Wish me luck.