Разработчику нравится находить красивую модель мира.
Один статус вместо пяти. Один процесс вместо трёх. Одно правило вместо десятка исключений.
В этот момент кажется, что задача решена.
А потом приходит бизнес.
- Этот клиент особенный. - Для этого партнёра другой процесс. - Здесь можно отменить после подтверждения. - А здесь нельзя. - А ещё есть ручная обработка.
И оказывается, что реальный мир не обязан укладываться в нашу концепцию.
Чем дольше живёт продукт, тем больше он напоминает не учебник, а сборник компромиссов. Поэтому ценность архитектуры не в том, насколько красиво она описывает систему сегодня, а в том, насколько спокойно она переживает появление новых правил завтра.
Хорошая архитектура не борется с изменениями.
Она оставляет для них место.