To that I would add the following: trust no one, including yourself. I might think I know what the code is doing, but in the real world I know that I can, have been and will be wrong from time to time.<p>But nothing beats the satisfaction of getting code working after 2 weeks of building new tools to help debug a really wonky corner case.