Someone asked the following question on Quora (via TechCrunch): "How long would it take to build Facebook as of July 2011?" Adam D'Angelo, former Facebook Chief Technology Officer, decided to respond with a very long and detailed answer (included below) that comes down to: "My estimate is that a team of roughly 175 to 250 people could do it over the course of two years."
It's just an estimate, of course, but it's still a very interesting one because D'Angelo calculates Facebook could be built in 1000 person years, assuming we're just talking about the code. He then eliminates a chunk of those years due to trial and error problems and comes to the two year conclusion when dividing by a sizeable team of employees.
Of course, D'Angelo emphasizes that even if you had the right people, the time, and the money, you still probably would not be able to pull it off. This is just a theoretical question, so it gets a theoretical answer.
Here's the full question:
Roughly how long would it take to build Facebook from scratch, as it is now, with the tools, libraries, languages, computing power, engineering know-how, etc. available today?
The question assumes you would use the most efficient methods available (e.g. maybe not PHP again...).
Here's D'Angelo's full answer:
Assuming you're just talking about building the software and systems to handle the scale, not getting the actual user base: I think Facebook has about 700 people in product development right now, and had 500, 300, and 200 in the three years before that. Someone can correct me if these numbers are off.
I think it's a reasonable estimate to assume that no code written more than 4 years ago is relevant (obviously some is, but the team was much smaller back then, and most of it would have been replaced by now, so rounding it down to zero is reasonable).
So you could start by saying that this is roughly 1000 person years that went into development (adding up the people from the previous years but not this year, because the 700 haven't been around for a year yet, and much of their work is going into what Facebook will be, not what it currently is).
That's an overestimate because there's lots of churn - the company has to try out lots of things in order to know what's right, but then only needs the implementation of the "right" product at the end of it. If you're building a complete clone you can avoid the churn which I'd estimate is about two thirds to half the work.
So, my estimate is that a team of roughly 175-250 people could do it over the course of two years.
There are other theoretical reasons why you could get it done faster now than before, like better technology, better management, better people, but I don't think those would on average actually end up meaningfully better in practice if you were trying to run this project.
Some major caveats:
It's impossible to suddenly get 250 people working on something. Most people wouldn't want to work on this because they could just work at Facebook instead. Google can do big internal reallocations of people but very few other companies would even have a shot, which would mean they'd have to build up the team over time, making it take longer.
This doesn't matter too much, because over the course of the next two years, Facebook (hopefully) will be far advanced over the current state of the product, and so if this clone ever launched it would have to compete against that.
There's a lot of hidden stuff that you couldn't clone this way in practice because there's no way to get access to the information you'd need to do it.
The network effects would make it impossible for a direct clone to gain that much traction so this is purely a theoretical question.
You can't just build the software for a site like this and then let it run - you need a whole company with processes and support around the product to have it function. Those take time to build too.