ADR-0005 · Цели: ни одна не обещана, построены три измерителя#
Статус: принят · 2026-09-18
Метод: D-10 v1.0 · шаблон ADR v1.2
Участники: сопровождение (3 человека), Каменев — руководитель операционного блока
Учебная запись: часть прогона E-03, система вымышлена. Форма и рассуждение настоящие.
Контекст#
Вход — 00-context.md. Сюда сходятся три висящих входа предыдущих этапов: понижение доступности склада до 99,5 % (ADR-0001), неизвестная доля расхождений, ловимых потоком (ADR-0002), и значение N для сигнала «пункт молчит» (ADR-0004).
Область — один сценарий: обнаружение расхождения с физическим миром. Продуктовая цель — сократить время обнаружения с 90 суток до суток [продукт].
Семь вопросов#
| Вопрос | Ответ |
|---|---|
| Какой сценарий и с чьей точки зрения измеряется | Расхождение учёта с полкой. Точка зрения — полка, а не система: система о расхождении не знает по построению |
| Что считается «работает» | Посылка числится там, где лежит. Неудача — не числится или числится не там. Третьего нет, и это редкость |
| Откуда цель — из потери или из круглого числа | Из потери: 4 320 посылок × 3 500 ₽ = 15,1 млн ₽ подвешено в любой момент [расчёт]. Число «сутки» при этом круглое и не выведено ни из чего [продукт] |
| Чем измеряется — и существует ли сигнал сегодня | Не существует ни один. Предметных метрик нет; единственный измеритель — квартальная инвентаризация [орг] |
| Сколько стоит измерение и как растёт | Считается ниже — это главный расчёт этапа |
| Что происходит при исчерпании бюджета и кто решает | [нет данных] — не спрашивали продукт. Закрыто на этом этапе разговором, см. решение |
| На какой вопрос система обязана отвечать в инциденте | Разборов не ведётся вовсе. Повторяющийся вопрос — «где посылка», 1 200 раз в сутки в поддержке [замер] |
Дисквалификаторы#
Сработали четыре из пяти.
| Условие | Что вышло |
|---|---|
| Цель обещана, сигнала нет | Сработал в упор. Одиннадцать лет действует неформальное обещание «расхождения находим на инвентаризации», и оно не проверяется ничем, кроме самой инвентаризации. Это ровно то, что D-10 называет худшим исходом: нулевой вариант, которому приписали свойства первого |
| Измеряется не с точки зрения пользователя | Сработал дважды. По расхождениям — измеряется только инвентаризацией, то есть с точки зрения полки, и это верно. По доступности склада из ADR-0001 — измеряется временем работы процесса, то есть с точки зрения сервиса. 99,5 % склада обещать нечем |
| Исчерпание бюджета ни к чему не приводит | Сработал. Инвентаризация показывает 0,4 % четыре раза в год, и после неё не меняется ничего: расхождения списываются, причина не разбирается |
| Цель выбрана без цены | Сработал. «Сутки» названы без единого расчёта. Расчёт сделан здесь и цель отменил |
| Измеритель падает вместе с измеряемым | Не сработал: инвентаризация выполняется людьми и от системы не зависит |
Цена цели «сутки»#
Расхождений 0,4 % при 1,08 млн посылок. Чтобы измерять уровень выборкой, нужна точность, различающая изменение; при доле 0,4 % погрешность считается как √(p(1−p)/n).
| Частота и объём выборки | Погрешность (2σ) | Что это значит | Цена |
|---|---|---|---|
| 2 000 ячеек в сутки | ±0,28 п.п. | Диапазон 0,12–0,68 % — суточное число бессмысленно | 33 человеко-часа в сутки [расчёт] |
| То же, накопленно за неделю (14 000) | ±0,11 п.п. | Диапазон 0,29–0,51 % — годится | Те же 33 ч/сут ≈ 2 970 ч/квартал |
| 63 700 ячеек в сутки | ±0,05 п.п. | Суточное число годится | 1 065 человеко-часов в сутки [расчёт] |
| Полная инвентаризация раз в квартал (сегодня) | Точно | Раз в 90 суток | 7 200 ч/квартал [замер] |
Суточное измерение уровня стоит около 96 000 человеко-часов в квартал — в тринадцать раз дороже нынешней полной сверки. Продуктовая цель «сутки», понятая как уровень по сети, не достижима ни при каком разумном бюджете, и выяснилось это арифметикой, а не спором.
Выборка за неделю, наоборот, дешевле сегодняшнего: 2 970 часов в квартал против 7 200, то есть 41 % нынешней цены при непрерывном измерении вместо четырёх точек в год.
Рассмотренные варианты#
Формы цели из D-10, применимые к сценарию. Ведущая — корректность: единственная форма, где нарушение не видно пользователю сразу.
| Ось | Что записывать | 0 · не обещать | Противоречия в потоке | Выборочная сверка | Полная инвентаризация |
|---|---|---|---|---|---|
| Измеримость сегодня | Есть ли сигнал, что достроить | Неприменимо | Данные есть, метрики нет: запрос по журналу — день работы [схема] |
Нет: нужен регламент и наряд кладовщику | Есть, это сегодняшний измеритель |
| Точка зрения | Чья | — | Системы — ловит только противоречия внутри данных | Полки | Полки |
| Цена измерения | Что добавится | 0 | 0 — запрос к имеющемуся | 33 ч/сут ≈ 2 970 ч/квартал [расчёт] |
7 200 ч/квартал [замер] |
| Чувствительность к росту | При ×10 | — | Не меняется | Линейно по числу пунктов | Линейно |
| Следствие исчерпания | Что меняется и кто решает | Ничего — и так ничего | Разбор в приоритет над плановыми задачами; объявляет Каменев [продукт] |
То же | Сегодня — ничего |
| Связь с потерей | Что теряет пользователь | 15,1 млн ₽ подвешено и никто не знает | Часть расхождений — какая, неизвестно | Уровень по сети, не конкретная посылка | То же, четыре раза в год |
Ячейка, решающая исход, пуста. Какая доля из 0,4 % ловится потоком — [нет данных], и это различающая ось: если доля высока, дорогая выборка почти не нужна; если низка, поток измеряет не то. Закрыть её нечем, кроме как запустив оба измерителя и сравнив.
Решение#
Ни одна цель не обещана. Построены три измерителя и назначена дата, после которой цели назначаются.
| Измеритель | Что считает | Цена | Когда показывает число |
|---|---|---|---|
| Противоречия в потоке | Выдача без приёмки · две выдачи одной посылки · операция по посылке, которой нет на этом пункте · посылка старше срока хранения без выдачи и возврата | 0 — запрос по журналу | Через неделю |
| Выборочная сверка | 2 000 ячеек в сутки, 2–3 ячейки на пункт; уровень оценивается недельным накоплением | 33 ч/сут | Через месяц — три недельных точки |
| Полная инвентаризация | Остаётся раз в квартал — как калибровка выборки, а не как основной измеритель | 7 200 ч/квартал | Уже показывает |
Цели назначаются через месяц, когда все три покажут числа и станет известна доля расхождений, ловимых потоком. Раньше — обещание вслепую.
Что решено сегодня и не требует ожидания:
- Доступность склада 99,5 % не обещается — измерителя с точки зрения пользователя нет. До его появления это не цель, а расхождение между документами, и оно записано таковым ещё в ADR-0001.
- Значение N для сигнала «пункт молчит» — 90 минут, в сезон 3 часа. Выведено из профиля офлайна: 40 минут в сутки норма, до 2 часов в сезон; порог ниже сезонного офлайна утопит дежурного в ложных срабатываниях. Это параметр, а не константа, и сезонное значение меняется вместе с профилем.
- Следствие исчерпания бюджета назначено: при превышении цели (когда она появится) разбор расхождений получает приоритет над плановыми задачами троих сопровождающих. Объявляет Каменев. Это единственное следствие, которое команда из трёх человек способна исполнить.
Обоснование#
Цель отменена расчётом, а не мнением. «Сутки» — круглое число, не выведенное ни из чего; в тринадцатикратной цене оно и кончилось. Форма, которая осталась достижимой, — недельный уровень, и она дешевле того, что делают сейчас.
Нулевой вариант «не обещать» выбран сознательно и на срок. D-10 называет его законным и отличает от худшего исхода — обещать, не измеряя. Система одиннадцать лет находилась именно в худшем: обещание существовало, измерителя не было.
Три измерителя, а не один, потому что они меряют разное. Поток видит противоречия внутри данных и не видит молчаливого расхождения; выборка видит уровень и не видит конкретной посылки; инвентаризация точна и редка. Ни один не заменяет остальных, и D-10 прямо говорит, что форм обычно нужно две.
Инвентаризация переназначена из измерителя в калибровку. Без неё смещение выборки неизвестно: кладовщик, которому дали наряд на 2–3 ячейки, выберет удобные.
Последствия#
Отрицательные:
- Месяц без целей. Продукт просил сутки, получает «через месяц скажем, что достижимо». Разговор с операционным блоком на этом не кончается.
- 33 человеко-часа в сутки — новая постоянная работа для сети, где кладовщики уже заняты. В сезон эти же часы дороже всего.
- Выборка смещена по построению, и калибровка кварталом — слабая защита: между калибровками смещение не видно.
- Противоречия в потоке могут оказаться почти пустыми. Если молчаливое расхождение даёт 90 % из 0,4 %, бесплатный измеритель почти ничего не ловит, и вся тяжесть ложится на выборку. Это выяснится через месяц, и решение придётся пересматривать.
- Доступность склада остаётся необещанной, хотя остановка склада останавливает сеть на следующий день. Это второе расхождение с бизнес-ожиданием, записанное и не закрытое.
Положительные: впервые за одиннадцать лет появляется число, получаемое чаще четырёх раз в год; непрерывное измерение стоит 41 % от нынешнего разового; исчерпание бюджета впервые к чему-то приводит, и у следствия есть имя.
Замечание к методу: шестая проверка сработала как дисквалификатор#
Местная проверка D-10 — «измеритель существует и показывает число сегодня, а не будет настроен» — стоит в конце документа, после семи разделов, как последний пункт перед принятием.
Здесь она отменяет решение целиком, и отменяет его на входе: ни один измеритель числа не показывает. Пройдя все семь разделов и заполнив матрицу, мы приходим к выводу, который был виден на четвёртом вопросе раздела 1.
Четвёртый вопрос — «чем измеряется и существует ли сигнал сегодня» — помечен в документе как дисквалификатор, и он же продублирован шестой проверкой в конце. Дублирование не избыточно: вопрос отвечает «сигнала нет», а проверка отвечает «значит, обещания нет». Но порядок таков, что работа проделывается между ними целиком.
Стоит ли из этого делать правку — вопрос ревизии. Замечено: это второй случай в прогоне, когда документ даёт верный ответ не тем разделом, которым ожидалось. Первый — ADR-0003, где параметр выбирался раньше вопроса о нём.
Условия пересмотра#
- Через месяц: измерители показали числа — цели назначаются, и этот ADR замещается.
- Доля расхождений, ловимых потоком, оказалась ниже половины — поток не измеритель, а вспомогательный сигнал.
- Калибровка кварталом показала смещение выборки больше её погрешности — выборка выбрана неверно.
- Появился измеритель доступности склада с точки зрения пользователя — 99,5 % можно обещать.
- Цена сверки изменилась: 2–3 ячейки на пункт стали занимать заметно больше 2–3 минут.
- Сигнал «пункт молчит» даёт ложные срабатывания чаще раза в неделю на пункт — порог N подобран неверно.
Самая дорогая будущая граница#
Граница между тем, что меряется данными, и тем, что меряется людьми. Сегодня она проведена по доле: поток бесплатен, выборка стоит 33 часа в сутки. Если через месяц окажется, что поток ловит мало, граница сдвинется в сторону людей — и каждый следующий процент точности будет стоить человеко-часов, растущих квадратично: чтобы вдвое сузить погрешность, выборку надо учетверить.
Связанные ADR#
Зависит от: ADR-0001 — понижение доступности склада; ADR-0002 — журнал как единственный источник порядка и незакрытая ячейка о доле; ADR-0004 — требование сигнала «пункт молчит». Будет замещён через месяц, когда измерители покажут числа и цели станут назначаемыми.