SP
Тут как бы такая штука - требования постоянно меняются но в целом в рамках какой-то фичи требования имеют свойство стабилизироваться. Потому через пяток юзкейсов за счет рефакторинга ты можешь получить стабильный интерфейс и стабильные точки расширения этих интерфейсов.
Но это мягко скажем сложно и думать что "можно просто взять и писать по солиду" - это поиск серебрянной пули. Без рефакторинга и анализа потока изменений, без анализа зависимостей, все это бесполезно.