Разработчику нравится находить красивую модель мира.

Один статус вместо пяти. Один процесс вместо трёх. Одно правило вместо десятка исключений.

В этот момент кажется, что задача решена.

А потом приходит бизнес.

- Этот клиент особенный. - Для этого партнёра другой процесс. - Здесь можно отменить после подтверждения. - А здесь нельзя. - А ещё есть ручная обработка.

И оказывается, что реальный мир не обязан укладываться в нашу концепцию.

Чем дольше живёт продукт, тем больше он напоминает не учебник, а сборник компромиссов. Поэтому ценность архитектуры не в том, насколько красиво она описывает систему сегодня, а в том, насколько спокойно она переживает появление новых правил завтра.

Хорошая архитектура не борется с изменениями.

Она оставляет для них место.