Наверное, тут помогает хорошая архитектурная абстракция проекта. Большие листинги становятся маленькими или, по крайней мере, разбиваются на логические сущности. Пока проект строится - пишутся просто заглушки, затем эти заглушки реализуются. Но в любом случае, самая важная, глобальная архитектура должна обдумываться заранее, чтобы потом не приходилось держать в голове весь проект =)
Как правило, запиливая отдельный модуль, глобальную архитектуру по отношению к нему можно изображать достаточно схематично, а в рамках этого некоего модуля всё в мозгу должно помещаться с необходимой точностью.