I tend to think that scalability is closely related to maintainability. And it seems to be often overlooked that people spend only a short time developing applications and the rest of the time maintaining it.
Also, scaling has almost certainly to do with data (which is more agile than code - so you like to have more and more of it), thats why your storage access cost should stay between O(1)
and O(n)
.
The perfectly scalable application for me is one that I could copy from an environment to another (similar) environment, configure a few values and run it to extend the execution realm of the whole application.