Beware people who say they have self-commenting code.
Be wary-er of a programming team where everyone agrees their team's code is self-commenting!

People who say their code is self-commenting count on everyone looking at the code to understand similar coventions. The problem is that they also often overlook and take for granted the full scope of the conventions that they're using. Oh, sure, they might use Hungarian and whitespace, but the conventions used on a programming team extend far past code format. It dips all the way into code structure, logic control, variable scoping, and the like.

And if you have a number of people who expect there to always be, say, the path to an error log file defined as a object-level scope variable in every object (let's not debate whether that coding practice is a bad idea and just accept that it is), then the fact that there's nowhere, no comment at all, for a person new to the code to find that information never occurs to the people who used to support that project -- nor will it occur to anyone who's been using those same esoteric conventions for months or years in their own code.

Some conventions are universal, but those are only the conventions defined by the programming language itself, like variable types or the grammar for writing a switch/select/case statement. EVERYTHING else needs to be considered commentable.