I've seen this excellent article before, it's worth reading.