I interpret self documenting as writing the
what in the code and writing comments about the
why. While minimizing the places where you need to explain your code.
My role of thumb is that if it's not obvious why that particular line is there and removing it would break functionality, add a comment.