Comments in this thread make me realize how much developers are ignorant about business matters.
Large companies like PayPal have many sub systems, division and units that need to function to even keep the company alive. To give you a small example, say if you are running PayPal- For a company of that scale you can't really plan any thing on the business side unless you measure things, so suddenly you see a requirement for a system which will deal only with metrics and analytics. Once your user base grows out to a large size, suddenly you will find yourself running large data centers, service engineering teams and their operations. You will need dedicated sales teams to tackle those problems, product teams to ensure crap doesn't shipped out. You will need architects who can make a dozen systems work together, you will product managers decide the right technical course for the future. You will need program managers to ensure engineers hit the deadlines. You will need QE teams to break stuff what engineers overlook.
Yes you can argue that you may not need all that, but when you do that you will inevitably find somebody or the other in the organization doing those jobs, albeit the scenario will now be a lot more chaotic with no center of ownerships and responsibility.
It becomes difficult to move quickly in such places.
Reminds me of one of my favorite pieces of writing on software, which every developer should read, especially if they haven't worked at a large company before:
"How many Microsoft employees does it take to change a lightbulb?"
Large companies like PayPal have many sub systems, division and units that need to function to even keep the company alive. To give you a small example, say if you are running PayPal- For a company of that scale you can't really plan any thing on the business side unless you measure things, so suddenly you see a requirement for a system which will deal only with metrics and analytics. Once your user base grows out to a large size, suddenly you will find yourself running large data centers, service engineering teams and their operations. You will need dedicated sales teams to tackle those problems, product teams to ensure crap doesn't shipped out. You will need architects who can make a dozen systems work together, you will product managers decide the right technical course for the future. You will need program managers to ensure engineers hit the deadlines. You will need QE teams to break stuff what engineers overlook.
Yes you can argue that you may not need all that, but when you do that you will inevitably find somebody or the other in the organization doing those jobs, albeit the scenario will now be a lot more chaotic with no center of ownerships and responsibility.
It becomes difficult to move quickly in such places.