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:
Congrats - you've got a good problem to have. But it's still a problem, so let's dive in and talk about 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?
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:
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.
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!