Documentation is important, including documentation that explains the _intention_ of each major feature or algorithm.
But there are some other techniques that could help too:
1. Scrum focuses on a daily sharing of what people are working on; but most developers _don't care_ what other people are working on - the time is better spent on #2 below.
2. Developers want/need to know how everything fits togther. The time spent (wasted) in standups is better spent having an occasional (once or twice a week, as needed) discussion of how all the pieces fit together, and any integration issues/concerns.
3. There need to be automated end-to-end tests that would detect if something important gets removed.