Why does Facebook have thousands of employees just to run a single website? Wouldn’t a few customer service staff, a few programmers to fix bugs, and a few programmers/developers to develop new content be sufficient? I’m a complete layman in this area, so please excuse me for my ignorance.
It’s all about scale of your business.
One or two people can put together a website like Google or Facebook. It won’t be great, it won’t have many features, and in the case of a Google-clone, it won’t index much stuff. But the bones will be there, and with those bones, the promise of what it could be.
Let’s say the site gets popular, and tens of thousands of people are using it. Suddenly all the data won’t fit on a single server. Now you have to get all kinds of different servers, and people to write programs to distribute the data to those servers.
Let’s say people are using your service in other countries. Now you have to adapt it to work in different languages. How many? More than 20, to hit the major markets. And, you need to be culturally sensitive to those regions.
Now all your users are complaining about how crappy your site looks: you are a programmer, not a design expert. You have to hire design specialists, graphic artists, and so on. You want to start monetizing your site by accepting ads, so you need specialists to put together advertising infrastructure, artists, ad folks, salespeople. And you need an accounting department, and tax specialists.
Some jackass says THEY invented your idea, so you need lawyers. And you need an IP-program to start patenting your inventions to keep this from coming up again. And trademarks and copyrights and all the rest of it.
Your site is international and it’s still growing: you’ve got hundreds of thousands or millions of users. You’re paying lots of money to buy off-the shelf servers but realize you don’t use 3/4 of their power. So you buy computer engineers to design your own servers that match your needs. And fabricate them. and maintain them. And you put them in data centers you had to build up from scratch, which is a huge, specialized undertaking all of its own.
You’re having trouble hiring enough engineers, so you have to invest in top notch recruiting, and benefits packages, and so on. You need to hire internationally to find the best people, so now it’s more lawyers, travel specialists, people with relationships with universities.
And all of your engineers are aggressive, so they’re coming to you with a lot of ideas of things they want to build. Some are crap, but some are really interesting. But everyone is already busy, so you need to hire more engineers.
Your site crosses a milestone where your existing way of doing things doesn’t scale anymore: your servers can’t hold all the data you need, your algorithms can’t crunch it even if you had it – and you need to design more scalable infrastructure to run across tens of thousands of servers without losing data, in a way that only a handful of companies have done before, and none of them are talking. So a monumental engineering effort begins, requiring hundreds or (easily) thousands of engineers.
And so it goes…
I joined Microsoft Windows NT when it was just a hundred people. It was more like 400 when we shipped the first version, and I was amazed – what could so many people be doing? I left and came back 5 years later, and it was closer to 10,000 people. It’s just the way it works.
-John L. Miller, former staff engineer at Google.