If you are building a system, you’ll want it to be scalable. Ideally, it should be able to accommodate an increase in load with a proportional increase in resources. An example of this is the WhatsApp infrastructure which was able to scale to handle billions of messages every day.
If you are building a company, you’ll want it to be able to grow and scale up quickly as you add more headcount and resources. In theory, given more access to resources, a scalable business will be able to grow it’s revenue and profits proportionally.
And if you are WhatsApp, you aim for the holy grail of scalability by growing the number of users without a proportional growth in the numbers of engineers. When the company was acquired by Facebook in 2014, it had only 32 engineers managing a platform with 450 million users. A year later, the number of users doubled (900 million) with just 50 engineers on the team.
The team at WhatsApp attributed the scalability of their service to their Erlang/FreeBSD-based server architecture. Their unique architecture allowed them to scale to 2 million connections per server and that’s no easy feat.
But not every company in the world can leverage the power of Erlang to scale. To scale a company, we shouldn’t only think in terms of its product architecture or business model.
The organizational structure of a company also plays a crucial role in determining its scalability. Conway’s Law state that any organisations which design systems are constrained to produce designs which are copies of the communication structure of these organisations.
Since business models and products are designed by teams in the company, we should look into designing the structure of our teams to scale better.
The diagrams above are a satirical take by Manu Cornet on how the organizational structure differs between some well known tech companies. Even though it’s based on a ton of shameless preconceptions, you can see the characteristics of the companies structure being reflected on their products.
When you are trying to scale your company, you need to pay attention to the type of organizational structure you build around your teams. How they function and work together will have a big impact on the scalability of your products and the company itself.