This description of problem analysis by Reginald Braithwaite (who is a smart person) struck a chord with me: I found this to be an important point in my own programming, and I don't know if that's a general point but quite often we see something and we are very tempted to say "Oh, this is...