In my experience:
- BDD (https://de.wikipedia.org/wiki/Behavior_Driven_Development) is great,
ties documentation to test directly - use ADRs
(https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions)
to document history of project (really helps to understand what influenced
current state of project)