18.09.2026

Я фиксирую архитектурные допущения раньше, чем они станут скрытым риском

Схема архитектуры на прозрачной бумаге и ноутбук с индикаторами проверки

В любой системе есть решения, принятые не на вечность. Мы предполагаем, что внешний сервис выдержит нужную нагрузку, что данных пока немного, что один процесс будет выполнять конкретная роль, что интеграция отвечает в пределах нескольких секунд. Это нормально. Проблема начинается не с допущения, а с момента, когда оно исчезает из памяти команды.

Я стараюсь фиксировать такие вещи раньше, чем они станут скрытым риском. Не ради толстого документа. Ради простого ответа на вопрос, который неизбежно появится позже: почему система устроена именно так и что должно случиться, чтобы это решение пересмотреть?

Допущение — это временная опора

Когда строят мост через небольшую реку, опоры рассчитывают под ожидаемую воду. Если русло меняется, это не значит, что инженеры ошиблись в день строительства. Ошибкой будет не заметить, что вода стала другой.

В архитектуре работает та же логика. Команда может сознательно хранить часть данных в одной системе, пока их объём невелик. Может синхронизировать изменения раз в час, пока бизнес не требует мгновенного статуса. Может оставить ручную проверку на редком этапе. Всё это разумно, если условие названо вслух.

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

Как выглядит хорошая запись

Мне достаточно пяти строк: само предположение, причина выбора, граница его действия, сигнал к пересмотру и владелец. Например: «Статус заказа обновляется раз в час, потому что менеджер принимает решение раз в смену; пересмотреть, если появится обещание клиенту в реальном времени; владелец — руководитель процесса вместе с архитектором».

Такая запись не превращает команду в канцелярию. Она экономит разговоры в будущем. Когда кто-то предлагает срочную доработку, можно увидеть: это новая потребность или мы уже вышли за границу старого решения?

Проверка должна быть привязана к реальной операции

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

Такой разбор превращает допущение в проверяемую гипотезу. Если мы считали, что задержка допустима, надо посмотреть не на цифру в мониторинге, а на работу человека, который ждёт этот статус. Если предполагали, что два сервиса независимы, надо проверить, что произойдёт при недоступности одного из них.

Именно поэтому я не называю интеграцию надёжной, пока не могу проследить одну операцию целиком. Но допущения шире интеграций: они живут в данных, правах, резервных сценариях и привычках команды.

У каждого риска должен быть владелец

Владелец не обязан лично исправлять код. Он обязан заметить, что условие перестало быть правдой, и собрать нужных людей для решения. У допущения без владельца почти всегда один и тот же конец: его обнаруживают на встрече после инцидента, когда времени на спокойный выбор уже нет.

Это особенно заметно в системах, где бизнес-правила меняются чаще, чем сама технология. Без явного владельца архитектурный выбор легко превращается в спор. Я разбирал этот риск в статье об архитектурном выборе без владельца. Архитектура не должна быть монументом. Она должна помогать безопасно менять то, что действительно меняется.

Не путайте допущения с техническим долгом

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

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

Короткий список для команды

  • Какие условия мы сейчас считаем правдой?
  • Что произойдёт, если одно из них изменится?
  • Какой наблюдаемый сигнал скажет об этом раньше клиента?
  • Кто обязан поднять вопрос о пересмотре?
  • Где зафиксировано решение и его причина?

Я не пытаюсь записать каждую мысль. Достаточно отмечать то, что влияет на деньги, сроки, доступы, данные и способность команды восстановиться после ошибки. Журнал изменений полезен именно здесь: он сохраняет не только то, что поменялось, но и причину, по которой это было сделано.

Архитектура становится зрелой не тогда, когда на схеме больше блоков. Она взрослеет, когда команда умеет честно назвать свои допущения, проверить их на живой операции и вовремя изменить решение.

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

Поделиться

Отправь тому, кому будет полезно

Telegram VK

Обсуждение

Обсудим?

Оставить комментарий

Ваш email не будет опубликован. Поля со звёздочкой обязательны.