Sample size = 1, I'm closing in on 50 and moved from programming to product management and then project management about 10 years ago. It was a significant compensation hit, and the skill gap took a lot to overcome (I am a much better programmer than project manager), but overall I am happy with the change. I took a look at my trajectory in my 30s and didn't like what I saw:
1. I didn't want to be a JIRA ticket monkey for the rest of my life, and people management seemed way out of reach.
2. The "win the battle, lose the war" pattern of projects started getting demoralizing: You're developer #21190 on the team, make the best technical decisions in your little corner of the product, but after a year it gets canceled or fails because some decision maker way above you on the totem pole blew a deadline/estimate by an order of magnitude. It's tiring to do your best work on projects pre-doomed to fail.
3. Work life balance sucks as a developer. I spent countless nights working through to 2AM to meet my ever-increasing ticket goals.
4. The technology-of-the-month treadmill gets you nowhere. I'm all for learning new things, but the constant emphasis on switching to a new fashionable framework just because it is new and fashionable, and just to put another keyword on your resume, is IMO a waste of learning.
All in all I felt like a well-paid cog under enormous pressure to always be cogging harder.
> All in all I felt like a well-paid cog under enormous pressure to always be cogging harder.
This is why I've found myself gravitating toward smaller companies. Though I've done a stint or two at some bigcos (100k+ folks) I've almost always been happier at smaller companies (<100 people). You can see the results of your work more clearly, there's less process, and when a teammate isn't making the cut, it's clearer (less room to hide).
They aren't as sexy and well known, but if you can find the right smaller company, you can still be compensated pretty well, find technical challenges and grow.
Sure, you may still be a cog (you're an employee, after all) but you're a much bigger cog in a smaller machine. Yes please.
For us not-so-young folks with family and a clear division between work and life, small and medium companies are the best; you can feel the impact your decisions have, and there's always room for improvements and innovation. Startups and large companies are too stressing for different reasons.
Re #3: this has been my experience almost my entire 10 year tenure as a software developer. You start out doing a few stories, hey this is easy. Then they get harder (ooo we're starting to pack those two weeks now! Hope I get a good bonus for this, it's exhausting), then eventually you're tracking down acceptance criteria for your own stories (what happened to the project manager?! I can do this though, I'm senior level, no problem), then you're getting support requests for other devs and more and more work, scope creep, debugging, etc...
And any request to "follow the rules" (what if we had AC before stories started? what if we defined who would do that and gave them time to do it? what if we didn't change or add stories mid-sprint? can we discuss why that overtime happened the last few times so it doesn't happen again? Sure, bring it up in the retro... but we won't be willing to change much, sorry) leads to you being increasingly shunned and disliked.
Does anyone have solutions to this? It seems like most people solve it by moving up the ladder, as ICs generally aren't treated well in most places, and when you can delegate you hopefully can get back to 40h/wk.
> then eventually you're tracking down acceptance criteria for your own stories (what happened to the project manager?!
Lol depending on the product owner I get anywhere from "some nice stories and design mockups" to "there isn't even a document describing the requirments and I have to write my own stories for bookkeeping purposes."
I definitely can relate to Point 4. I think one way of countering this is to focus on a platform versus the base technologies. In particular, I am thinking along the lines of doing development work with the likes of Salesforce, Microsoft Dynamics or SAP. The years of experience are valued more and the rate of change is inherently slower. The obvious downside is that the development work itself may not be as interesting but that can be mitigated somewhat on the projects one takes on within these platforms.
I agree with all your points, although I'm lucky that where I'm working today, #3 is not an issue, but it has been before.
I absolutely agree with #2. I definitely got demoralized over the years when I realized even if I did a good job, the project could fail in so many other ways, often due to decisions much higher up in the chain.
All these issues are harder to live with as you mature. You can live with them a bit more when you're young since you're still naive and may not be aware of them or even care.
I think it's possible to stay a developer without being just a ticket monkey, but it's certainly true that not every organization is prepared to grant developers greater autonomy[1].
1. I didn't want to be a JIRA ticket monkey for the rest of my life, and people management seemed way out of reach.
2. The "win the battle, lose the war" pattern of projects started getting demoralizing: You're developer #21190 on the team, make the best technical decisions in your little corner of the product, but after a year it gets canceled or fails because some decision maker way above you on the totem pole blew a deadline/estimate by an order of magnitude. It's tiring to do your best work on projects pre-doomed to fail.
3. Work life balance sucks as a developer. I spent countless nights working through to 2AM to meet my ever-increasing ticket goals.
4. The technology-of-the-month treadmill gets you nowhere. I'm all for learning new things, but the constant emphasis on switching to a new fashionable framework just because it is new and fashionable, and just to put another keyword on your resume, is IMO a waste of learning.
All in all I felt like a well-paid cog under enormous pressure to always be cogging harder.