Is self-documenting code enough documentation? Do you comment your code, and if so, what are the rules you follow? Do you keep documentation outside your code, like requirements or design documentation, ADRs? Is this documentation valuable and why? How do you make sure the docs stay up to date?