The answer to the question, "When should I optimize?"
Cute. Wrong, but cute.
There's always someone who doesn't like cute, pithy answers because they're not 100% correct. However, for the 99% of programmers who optimize prematurely, this is the correct answer to the question.
I didn't say I didn't like it, I said it was wrong. Either that, or there is a stage of some projects that should be called "NotYet".
If you aren't yet forced by some requirements to optimize (which the question "When should I optimize?" seems to imply), it is likely that the project is in the "NotYet"-stage, isn't it?
"You have to denormalize the database and store everything as XML files" the expensive consultant said, "because this is a 'high visibility' project and performance will be crucial!!!"
"Look," I said, "according to the numbers I'm looking at, we expect a few thousand transactions a day of a few dozen records each and a required turnaround time of 60 seconds. I think Oracle can handle it. Where's your evidence that it won't?"
Tell ya' what: Let's just run it on the fraction of the data we have now, and see if it takes more than a second or two to run a transaction; then we can talk about it.
See also OptimizeLater.