I'm one of those developers that has the mindset that the code written should be self-explanatory and read like a book.
HOWEVER, when developing library code for other people to use I try to put as much documentation in the header files as possible; which brings up the question: Is documenting methods that are non-Public even worth the time? They won't be using them directly, in fact, they can't. At the same time if I distribute the raw code (albeit, reluctantly) those non-Public methods will be visible and may need explaining.
Just looking for some standards and practices that you all see or use in your travels.