Что такое ADR, и почему он нужен даже команде из одного человека

18.06.26

Управление ИТ - Стандарты и документация

Про то, как перестать терять знания о принятых архитектурных решениях. Разбираю, что такое Architecture Decision Record (ADR) и как начать вести его буквально сегодня.

Подниму тему, которую на Инфостарте, кажется, еще не обсуждали. В большом мире разработки про ADR пишут уже лет десять, а у нас в 1С-сообществе про него почти не слышно. И зря.

Сейчас объясню, почему.

 

Знакомая история?

 

Приходит к вам коллега (или вы сами через год) и спрашивает: «А почему вот этот обмен у нас сделан через HTTP-сервис, а не через типовую синхронизацию? И почему данные складываем в регистр сведений, а не в справочник?»

Вы смотрите на код. Код рабочий, понятный, имена говорящие (комментариев, разумеется, нет - мы же не варвары). Но почему было принято именно такое решение - не помнит никто. Автор уволился, задача в трекере закрыта и неинформативна, переписка в чате утонула, а тот, кто все помнил, ушел на пенсию. Остался только результат. Причины испарились.

И тут начинается самое интересное. Новый разработчик смотрит на «странное» решение, не понимает его мотивов, и одно из двух:

  • либо аккуратно обходит его стороной, делая костыли вокруг («ну раз так сделано, значит, наверное, зачем-то надо»);
  • либо смело переделывает «как правильно» - и через неделю выясняется, что наступил ровно на те грабли, от которых исходное решение как раз и защищало.

Знание о том, почему мы сделали именно так, - самое хрупкое знание в проекте. Код живет в репозитории, данные живут в базе. А причины решений живут только в головах. Головы, как известно, увольняются и забывают.

ADR - это лекарство ровно от этой болезни.

 

Что такое ADR

 

ADR расшифровывается как Architecture Decision Record - запись об архитектурном решении.

Суть простая: каждое значимое архитектурное решение мы фиксируем в виде короткого документа. Никаких толстых томов проектной документации, которые никто не читает и которые устаревают в день подписания. Маленькая заметка на полстранички - вот и весь формат.

Одно решение - один документ. Документы складываем рядом с кодом, нумеруем по порядку и больше не трогаем (об этом ниже, это важный момент).

Сам код отвечает на вопрос «как это работает». ADR отвечает на другой вопрос - «почему мы решили сделать именно так».

Почувствуйте разницу:

  • Документация описывает, как устроена система сейчас.
  • ADR описывает, почему она устроена именно так, и какие альтернативы мы отвергли.

 

Кто это придумал

 

Чтобы сразу снять вопрос «а кто это вообще придумал и можно ли этому доверять».

ADR - давно устоявшаяся индустриальная практика. С конкретными авторами, со стандартными форматами. Появилась она не вчера.

  • Майкл Нюгард (Michael Nygard), 2011 - статья «Documenting Architecture Decisions». Это канонический первоисточник, именно здесь сформулирован тот самый формат, который мы разбираем ниже. Хотите прочитать что-то одно про ADR в оригинале - читайте эту статью.
  • ThoughtWorks Technology Radar - авторитетный отраслевой «радар технологий» от большой международной IT-компании. Именно он в свое время вывел ADR в мейнстрим, присвоив практике статус «Adopt» (рекомендовано к повсеместному применению). После этого про ADR заговорили все.
  • MADR (Markdown Architectural Decision Records) и репозиторий Joel Parker Henderson - это уже про готовые шаблоны. MADR — популярный формат записи ADR в markdown. Огромная коллекция шаблонов, примеров и ссылок собрана в репозитории Joel Parker Henderson, а «домашняя страница» практики со стандартными шаблонами живет на adr.github.io.

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

 

Как выглядит ADR

 

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

Заголовок. Номер и краткая суть. Например: "ADR-0012: Адресное хранение на штатном ячеистом складе ERP, без отдельной WMS".

Статус. Одно из: "Предложено", "Принято", "Отклонено", "Устарело", "Заменено на ADR-NNNN". Статус - это вся «жизнь» решения. Решение приняли - статус «Принято». Через два года отказались - документ не удаляем, ставим «Устарело» и пишем новый ADR со ссылкой на старый.

Контекст. Что происходит, какая задача стоит, какие ограничения. Тут описываем ситуацию максимально полно: какая версия платформы, какие требования бизнеса, что у нас уже есть, чего нельзя трогать.

Решение. Что именно мы решили сделать. Коротко и однозначно.

Последствия. Что мы получаем и чем за это платим. Тут самая ценная часть - перечислить минусы. Любое архитектурное решение - это компромисс. Идеальных решений не бывает, бывают подходящие под контекст.

Иногда добавляют еще секцию Рассмотренные альтернативы - что еще мы обдумывали и почему отказались. Лично я считаю эту секцию чуть ли не самой полезной: именно она спасает будущего разработчика от соблазна «а давайте переделаем как правильно».

 

Пример из жизни

 

Возьму конкретный пример. Ситуация знакома всем, кто внедрял складской учет: на складе бардак, и встает вопрос - отдельная WMS-система или штатные возможности ERP?

# ADR-0012: Адресное хранение на штатном ячеистом складе ERP, без отдельной WMS

## Статус
Принято (2026-02-10)

## Контекст
На складе бардак: товар ищут вручную, новички не знают, где что лежит.
Бизнесу нужно прежде всего знать, в какой ячейке находится конкретный товар. Сложные складские процессы на текущем объеме не требуются.
Уже внедрена 1С:ERP 2.5.22.137, склад работает в той же базе.

## Решение
Включаем и настраиваем типовой механизм адресного (ячеистого) хранения в 1С:ERP. Отдельную WMS-систему не внедряем.

## Последствия
+ Не плодим еще одну систему и интеграцию с ней - меньше точек отказа и ниже стоимость владения.
+ Адресный склад работает «из коробки», данные о ячейках - в той же базе, отдельный обмен не нужен.
+ Решаем главную задачу бизнеса: всегда видно, где лежит товар.
- Функционально беднее полноценной WMS (тонкое управление складскими процессами, сложные алгоритмы отбора).
- Нужно дорабатывать рабочие места кладовщиков, штатные не всем удобны.

## Рассмотренные альтернативы
- Отдельная WMS (например, класса Axelot) - отклонено: избыточно для текущих задач.
Управлять складскими процессами бизнесу пока не нужно, а интеграция и сопровождение второй системы стоят дорого.

Полстранички. Пять минут на написание. А теперь представьте, что через год новый разработчик (или новый РП, который рвется «внедрить уже нормальную WMS») открывает этот файл - и ему не нужно никого допрашивать. Он сразу видит, что вопрос WMS уже обдумывали, на каких объемах решение принималось и при каких условиях его стоит пересмотреть.

 

 

Архитектор - это тот, кто принимает решения

 

Отвлечемся от файлов и шаблонов. Кто вообще все это пишет?

Если спросить, чем занимается архитектор, ответы будут разные: «рисует схемы», «знает платформу вглубь», «согласовывает доработки», «гоняет на ревью». Все так. Но если выпарить лишнее, останется одно: архитектор - это человек, который принимает архитектурные решения. Это и есть суть профессии. Код он тоже пишет, схемы тоже рисует, но главное в его работе - на развилках выбрать дорогу и отвечать за выбор.

А теперь смотрите, что получается. Если работа архитектора - это принятие решений, то ADR - буквально материальный результат его труда. Зафиксированное решение. Та самая «деталь», которую архитектор произвел на свет.

Подумайте: у разработчика результат работы виден и осязаем - это коммиты и работающий функционал, который можно потыкать. А что предъявить архитектору? «Я тут подумал и решил, что обмен надо делать вот так»? Решение, которое нигде не записано, - это решение, которого как будто и не было. Его нельзя ни перечитать, ни оспорить, ни передать, ни вспомнить через год.

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

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

 

Почему это особенно актуально для 1С

 

Знаете, что я заметил? В мире 1С особенно много решений, которые принимаются «по умолчанию» и потом удивляют новичков.

  • Дорабатывать типовую или делать расширение?
  • Одно большое расширение или много маленьких? (это решение потом аукнется отдельными приключениями)
  • Отказаться от хранилища в пользу git, работать в конфигураторе или EDT?
  • Свой регистр или подсистема из БСП?

Каждый из этих вопросов - это развилка. На развилке мы выбираем дорогу, и у выбора есть причины. Но причины эти мы обычно проговариваем вслух на созвоне, киваем друг другу - и забываем. А расхлебывает потом тот, кто пришел в проект позже.

У нас вообще не принято фиксировать «почему». Выгружать конфигурацию в git умеем, CI настраиваем, автотесты гоняем, рассказываем на инфостарте, какие мы крутые. А сам процесс принятия решений остается устным фольклором, который передается от старожила к новичку у виртуального костра. ADR превращает этот фольклор в письменность.

 

Где хранить ADR

 

Тут моя позиция простая: храните ADR рядом с кодом, в git.

Раз уж мы выгружаем конфигурацию в репозиторий (а вы ведь выгружаете, правда?), то заведите там папку docs/adr/ и складывайте туда обычные markdown-файлы:

docs/adr/

  0001 Выбор механизма обмена.md

  0002 Отказ от хранилища.md

  0003 Структура расширений.md

  ...

 

Почему именно так, а не в Confluence, не в вики, не в Notion и не в «общей папке на сервере»:

- ADR лежит там же, где код, и попадает к разработчику вместе с командой git clone. Никуда ходить не надо.

- ADR версионируется вместе с кодом. По истории git видно, когда и в каком контексте появилось решение.

- Markdown читается откуда угодно - хоть в браузере на GitHub/GitLab, хоть в VS Code, хоть просто в блокноте.

- Не требует покупки и внедрения еще одной системы.

Если хочется автоматизации — есть утилиты adr-tools (создание новой записи одной командой) и Log4brains (собирает из ваших markdown-файлов статический сайт со всеми решениями). Но это уже опционально. Начать можно вообще без инструментов, с одного текстового файла.

А есть ли что-то родное, прямо внутри 1С? Да. Если хотите вести ADR, не выходя из экосистемы 1С, посмотрите подсистему АрхиТопос - православный инструмент для архитектора прямо в конфигурации 1С. Среди прочего там есть справочник «Реестр архитектурных решений», по сути та же концепция ADR: он позволяет фиксировать и документировать архитектурные решения по информационной системе или проекту. Подход тут другой, решения хранятся внутри базы, а не в git-репозитории. У этого есть и плюсы (все под рукой у архитектора в привычном интерфейсе, доступно аналитикам без git), и минусы (ADR живет отдельно от исходников и не едет вместе с git clone).

Что вам ближе, git-way или 1С-way, решайте сами. Главное - чтобы решения вообще фиксировались, а уж чем именно, дело десятое.

 

«Это же лишняя бюрократия!»

 

Собрал возражения.

«У нас нет времени на писанину». На написание ADR уходит 5-10 минут. Решение вы все равно уже обдумали и обсудили - остается записать то, что и так звучало вслух. Сравните это с часами, которые потом уходят на археологические раскопки «а почему тут так?».

«И так все знают, зачем документировать очевидное». Все знают - сегодня. Через год половина команды сменится, а оставшаяся половина забудет. «Очевидное» - это самое опасное слово в разработке. То, что очевидно автору в момент написания, абсолютно неочевидно тому, кто читает код через два года в шесть вечера в пятницу.

«У нас же есть задачи в трекере». Задача в трекере описывает, что надо сделать. Она не описывает, почему выбран именно такой способ, и почти никогда не содержит отвергнутых альтернатив. Трекеры к тому же меняются (вспомните, сколько раз вы мигрировали с одной системы на другую - и где теперь те старые задачи?). А ADR живет вместе с кодом ровно столько, сколько живет код.

«Это для больших команд, а я один». Вот тут самое интересное. «Команда из одного человека» - это команда из вас сегодняшнего и вас через год. И поверьте, "вы через год" - совсем другой человек, который смотрит на ваш сегодняшний код с искренним недоумением. ADR - это письмо самому себе в будущее.

 

Чего ADR не заменяет

 

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

ADR не отменяет:

  • проектную документацию и ТЗ
  • описание API и справку по функциям
  • пользовательские инструкции
  • схемы интеграций и регламенты эксплуатации

ADR фиксирует только архитектурные решения - те, что трудно и дорого изменить потом. Заводить ADR на каждый чих не надо. Переименовали реквизит -не ADR. Выбрали стратегию обмена между базами - вот это ADR. Чутье на значимость решения придет быстро.

 

С чего начать прямо сегодня

 

Не надо ждать понедельника и одобрения начальства. Сделайте так:

1. Заведите в репозитории папку docs/adr/.

2. Скопируйте шаблон из этой статьи в файл "0001-template.md" (или возьмите готовый, форматов в интернете полно).

3. Вспомните последнее серьезное архитектурное решение в вашем проекте и опишите его задним числом. Прямо сейчас, по горячим следам.

4. Договоритесь с собой (и командой, если она есть) - следующее значимое решение фиксируем сразу.

Все. Никакого внедрения, никакого нового софта. Один markdown-файл — и вы уже на шаг впереди подавляющего большинства 1С-проектов.

 

Заключение

 

Мы, 1С-ники, научились многому: выгружать в git, делать ревью, строить CI/CD. И при этом продолжаем терять самое ценное - причины наших решений.

Код храним бережно, а мотивы выбрасываем.

ADR - дешевый (буквально полстранички и пять минут) способ перестать это делать. Он не требует ни денег, ни разрешения. Только привычки.

Попробуйте завести хотя бы один ADR на ваш текущий проект. А через год напишите, пригодилось или нет. Интересно, приживется ли эта практика в нашем 1С-мире.

А пока расскажите в комментариях: вы фиксируете причины своих архитектурных решений? Или тоже полагаетесь на устный фольклор и память старожилов?

Архитектура ADR

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Работа с требованиями Стандарты и документация Россия Бесплатно (free)

“Не хотим заполнять документ вручную, пусть он сам откуда-то подтянет данные, заполнится и запишется” — звучит понятно только до тех пор, пока разработчик не начнет задавать вопросы. Откуда подтянуть? При каких условиях? Что делать, если данных нет? Кто имеет право запускать сценарий? Что должно попасть в другую базу 1С после согласования? Разбираем, почему мутная задача всегда становится дорогой, какие требования нужны 1С-разработчику до начала реализации и как простая карточка задачи экономит часы разработки, уточнений и переделок.

16.06.2026    152    0    NikolayMaerov    0    

1

Стандарты и документация 1С 8.3 Россия Бесплатно (free)

Внешние обработки и отчеты часто появляются в 1С как быстрый и удобный способ решить задачу: выгрузить данные, проверить остатки, сформировать нестандартный отчет, выполнить разовую обработку или закрыть срочную потребность бизнеса. Но со временем .epf и .erf могут превратиться в теневой слой системы: без владельцев, версий, проверки после обновлений, описания назначения и понимания рисков. Разбираем, как держать внешние обработки и отчеты под контролем

15.06.2026    203    0    NikolayMaerov    0    

2

Стандарты и документация Бесплатно (free)

НСИ часто вспоминают слишком поздно: когда отчёты уже не сходятся, интеграции падают, маршруты согласования уходят не тем людям, а пользователи спорят, какой контрагент или номенклатура “правильные”. Разбираем, почему нормативно-справочная информация критична для 1С-проектов, какие ошибки встречаются чаще всего и как начать приводить НСИ в порядок без гигантского отдельного проекта.

11.06.2026    391    0    YA_826532418    0    

2

Стандарты и документация 1С:Предприятие 8 1С:ERP Управление предприятием 2 Машиностроение и приборостроение Бесплатно (free)

В связи с тем, что большинство предприятий, на которых мы проводим внедрения, работают с конструкторской документацией, составили краткую справку по подготовке к внедрению «1С:ERP Управление предприятием 2».

20.05.2026    510    0    AiBCifra-1S-ERP-UH    1    

1

Стандарты и документация Бесплатно (free)

Рассказываем, как использовать текст договора в качестве инструмента управления проектом: фиксировать ожидания, этапы работ, сценарии выполнения и возможные изменения. На примере проектов переноса данных 1С показываем, чем они отличаются от проектов внедрения, зачем нужна короткая анкета на старте и как декомпозиция помогает заранее «разложить проект на кирпичики». Объясняем, почему IT-проекты можно оценивать по аналогии со строительством – через понятные виды работ, объемы и нормировки, – а коммерческое предложение стоит делать достаточно подробным, чтобы к нему можно было вернуться при изменении сценария. Отдельно разбираем, как повторяющиеся этапы и фиксация работ по периодам помогают гибко управлять объемом проекта, снижать риски для подрядчика и упрощать согласования на стороне заказчика.

14.05.2026    652    9    primat    0    

2

Стандарты и документация Бесплатно (free)

Безопасная конфигурация в 1С начинается с соблюдения стандартов v8std, которые определяют требования к защите серверного API, работе с внешним кодом, запуску приложений и хранению чувствительных данных. Объясняем ключевые принципы безопасной разработки: от корректного использования признака «Вызов сервера» и безопасного хранения паролей до правил запуска внешних программ, ограничения исполнения произвольного кода и работы с внешними компонентами. Подробный разбор каждого требования показывает, как минимизировать риски и создать конфигурацию, устойчивую к типовым угрозам безопасности.

07.05.2026    2457    0    zeegin    3    

22

Стандарты и документация Коммуникации Россия Бесплатно (free)

Как оценить зрелость команды 1С не по общему чек-листу, а по практикам, которые реально важны для платформы? Собрал модель из 8 направлений — от управления кодом и CI/CD до AI-практик — с конкретными критериями на каждом из пяти уровней. Внутри — открытый инструмент для самооценки.

08.04.2026    1085    0    maraty    10    

3

Управление знаниями в ИТ Стандарты и документация Бесплатно (free)

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

31.03.2026    733    0    monwig    0    

0
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user-z99999 78 18.06.26 13:05 Сейчас в теме
Посмотрел код, он написан плохо. Переписал, теперь очень быстро работает, и правильно.
Для ADR нужно секретаря нанимать или работа у вас должна быть неспешная.
2. ardn 765 18.06.26 14:50 Сейчас в теме
(1) Плохой код нужно переписывать, это однозначно! А если по коду непонятно, почему вообще такое решение используется, ADR бы пригодился
Для отправки сообщения требуется регистрация/авторизация