One of the charms of Quora is that you never know who will answer your queries. For example, the site’s founder, the former Facebook Chief Technology Officer, Adam D’Angelo. may happen to chime in when you ask, “How long would it take to build Facebook as of July 2011?”
That’s exactly what just happened, and the short version of D’Angelo’s answer was: “My estimate is that a team of roughly 175 to 250 people could do it over the course of two years.”
However, the newest challenge to the social network, Google Plus, is backed by the search-engine giant, and as Alexia Tsotsis of TechCrunch points out:
While “Clone Facebook in Two Years” makes for a great headline (trust me, I was tempted), D’Angelo doesn’t raise the burning question of why it couldn’t just as easily be 500 engineers working for one year, 1,000 engineers for half a year, or 2,000 engineers for a quarter of a year. Also, there are good reasons for why bringing on more engineers might slow down a project.
Jinghao Yan, a software engineer and a former intern on the ads team at Facebook, chimed in on the Quora thread, mostly agreeing with D’Angelo:
I actually think that it will take fewer than 250 people working two years to clone Facebook today, in part because of the churn that Adam mentions, but also because of the various projects that we opensource.
Internally we have very small teams working on projects. Each engineer makes a huge impact. If we were to start again, for example, using our available tools, I think it would be possible to rebuild Facebook in its present public state using those 250 people for a little over a year. Obviously, this depends heavily on who those 250 people are.
Now, here’s D’Angelo’s full post from Quora :
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 four 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 1,000 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 one-half of 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.
Readers: Do you agree with D’Angelo?