Как правильно организовать структуру постоянно изменяющегося проекта?
Разделить на мелкие независимые части (типа микросервисов). Изолировано-самодостаточные.
ПС:
Навык декомпозиции - это самый важный навык для программиста, разрабатывающего сложные системы.
Забавно. Перечитал этот свой давнишний вопрос. Странно, что никто не упомянул из отвечающих про agile-разработку, SOLID, и книги и статьи по разработке от Robert Cecil Martin.