Categories
FooBar

Scaling is Hard

Growing a business is a great signal to our employees, investors and other customers. It denotes traction, market approval and promise of future revenue. The main issue is that growing is not the same as scaling a business. It’s not the same for a pop and mom shop to sell a 100 donuts a day to sell 1000 donuts a day. I would be great for business but is not something they could turn around in a day.

IT systems tend to scale quite well until they don’t. Our server starts crashing when it gets swarms of new users. Our databases become bottlenecks to process payments. Our ETLs run for days and make harder to analyze “what’s going on”. The business is growing, but it is not scaling.

The mom and pop donut shop could go out to the market and buy 10 extra friers and find people in the community to help cook the donuts for the 1000 orders that now are flooding the store. However they soon figure that buying 10 fryers would allow them to meet demand, if a fryer fails, or an employee does not show up, the business is losing on potential sales. Growing is great, scaling is hard.

Scaling is not as simple as saying: “Add another EC2 instance!” (Sometimes, it is). Scaling requires deep business understanding and deep systems understanding. Writing that SQL query in a way that can be taken apart and become a Materialized View in an Event base Architecture. Creating that Class free of the dependency injection rabbit hole. Understanding how users will interact with the product and where we should invest more time to make sure it will stand when growth arrives. You optimize for growth, not for your current state.

It would be irresponsible from the pop and mom donut shop owners to go a buy 2000 friers and get a new lease on a factory in the outskirts of town, and a couple of trucks and 50 new employees, when the line in front of the street is no longer than 500 people. However, it would prepare the business for growth if they can organize the back of the store to behave more like a factory and less like an artisanal store. More consistent and replicable, with faster checkouts and reliable suppliers. “But… hold on…” you might be thinking , “they could do this for when they sell 100 donuts, no need to wait until they reach 1000”. Exactly!

When you prepare for growth, you think of scale. You understand where your systems are not ready to tackle the next tasks and work on making them more robust (by replacement or upgrade). The worst mistakes I’ve seen in hi growth tech companies over and over is that they pay a lot of attention to growth, but not that much to scaling. They neglect legacy systems that soon will require a refactor that will cost more as time goes by, they don’t have clear system designs so everything is patched and holding together by a toothpick, they don’t get a factory, just a malfunctioning kitchen.

Invest time and effort in:

  • Identifying crucial a systems/processes for the business
  • Answer: Are we ready for growth here?
  • Answer: How can we help this system/process to scale better in the future?
  • Go help your business scale and get ready for growth!

Follow me on LinkedIn.

Leave a Reply

Your email address will not be published. Required fields are marked *