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?




For our API, documenting each endpoint is necessary to generate the API reference.
We also keep a "developer wiki" which is a bit of external documentation and walkthroughs, tips, tutorials.
Design and requirement documents are usually archived on Google Drive, but from my experience they are only really useful in the beginning and are very high maintenance in case of changes, so we always keep them but warn future readers that things may have changed.