Phantoms in the source
I guess this could not be a non-addressed topic.
Most of the managers I know like comments, most of the developers I know tend to avoid them.
I think the former like them because see them as a sort of inside-the-code-documentation they can find useful when developers are not available, the latter avoid them because they know that most of the times they can't rely on them.
An often quoted answer on stackoverflow is the following:
The comments should ONLY express the WHY, as in 'why would anyone want to do this?' or 'why did you use this algorithm instead of that' or 'why does this even work at all'
...the code says what is being done.
I totally agree with that; I like to document my methods to explain why they do what they do, if I find myself describing too much actions in the documentation then most probably I am giving too much responsability to that method. So to be more precise, I'm not commenting my code, I'm documenting it, the thruth lies in the middle.
So to remark: code what, comment why.
Besides:
Programs must be written for people to read, and only incidentally for machines to execute.
...as Edsger Wybe Dijkstra said (damn I should read more writings from him).
So if I use lots of comments it's because I am sure that my code will not be understood from the next person that will read it (even if that person is me), because if I were sure I would't have added so much noise in my code.
So this is what I think about comments, I left out the part regarding variables and methods names, I'll cover that later on.
I'll close with this awesome post, sometimes I use to go back there and have a look, laughing helps you!