Apr 7, 2026
Not a lot of us want to admit it, but in my experience, I see that a scalable software tend to have more complexity, thus becoming less maintainable. But then, a maintainable one, a well written easily-understood software tend to be not that scalable. Should we really choose? what to choose?
Back in Shopee, I remember I have this one specific feedback from my tech lead. He acknowledged what I built is very performant, but it will be difficult to maintain because of the complexity. He encouraged me to simplify what I built.
In that moment, I realized there's a tradeoff between scalability and maintainability. We all know AI started to get good with coding, and I guess eventually our human judgement has to be used in judging when to lean into scalability and maintainability.
Yes, that's right. It might not cross your mind when you first entered the industry and joined the trenches, but you'll see about the software engineer salary (and now, AI agent token cost).
The more unmaintainable your software is, the slower your development speed tend to be. The longer the development speed, the more salary the department has to incur. In fact, there are many cases the labour cost exceeded the cloud cost. Actually this is why big tech is okay paying cloud companies $100K+, it is because the labour cost could reach $500K+ if we build with this slow development speed.
Even for AI agent, if the code is unmaintainable, it has to crawl through lots of places and burn more tokens.
I think we can, but not to the extreme. Let's say we want extreme scalability, sometimes we have to sacrifice some easy-to-understand codebase to achieve that. Let's say we want extreme maintainability (I don't know if such wonderland exist), surely we will have to sacrifice some scalability.