It seems the bigger a company gets the more they favor predictability over excellence.
It seems the bigger a company gets the more they favor predictability over excellence.
The biggest contributors to that 20% are (1) extra admin overhead like time consuming performance appraisals and more red tape for purchases, reimbursements, time off, etc., (2) getting blocked sitting around waiting for some person/team whose priorities are not my priorities to respond to requests for info/support, and (3) additional reporting requirements in the form of meetings and extra emails/paperwork to keep other groups/managers updated on what I/my team am/is doing.
There is also a subtle productivity drain caused by the feeling of "why should I put in an extra hour today to finish this feature when release is probably going to be blocked by [some thing I cannot control]". So, I leave the work til tomorrow, but I lose all the mental context I have for the work and need to recapture that to get back to where I was, so what would have taken an hour yesterday takes 90 minutes today.
When I was on a 4 person team in a 25 person company, it absolutely felt like every extra effort I made had an impact and was noticed and appreciated, which inspired me to make extra efforts.
Now I feel like any extra energy I have should go into making sure I don't forget to get some form to HR by some important (but arbitrary) deadline or attending the latest mandatory training session my manager or IT has required me to go to or getting legal to approve use of that open source library we need.
At a larger company, I can fail repeatedly and the machine will have my back. I find I am taking more risks at a larger company because of that.
I have some personal gripes with small companies too. Taking vacation was always an intense negotiation ("But jbob, we planned to do this work 6 months ago, if you take a vacation, the project is delayed and the client is unhappy!"). Cleanliness was a problem, irregular cleaning or I'd have to do it myself, the multinational I'm at now has the bathrooms cleaned 3 times a day and the floors and desks are cleaned every night. It was difficult to be critical of the smaller companies because I felt like I was insulting my "friends", whereas at the multinational, we guard our personal lives fiercely and have no problems criticizing business direction.
My job is not the place to do interesting things (though I am stimulated by the problems we have, even though they aren't always technical), that's what hobbies and free time are for.
Some people can and want a job that feels like a hobby, but some people like to compartmentalize and want their job to definitely be engaging, but don't necessarily want that love affair hobby becoming a career. My last career was like this, I loved doing it as a hobby and thought I could parlay it into a career. More than 10 years later I hated it and was running at full-sprint for the door.
But I definitely understand that some people can make this work, and make it work phenomenally. Some people just don't want that level of overlap.
In my current job the workload is high but the work is often not very interesting or challenging. If I spend my whole day on boring stuff I am exhausted in the evening.
That's also what their customers tend to prefer -- they are often large companies themselves, and they can't drop everything to deal with a breaking change introduced by a vendor. They expect stuff that works to continue to work, and they expect breaking changes to be communicated far in advance so they can make plans to deal with them. That's part of what they are paying for.
What you see as mediocrity is a feature of big companies, not a bug. You can't make all the decisions in a project yourself and expect all of the affected stakeholders and customers to go along with it. Their concerns are often valid and need to be addressed because the project has an impact on the business that other teams don't know about.
Star developers at large companies are the ones who build and manage relationships effectively, so they can deliver on projects that have a big impact on the bottom line, and also do high-quality programming work. If you can do this, you can achieve a lot more with the resources of a large company than you could at a small one.
Took me 2 months solo developing it. I basically looked at the competition, picked out the key features and made it, with little direction. I only really discussed what we should leave out due to cost/benefit ratio with the CEO, and it was usually him just agreeing.
I know of another larger company that could have made exactly the same functionality, but would talk about a team of 5 taking 2 years to do the same thing. Admittedly I have analyst skills as well as Dev skills and lots of experience, but that's still crazy to me.
That's not mediocrity winning for customer stability, that's being unable to react to the market.
Larger companies are realising this is a huge weakness and I've seen stories here of them setting up mini-teams given huge leeway to get stuff done.
Also look at gov.uk and the American equivalent that are transforming what were terrible portals with small nimble teams.
Without the safety net of the larger company these companies would go bankrupt in the real world and not exist.
Star developers mostly have figured out which teams are / are not going bankrupt and direct their internal business to those teams / figure out how to couch a problem in terms that make it seem like it should be given to a team not going bankrupt.
eg. If your web team is shit, but app team is rock stars then the UI should be an app, to prevent the web team from getting the job add a feature such as something with the camera/gps that makes it feel app ish.
This is because in a bigger company the owners can’t really influence individual contributors, they can only influence the managers, so they set up a culture of predictability by ICs so they can still maintain control.
In a small company the managing owners (founders, early employees, etc) can influence ICs directly.
In addition to the reasons other comments have pointed out, this is likely economically rational. If a startup does nothing, they die. If they do something but it's not excellent, they die. Thus they have a strong incentive to do something excellent even if they have to fail a lot of times beforehand.
Whereas a big company is already doing something that's working and bringing in billions. Just by regression to the mean, there's a good chance that anything additional they do will make things worse. So they have a strong incentive to be conservative and protect the golden goose rather than trying things that may work out well but have a chance of harming the brand or business.
This is one of the key themes of the book "Seeing Like a State". It describes many efforts by states to regularize their populace and make it "legible".
- They think in terms of projects not products.
- The structure of the organization ifself. Doesn't lend it self to small teams.
- A lot of dependencies. A lot of bottlenecks. You have to wait in line to get any of the resources that you need.
- A lot of people offering their opinions.
- Office politics.
- Ratio between employees that can use office (e.g.power point, excel, email) vs employees that can do real work. (devs, ops, testing ). Lots of chiefs, very few Indians.
- No one owns anything. Responsibilities are diluted.
- Teams lack autonomy.
Fast forward to my next job at a massive company. My team was maybe 30 devs, and twenty testers. It took us two years to deliver two or three basic services that didn't perform well and were super complex to deploy despite the relatively simple nature of the problem we were tasked with solving.
Now, it's not apples to apples. But this pattern has followed in every job I've had except one, where I was on a small, unproductive team with an immensely bad legacy codebase.
Now I have to lead development of a site that pretty much does simple CRUD and between offshore devs, proofs of concept, approvals, other teams in the corp, spec writing and reporting to management 10 devs will develop something that's technically inferior and ugly in more time. It's very frustrating.
Or also the bigger a company gets the more they favor predictability over [early] delivery.