Yesterday I was going through some code of mine which made no sense to me at first (written less than a month ago). When I understood it, I quickly added comments to avoid the exercise. This made me think that, had I commented on the code as I wrote it, my comments might not have helped a later "me" decipher the code.
When in the code's life-time is it best to add comments? If the answer is that it depends, what does it depend on?
Note: I am asking for experience- or, better yet, literature-based answers, moreso than "thoughts on the subject." Also, please note that this question assumes that you do need to comment code (occasionally, sometimes, or always).