This essay is part of Zero to Live. It's a collection of essays for non-technical founders, walking you through taking your idea from nothing to working software product. Learn more

How software scales

What does it take to grow your product?

So you've started to hit some traction: you're seeing new customers roll in, new demands and feedback, new revenue - everything is up and to the right.

But you've probably started to notice a few things:

  • Your customers are finding more bugs. Not just because it's more customers, which means more eyeballs to discover problems, but there seems to be actually more problems occurring as well.
  • Your developers are stressed, trying to keep up with the growing demands and traffic.

Congrats - you've got a good problem to have. But it's still a problem, so let's dive in and talk about scaling ...

What is scaling?

"Scaling" is the process by which a software product grows to handle growing activity levels. This can mean different things for different apps, but it's usually pretty intuitive: more users = more your app has to do.

Today, most people have experience using apps that routinely see massive amounts of activity. Think: Facebook, Google, Twitter. These apps easily serve millions of users per day without breaking a sweat.

So why is your app struggling under the load, when these other sites don't have a problem?

Scaling is complex

It can be tempting to compare your app with these tech heavyweights, and get frustrated when your app seems to fall short. But it's important to remember the different in resources: these tech heavyweights each have entire departments within their engineering organization devoted to keeping the app up and working 24/7.

You're working with a much smaller set of constraints.

But it's also important the different ways software can scale:

Why can't we throw money at it?

Especially if you have some funding, it's tempting to think you can just throw money at scaling issues, at least for now. Buy more servers = handle more traffic, right? It's the cloud, after all ...

The problem here is that software can't always scale by simply throwing more hardware at it.

Think of your app as a restaurant kitchen: up to a certain point, you can simply hire more chefs or buy more ovens to increase your food production ability. But eventually, you're going to hit certain realities that can't be circumvented: the rice won't cook faster because you have another range.

Similarly, software can sometimes scale by simply buying more capacity, but eventually bottlenecks will be revealed, and it will require more significant engineering work to grow further.

To be continued ...

Eating my own dogfood here!

This page is a form of pressure indicating UI. If this topic interests you, drop your email below to get notified when the essay goes live!

Copyright 2021
Written by Dave Wasmer with