Steve Jones hits upon a dilemma:
There may not be a large workload in production either, at least not at first.
So, what do you worry about first: your code being used or performing well? That’s a similar question to this one: Worry about Scalability or Popularity First? While most of us don’t work for a startup and our organizations have some sort of financial stability, does popularity matter?
I don’t always have a solid answer for this. The closest I have is to try to make my baseline:
- Easy for maintainers (including myself) to read
- Reasonably efficient
- Capable of some level of scale but not necessarily the most scalable
If you want practical terms, I create a somewhat-educated guess on approximately how many rows there will be in a steady state after launch and then multiply that by a factor of 2-3 when generating test data. If you can dodge 2-3x expectations, you can dodge a ball.
And if you suddenly balloon to 10x, you grouse and grumble and spend a couple of sprints digging out from the mess of success.