I think part of the problem that triggers this is in small companies, one engineer codes, a significant portion of the code base and has a strict vision in their mind about how that code should be structured. When new employees come in to bring new ideas, they become personally offended that their baby is no longer their baby. At large companies no one feels like they own 100% of the code, and each change is very collaborative.
Make sure you have solid metrics on your side to record problems with that microservice, document any delays caused my missing features, and eventually even non-technical management should get your point and start to apply pressure.
Usually management doesn't want to participate in these discussions, because they are more careful about retention (and stepping on toes). 1 engineer quitting is a 10% reduction in their workforce.
That's how you end up with endless process, design by committee, and having a dozen meetings with all "stakeholders" before actually writing any code.
I'd much rather work at a place where individuals or small groups have a strong vision on the code and product and are capable on executing independently on that. It sounds like the OP would too. But I understand it's a personal preference.
I guess that’s why large enterprises hate it, since they’re all about reducing risk.
If they get middling software every time then that’s preferable to the two extremes.
Isn't that dependent on whether you are the person guiding the code though?
Indeed. No company size is perfect. There are dysfunctions typical for small companies. There are dysfunctions typical for large ones.
But people have preferences; some things they can handle, other things drive them crazy. What drives you crazy may be different from what drives your friends crazy.
Perhaps everyone should try to work once in a large corporation, and once in a startup, to figure out their own preferences.
Or to be kinder. If you are filling your own hole (identified need) you can be more free in your approach. After all only you decide if it's right, finished, a failure or success.
What I vastly prefer is the 500-ish size. You can realistically at least know of every other developer (and find those you prefer working with and can learn with), there's more resources than just a 30 person company, and you're just not a tiny insignificant cog in the machine at a 100k mega corp.
We must have worked at very different places.
Everyone wants the problem solved, but how the problem is solved leads to frustration.
This happens extremely frequently and is in fact entirely normal.
Some types of businesses can do it more easily than others. Professional services can probably do it the easiest. A B2C business with a turnkey offering could have a lot of trouble paring back, especially if the product has a physical aspect.
But what if new opportunity is ok, gets you 30% more money, but your departure makes your current company very sad and perhaps worse place for everyone to work at?
I wouldn't expect a lot of support for the idea of staying if you ask the internet for an opinion.
When MBA culture took over in the 80s it became normal for companies to act like extraction machines. Employee loyalty crashed, with a corresponding increase in churn.
Taking investment money makes it hard to create a humane culture. But smaller private companies do at least have the option to consider it.
What did they change/do? If I may ask
- Paperwork - Extra managers - Lots of "stakeholder management"
Eventually, they tried to get us to integrate with more and more of their other products, which introduced a TON of extra "stakeholders" on every single project.
With every extra stakeholder they also had to introduce extra meetings and extra process until even making a small change felt like a massive chore. I went from merging dozens of changes a week to maybe one or two.
Felt pretty claustrophobic after a bit so I ended up leaving to go somewhere smaller.
> integrate with more and more of their other products, which introduced a TON of extra "stakeholders"
That scenario I hadn't heard about before. Good to know about that way for things to fail, too.
If you haven't seen:
"Excess management is costing the U.S. $3T per year (2016)" https://news.ycombinator.com/item?id=34290539
After 14 years in a workforce, my happiest moments were in software SMB (joined at 10 people and left at around 100).
Never felt like work. We were just building something cool together as a team on the same page.
Turned profitable after Series A and never raised again.
Later down the road I realised that these are the real unicorns once I actually landed in terrible jobs or corporates and how disengaged everyone is in the legacy organisations. Was genuinely shocked that these companies don't go out of business.
I am now trying to collate the list of companies which fit the criteria above but it's really hard.
* Small/medium size companies where you recognize most everyone even if you don't work with them. There are enough people so you don't have to do things you're not qualified for like in the very early days of a startup.
* Steady growth, but not crazy, venture fueled moonshots.
* Selling something that earns enough money to grow the business in a fairly organic way.
I worked in a place like that once and loved it, and did some of my best work there. I wasn't anxious that it would implode like a startup, and there wasn't much bureaucracy.