This is a non-programming post in the series I call “re-stating the obvious”. This series talks about topics that are nothing new, a lot has been said and written about these topics already. I’m simply putting it in my own words.
You can find all posts in this series here. Be sure to check back because more posts will be added in this series over the coming period.
What exactly is “scalable”?
Here’s the wikipedia definition:
Scalability is the property of a system to handle a growing amount of work by adding resources to the system.
During the initial stages of my career, a tech lead once described a scalable system in layman terms to me as follows:
A scalable system is one where by adding just a small amount effort or resources you can increase the output or gain by a large amount.
A real-life (albeit silly) example I like to cite is cooking rice versus making rotis. Cooking rice is scalable because you don’t need to double the effort in order to cook double the amount of rice. On the other hand, if you want to double the number of rotis, you need to (more or less) double the effort. Making rotis, is thus not scalable.
In technology terms, scalability refers to the ability to handle more users, requests, traffic etc without the system hitting its limits. Let’s say you create a system that can handle 1 million users with a team of 100 engineers. If you want to increase your target 10 fold to 10 million, you should not need to employ 10 times as many engineers.
The software industry has brought about a revolution in massively scalable technology. We routinely see CXOs of tech giants at their respective annual conferences reeling off staggering statistics about their products.
- X million concurrent users per second
- Y billion total active users
- Z terabytes of data served per day
- … and so on …
This is no mean feat, mind you. Achieving this scale is a humongous engineering effort that requires coordintation between countless moving parts (from the software stack to the OS to the hardware to the network, even ventilation, cooling and geopolitical factors come into play). It is a marvel, no less.
But does this translate to a scalable business? For example
- How does the cost for manual fallbacks increase with the problem size for a business based on algorithmic decisions?
- What’s the cost of mistakes when the business relies on content moderation?
- How well does the tech mesh with the need for global regulatory compliance?
A scalable business refers to one that can expand (for example to multiple geographies) with just an increment in investment (in terms of cost or effort).
The manufacturing industry has shown the world how to conduct a globally scalable business for decades. Here are some examples
- Every country has differing standards when it comes to automobile industry. This includes factors like pollution limits, safety features like seat belts, airbags, ISOFix and more.
- Norway is very strict about speed limits. So much so that cars sold in Norway are required to calibrate the speedometer to show the speed as 10% more than the actual speed.
- Every country has differing standards regarding consumer electrical and electronic equipment. Refrigerators, air conditioners, microwave ovens etc have to adhere to different standards of energy consumption, fluctuations, even noise requirements.
- Some countries like South Korea require that cellphone cameras should always have the shutter sound permanently enabled.
In spite of these differences, we see the automotive, consumer electronics and other industries comply with these local requirements. These industries have built scalable businesses that work with differing local policies around the globe.
Scalable tech ≠ scalable business
Sadly, the tech industry does not seem to have learnt from the manufacturing industry. Here are a few examples that illustrate the problem:
Mobile app stores
Mobile app stores are grappling with the problem of app approvals. Approvals take weeks or even months and this is a major pain point for businesses that wish to publish apps on the stores.
The story doesn’t end there. At least one of the big mobile app stores has serious problems with automated app removals. If you are a mobile app developer, chances are you have come across multiple instances of apps being removed for no apparent reason, and developers not being given a fair chance at redressal.
This here is a classic example of confusing the scalability of the tech for scalability of the business.
The app review algorithms are great piece of scalable technology. Unfortunately, the same algorithms come in the way of a scalable business because the business has been designed around not requiring much manual review.
Social networks, video platforms and similar platforms have a problem very similar to mobile app stores, except the stumbling block is content moderation. Some examples of situations where the scale failed the business:
- Social media used for interference in the electoral process
- Misinformation campaigns on social media, ranging from incorrect information about Covid-19 vaccines to using social media to whip up mob frenzy (remember all the lynching incidents across the world in 2018-2020?)
- Gory incidents telecast live over various video streaming platforms (remember Christchurch shootings in 2019?)
Some platforms have scrambled to “fix” some of these problems (some social networks added “labels” to disputed posts etc).
But these seem to be band-aid. The real problem is that the products themselves are not built for real scale (beyond the technology itself).
We all know what happened with user data (in the scandal-that-shall-not-be-named involving the social-network-that-also-shall-not-be-named). But that is just part of the picture.
Several countries are now coming up with regulations around privacy of the data of their citizens. Some are taking it a step further and proposing rules that dictate where the data of their citizens should physically reside.
The real problem here is tech companies building their business models around regulations that existed when the product was conceptualized, and failing to foresee that regulations will catch up eventually.
Again, the products scale really well from a purely technical standpoint, but leave a lot to be desired when the rubber meets the road.
I’m pretty sure I just scratched the surface - of both sides of the coin. There are dozens more examples of business scaling done right; and dozens more where they fall short despite a stellar tech stack.
In conclusion, at the risk of re-stating the obvious, A scalable tech stack is necessary but not sufficient for running a scalable business.