Real programmers only comment what is absolutely necessary. Any time we feel that the code needs a comment we should take a step back and think about ways in which we can make the code more clear. Often times separating a set of conditional logic into a separate method that indicates its intention is enough. I view the need for comments as a warning, if I need this comment is the code readable enough? Probably not, however, it usually only takes a couple “Extract Method” and “Rename Method” refactorings before things become more clear.
Xml comments make it more difficult to stick by the “only comment what is necessary” rule. The ability to generate full API documentation via Xml comments causes me to do a lot more commenting then I would like. I'm still trying to find the right balance.
What's your opinion?
[Inspired by: Real Programmers....don't use comments?!?!]