"рефакторинг" в этом цикле обычно помогает почистить проблемы с архитектурой но не отменяет необходимости на high-level уже иметь некое понимание в какую сторону и как чего делать
были ж эти 6 часов споров Кента Бэка и DHH с модерацией Фаулером где они как раз обсуждали главную проблему что люди думают что TDD достаточно и не нужен никакой upfront design
ну то есть, если ты будешь учить кого-то TDD то большую часть времени придется объяснять не "как там тесты не делать хрупкими" а "как сделать так что бы уменьшить количество сайд эффектов, что бы уменьшить количество зависимостей, как перераспределять код между объектами что бы связей было меньше"