DEV Community

Discussion on: Every programmer should know these conventions and practices

Collapse
 
vickalchev profile image
Vic

Thank you for putting this list together. I find it very helpful.

A follow-up question on Think Big: often, in order to scale you need to make certain software and hardware choices ahead of time. How do you go about deciding what is appropriate?

An example: in 2020 Signal gained huge popularity, which effectively "broke" the backend of the app - they didn't expect such a huge demand so quickly, so they hadn't optimized their backend.

What's the most sensible approach to avoid such a situation?

Collapse
 
fayomihorace profile image
Horace FAYOMI • Edited

Hey Vic, thanks for your feeback. Very interesting question,
I would say that software is a bit like a building.
The basic architecture of the system, represents the foundations, there is a dimensioning, choices so that the building can perhaps evolve. You can for example build the foundation for a ground floor but the foundation can support a 2 storey duplex but not more. In fact, if the basic architecture is not made from the beginning to be scalable up to a certain level, trying to make it evolve beyond that level will probably lead to a collapse of the building. For software are a bit like that.

With one exception, a big one, the cloud.

with the cloud, we can scale our applications almost infinitely, horizontally or vertically, and even automatically depending on the demand.

So for me, either the system was already designed from the ground up to be really scalable (maybe using a microservices architecture), or else we can always see how to migrate to the cloud (PAAS or SAAS preferably), and pay the price.

Collapse
 
vickalchev profile image
Vic

Thank you for this explanation, Horace. I like the building analogy. It makes a lot of sense.