Может просто сделать схему всего проекта на UML или хотя бы его кусков? Я всегда считал что в нормальных проектах есть архитектор который придумывает все связи от и до и сверху опускает график UML. Хз может конечно я не прав, но я бы делал именно так. А если кто то не делает то что приходит сверху, он либо должен четко обосновать в чем не правы на верху либо идти в другое место работать. Шаблоны проектирования используют все, просто многие не понимают что они используют шаблоны.
Рефакторинг кода это процесс бесконечный имхо. Обычно внедрения новых фич, заставляет делать рефакторинг кода. Это означает, что изначально не предусмотрели что то. Можно изначально все сделать в такой абстракции с шаблонами, что потом будет меньше работы.
Рефакторинг кода можно делать потом что бы сделать код быстрее, убирая кучу абстракции. Но это безумие.
читабельность кода - это просто применения принятых стандартов. И лучше не своих внутренних.
Все эти вещи приходят с опытом, когда по 10 раз переписываешь проекты уже в самом начале понимаешь где будут проблемы, даже когда кода еще нет.