This is one of the very first lessons that I learned as a junior developer many years ago. I wrote a lovely but complex SQL query that ran in 0.01s on our development server but took over a minute to execute on the production database which stored pricing data for Australia's largest retailer... Had the team been working against a full copy of the production database I would have discovered my inefficient code early, while I was actually writing it, rather than later when were were in user testing. - Clinton ForbesReal data is always best if you can get your hands on it but if you can't just write a script to fill up your database with a realistic amount of varied data. Don't just use it when developing either. Use it in your automated tests too. Putting it in your tests has two advantages. 1) It will provide more edge cases in the data which means your tests will be proving that things work not just in a handful of cases but in a significantly varied set of cases. 2) If your automated tests start taking forever to run on a decent computer you know you need to start looking for things to optimize.
K. Rhodes 2007-05-18