Stop Optimizing for Scale—Most Apps Don't Need It

In my Friday Links email yesterday, I shared one post called Programming Myths We Desperately Need to Retire.

Myth #5, “Let’s optimize for scale,” resonated a lot with me:

Most products never reach the scale you’re “preparing” for. And even if they do, you’ll have time—and budget—to refactor later.

Oh boy! Been there and done that.

At a past job, while working on a hotel management solution, we had to connect the reservation module to a third-party restaurant solution. The goal was for guests to pay their restaurant bills along with their hotel bills.

We were about six software engineers plus the QA team. We worked to make that solution scale to thousands of guests and restaurant orders. We built an eventually consistent solution with background processors using Hangfire, Domain-Driven Design, and all the best practices you can imagine.

There’s nothing wrong with that. The problem? When we finished our module and handed it off to the Product people. Nobody bought it. Six months of work…wasted.

The Product team only had a few leads when they pitched the idea to the Engineering team. But those leads weren’t going to wait six months for our integration. Or maybe the Product team wanted to list a new feature on the webpage so they could compare the product to the competitors. And after all that time optimizing for scale? Nobody bought it.