ADR-0008 · Цель по приёму в окне: сначала измерители#
Статус: принят · 2026-09-22
Метод: D-10 v1.1 · шаблон ADR v1.2
Участники: руководитель ИТ ЦУУ, аналитик, владелец продукта со стороны ведомства
Учебная запись: часть прогона U-02, система вымышлена. Форма и рассуждение настоящие.
Контекст#
Вход — 00-context.md.
Сценарий: обязанное лицо подало документ и получило вердикт до конца окна. Измеряется с точки зрения того, кто подаёт, а не сервиса.
| Вопрос | Ответ | Пометка |
|---|---|---|
| Какой сценарий и с чьей точки зрения | Подача → вердикт. Точка зрения — периметр: дальше начинается модуль вендора, который мы не инструментируем | [продукт] |
| Что считается «работает» | Успех: вердикт вынесен до 23:59 двадцатого числа. Неудача: не вынесен. Ни то ни другое: документ отвергнут по существу — это правильная работа, а не отказ | [продукт] |
| Откуда цель — из потери или из круглого числа | Из потери: несданный вовремя отчёт — штраф от 250 тыс ₽ и пересчёт сбора | [приказ] |
| Чем измеряется — существует ли сигнал сегодня? | Нет. Системы нет | [нет данных] |
| Сколько стоит измерение и как растёт | Сигналы дешёвые: коды ответов на периметре и время до вердикта из той же записи. Рост — с числом подач, то есть никак | [расчёт] |
| Что происходит при исчерпании бюджета и кто решает | Обычное следствие здесь не работает — см. ниже | [продукт] |
| На какой вопрос система обязана ответить в инциденте | «Сколько подач сейчас не имеют вердикта и сколько часов осталось до закрытия окна» | [продукт] |
Четвёртый вопрос отрицателен — решение состоит из двух шагов#
Сигнала нет и быть не может: системы нет, трафика нет, песочница нерепрезентативна. По правилу v1.1 раздел 3 заполняется для измерителей, а цели назначаются вторым шагом — после первого окна.
Дисквалификаторы#
| Дисквалификатор | Сработал | Что из этого следует |
|---|---|---|
| Цель обещана, сигнала нет | Да | Ни одна цель в этом ADR не обещана. Сначала измеритель |
| Измеряется не с точки зрения пользователя | Да, частично | Периметр — ближайшая честная точка. Что происходит между нашим периметром и ERP обязанного лица, мы не видим и видеть не будем |
| Исчерпание бюджета ошибок ни к чему не приводит | Да | Обычное следствие — «выкат новых функций останавливается» — здесь уже в силе безусловно по ADR-0007. Исчерпание не меняло бы ничего |
| Цель выбрана без цены | Не сработал | Цена измерения посчитана и мала |
| Измеритель падает вместе с измеряемым | Да | Время до вердикта считается из той же базы, что и подачи. Работа до: счётчик подач без вердикта ведётся вне основной базы |
Что меняется при исчерпании бюджета — раз обычное следствие не работает#
| Порог | Что меняется | Кто решает |
|---|---|---|
| Половина бюджета | Доля подач, идущих отложенным путём (ADR-0006), поднимается с 2 % до 100 %: приём сохраняется ценой скорости вердикта | Дежурный |
| Три четверти | Ведомство уведомляется о риске срыва окна письменно | Руководитель ИТ |
| Исчерпан | Запрашивается продление окна приказом — единственное средство, не зависящее от нас | Ведомство |
Это не темп разработки, а режим эксплуатации и внешняя эскалация. Бюджет ошибок остался расходуемым ресурсом, у исчерпания появилось следствие — но следствие другого рода, чем во всех примерах документа.
Рассмотренные варианты — матрица для измерителей#
Колонки — формы цели, применимые к сценарию. Нулевой вариант «не обещать» включён и проиграл.
| Ось | Что записывать | Доля успешных подач | Задержка как перцентиль с порогом | По сценарию целиком | Нулевой: не обещать |
|---|---|---|---|---|---|
| Измеримость сегодня | Есть ли сигнал, что достроить | Нет; достроить — коды ответов на периметре [расчёт] |
Нет; достроить — время от подачи до вердикта [расчёт] |
Нет; нужна сквозная трассировка через модуль вендора — недостижима | Измерять нечего |
| Точка зрения | Чья | Периметр | Периметр | Клиент — недостижим | — |
| Цена измерения | Что добавится к счёту | Близка к нулю [расчёт] |
Близка к нулю [расчёт] |
Неизвестна: чужой код [нет данных] |
0 |
| Чувствительность к росту | Цена при ×10 | Не меняется | Не меняется | — | — |
| Следствие исчерпания | Что меняется и кто решает | Таблица выше [продукт] |
Таблица выше [продукт] |
— | Ничего: обещания нет |
| Связь с потерей | Что теряет пользователь | Подача не прошла — повторит, время окна тратится | Вердикта нет к закрытию окна — штраф | — | Потеря есть, обещания нет: счёт уходит лицу |
Нулевой вариант законен и отвергнут ценой. Приказ назначает срок обязанному лицу, а не уровень обслуживания нам: «не обещать» — разрешено. Отвергнуто оно тем же доводом, что и ячейка 0 в ADR-0001: цена нашей неготовности конвертируется в чужой штраф, и здесь она посчитана в рублях.
Решение#
Ни одна цель не обещана. Строятся три измерителя.
| Измеритель | Что считает | Где живёт |
|---|---|---|
| Доля успешных подач | Принятые против всех попыток, по часам | Периметр |
| Время от подачи до вердикта | Перцентили 50, 90, 99 — отдельно для немедленного вердикта и для встречного | Из записи подачи |
| Подачи без вердикта и часы до закрытия окна | Счётчик, отвечающий на главный вопрос инцидента | Вне основной базы |
Второй шаг — назначение целей — датирован: после нагрузочной репетиции (ADR-0007) назначается предварительная цель, после первого окна — постоянная.
Форм выбрано две, и это типовая пара: доля успешных подач плюс задержка. Одна доля скрыла бы систему, которая принимает всё и выносит вердикт на сутки позже закрытия окна.
Обоснование#
Главный довод — правило «обещать можно только то, что уже измеряется». Соблазн назначить цель сейчас велик: сроки назначены приказом, и кажется, что цель обязана быть им равна. Но срок приказа — обязанность лица, а не наша доступность, и приравнивать одно к другому значит обещать наугад.
Форма «по сценарию целиком» отвергнута недостижимостью, а не ценой. Она честнее всех — меряет, дошёл ли пользователь до конца, — но конец находится в ERP обязанного лица, куда наша трассировка не идёт и не пойдёт.
Последствия#
Что придётся построить: три измерителя до 1 апреля; счётчик подач без вердикта вне основной базы; сбор базовой линии на репетиции.
Что становится дороже. Счётчик вне основной базы — второй контур хранения, которого ADR-0003 избегал сознательно. Здесь он неизбежен: измеритель, падающий вместе с измеряемым, не измеритель. Это прямое противоречие между двумя документами, разрешённое в пользу D-10, и цена — второе дежурство на один компонент.
Отрицательное последствие. До первого окна у системы нет ни одной обещанной цели. Если ведомство потребует цифру в договоре на сопровождение, её придётся назвать наугад — и это будет нарушением собственного правила.
Условия пересмотра#
- Прошло первое окно — назначаются постоянные цели.
- Появилась возможность измерять со стороны модуля вендора.
- Следствие исчерпания бюджета ни разу не применялось за окно — значит, пороги выбраны не там.
- Окно продлевалось приказом — базовая линия непригодна.
Связанные ADR#
Зависит от ADR-0006 (отложенный путь как средство при исчерпании) и ADR-0007 (репетиция даёт базовую линию). Противоречит ADR-0003 в части одного контура хранения; разрешено здесь.
Замечание 13 · Следствие исчерпания бюджета в системе без выкатов#
Все примеры документа описывают следствие исчерпания как изменение темпа разработки: выкат новых функций останавливается, приоритеты меняются. Здесь выкаты внутри окна уже запрещены ADR-0007 — безусловно, а не в зависимости от бюджета. Обычное следствие оказалось в силе с самого начала, и потому не следствие.
Дисквалификатор сработал правильно: он спросил «что изменится» и не получил ответа. Ответ пришлось искать в другом слое — режим эксплуатации и внешняя эскалация вплоть до продления окна приказом.
Похоже, дисквалификатор верен, а примеры к нему узки: они написаны для системы, где темп выката — главный расходуемый ресурс. Там, где выкат заморожен извне, расходуемым ресурсом становится что-то другое, и документ не говорит, где его искать.
Замечание 14 · Пятый дисквалификатор столкнул два документа#
D-10 требует, чтобы измеритель не падал вместе с измеряемым. D-01 в ADR-0003 выбрал один контур хранения именно потому, что второй удваивает дежурство.
Оба правы, и оба не знают друг о друге: ни в одной шапке нет указателя от D-01 к D-10 или обратно — а сверка шапок Ж5 объявила граф взаимным. Взаимность была проверена по ссылкам, которые уже есть; про отсутствующую пару она ничего не говорит.
Разрешено в пользу D-10: измеритель, падающий с измеряемым, бесполезен целиком, а второй контур стоит одного дежурства на один компонент. Но выбор сделан здесь, в ADR, а не документами — и это ровно тот случай, для которого мастер-шаблон завёл правило связанных решений, не назвав эту пару.