Debugging code is twice as hard as writing it; if you're as clever as you can be when you write it, you are, by definition, not smart enough to debug it. -Kernighan