I've worked on companies big and small (relativley; smallest was around 400 people, though engineering was closer to 160-200). One thing that has struck me is that, in my opinion, smaller companies seem to get much more done per engineer than bigger ones. I'm curious-- has everyone else has seen this too? In your opinion and experience, why do you think this is?
Is this the overhead of decision-making (one person or the engineer deciding vs a chain of command)? Is it that people are just more motivated when they're the underdog? Is it that the inherent size and complexity of a codebase grows exponentially as people grow linearly with time? Is it that some products seem to be "done", and changes are iterative and pedantic, not risky and exciting? All of the above? Maybe even some more?
I'd love to hear your stories and thoughts!
If you're a startup founder, you eat what you kill. There is no degree of separation at all.
If you're working at a 10-person startup, you report directly to the founder. 1 degree of separation.
At a 50 person startup, you probably report to someone who reports to the founder. 2 degrees of separation.
At a place like Microsoft, you're probably 7-8 degrees removed from the CEO, who himself reports to the board-of-directors, who report to a decentralized mob of shareholders.
At every degree of separation, there is an amplification of:
- distortion of incentives
- "Not my job"
- "that decision is above my paygrade"
- "What's in it for me?"
I don't think individual productivity can ever be as high in mega-corps, the way they are in startups and smaller teams. Hence why mega-corps are generally best at milking existing cash-cows, whereas startups are much better at actually driving innovations.