Original question from Quora:

Why does a single website like Netflix need hundreds of developers?

My Answer:

In the real world, there are something like three buckets you can put web projects into. (Disclaimer: there are probably more buckets, but this makes for a better explanation)

First, you have small websites and little projects that never get any traffic or traction beyond a few hundred or few thousand users. They can usually be handled with a single Heroku instance, a small server running on Digital Ocean, or even some shared hosting thing like BlueHost or something if it’s something small like a tiny WordPress blog or business website.

Small sites usually need maybe one developer and not always full time. In some cases, a small team of three or four developers is needed, but in those cases it is because there is a lot more functionality and money behind the project than there are users.

Second, you have medium to large websites with plenty of usage, but crucially, not a lot of growth. In this scenario, a team of five or ten developers might be needed, and most importantly, a relatively small and stable amount of infrastructure is needed. As in, maybe you need five or ten servers, but growth is small and predictable enough to plan infrastructure needs on a 1–3 year cycle.

The slow and predictable growth means it is easy to manage with relatively small and predictable resources.

Third, you have websites that grow and grow and grow. They might start small, but they double (or more) every year. This creates a need for hundreds of developers for a very simple reason…

Exponential growth overwhelms small teams.

It can be very difficult to scale out to enough servers quick enough and in a cost effective way, even with tools like AWS or Azure at your back. It’s not as simple as just adding more instances of web servers or caching.

Practically speaking it isn’t traffic that grows over time, features grow at a similar rate, and the sales/marketing people will be demanding new things to sell on an ongoing basis.

It is called Software Gravity and The Katamari Damacy Effect.

For example, Netflix used to be a DVD rental service. They had an entire software infrastructure built around a DVD rental library that connected into some kind of distribution centers that would mail out DVD envelopes. There is an entire codebase at Netflix of probably a million lines of code (I’d imagine) just to ensure the entire process of sending out and receiving DVD’s worked reliably and handled all the corner cases.

At one point, Netflix got into the web streaming game and build an entirely new codebase around web streaming. I believe it was built on Microsoft Silverlight in the early days, so that is a bunch of C# code I believe. It only had to work on the web and only a few browsers.

Then, Netflix built Roku (though it was called something else). And they had to build the code to make a streaming set top box work. And then Netflix scrapped the idea of having their own streaming boxes and instead would be EVERYWHERE.

So now, Netflix is available on blu-ray players, roku boxes, android set top boxes like the Fire TV, Chromecast streaming, iOS, Apple TV, Android, the web, streaming in VR, and gosh I’m not even sure what else, but I bet once we get to Mars, Netflix will be there.

So Netflix has compound growth needs on both the infrastructure side and the feature side of things. Even relatively efficient teams of 10–20 per project could easily consume a few hundred developers.

Let’s not even mention the fact that something like Salesforce is running at Netflix, so there are probably teams for modifying and building reporting on top of the internal systems, teams building things for managing analytics, big data, other reporting, tooling for customer support, and probably software to back up the various ongoing sales and marketing efforts.

Oh and there is probably a separate R&D staff devoted to “the next thing” like 4k streaming, VR, augmented reality and more. Oh, and some amount of software development for any joint ventures or partnerships they do.

Also, Netflix even has their own server hardware for broadband companies to install so that it lowers the streaming costs.

At Netflix’s scale, it takes a small army to keep the trains running on time to so speak.

Did I mention they still run a DVD rental business?

So, that is how companies like Netflix manage to have hundreds of developers.

-Brian

P.S. Have you subscribed to Code Career Genius yet?