Конкретно по коду, лично мне - помогает git
По коммитам и ревестам вполне можно освежить память по проделанной работе, ну и конечно же просмотреть работу других программистов
По поводу майнд мапов - их лучше рисовать изначально, до написания кода, т.е. на этапе проектирования приложения, т.е. описывать, что и как будет взаимодействовать - это собственно и будет Разработка
В пример - обычный дизайн - сначала рисуется прототип - а уже потом сам дизайн
По теме - сначала рисуем схему работы приложения, потом пишем код
Комментарии пишу, стараюсь все структуризировать, по функциям раскидываю однообразные задачи и тому подобное, но целостной картины всего проекта в голове нет, что-то забываю. тем самым могу написать какой-то модуль, которые через хрен знает сколько строк кода неожиданно может повлиять на другой кусок кода и что-то сломать.
Это говорит лишь об отсутствии опыта и наличии мышления обычного программиста, а не разработчика/архитектора приложения. Т.е. в голове лежит лишь конкретная задача, а не работа приложения в целом.
Как это исправлять - больше участвовать именно в разработке архитектуры приложения - чаще посещать совещания по будущей работе приложения, составлять майнд мепы, рисовать схему на листке, на доске, думать не над тем, как написать класс и методы, а над тем, как будет работать приложение в целом, т.е. главное - чтобы была видна общая картина работы приложения .. Пару раз нарисуете, продумаете архитектуру приложения, потом мозг уже начнёт сам думать в этом направлении, без необходимости что-либо визуализировать .. Ну и как следствие, архитектура приложения всегда будет в голове.