"Good code documents itself" is one of the most damaging takes in software engineering. Code itself won't tell you about the decisions and rationale behind it, nor about about higher-level structures and abstractions. All this needs elaboration in documentation.