Photo by Raul Petri / Unsplash

The triangle of three S

English Oct 21, 2022

Supposed that you will build a software product, which is your development style to make it work ? Let me suggest a pyramid of three S along your product life stage:

Stage 1: Speed. When you build something from scratch, especially for a new business, you should strongly focus to adopt all business requirements into your product, and make your release lifecycle into a continuous feedback loop. In short, you need lighting speed in development and deployment to validate your understanding about the users. You can achieve this by isolating codebase/hosting environment to minimize  mutual/domino failures, and easily debugging/release your code by serverless stack.

Stage 2: Scalability. Speed makes you quickly find product-market fit or product-distribution fit, and you will serve your single product to more and more customers. So at that time, you shift your focus from building business logic into your software infrastructure to make it scalable in serving much greater user traffic.

Stage 3: Stability. Failure is so irritating, when you love a product and get its error anytime you need it. Scalability often makes your system more complicated because you have to use every component at scale, e.g several instances per one kind, and it also makes components harder to debug or troubleshoot... Hence, at this time, we need to change our prioritization into monitoring and backup plan. Something to say, you have built a beast, now you have to build another beast to diversify your taste (just kidding), but actually make sure we will always have plan B in time.

From 0 to many, is also a journey from Speed to Scalability then Stability. Good luck to you on your own trip ...