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

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

Сначала остановите распространение ошибки

Назначьте человека, который координирует действия. Проверьте, остановлены ли очередь, повторные попытки, резервные каналы и связанные сценарии. Отключение одного узла на схеме не гарантирует, что ранее созданные задания отменены.

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

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

Восстановите факты без предположений о мотивах

В The Site Reliability Workbook разбор без обвинений связывается с изучением условий происшествия, ясными выводами и выполнением последующих действий. Это практический опыт инженерных команд Google. Приведённая ниже схема CRM Lab переносит принцип на выпуск коммуникаций; она не утверждает, что любой конкретный процесс предотвратит все ошибки.

Различайте подтверждённые события, рабочие гипотезы и неизвестные обстоятельства. Фраза «сотрудник невнимательно проверил» описывает оценку человека. Фраза «в предпросмотре использовался профиль, который проходил оба варианта фильтра» указывает на проверяемое ограничение теста.

Условная хронология инцидента

ВремяПодтверждённое событиеЗначение для разбора
10:10Скопирован сегмент предыдущей кампанииВ копии осталось старое исключение
10:40Согласован текст письмаАудитория в согласование не входила
11:15Выполнен тест на одном профилеИсключение получателя не проверялось
12:00Началась отправкаВерсия сегмента не зафиксирована в записи выпуска
12:12Поддержка сообщила о неверном предложенииПервым сигналом стала жалоба
12:18Очередь остановлена и статус проверенЗафиксирован предел дальнейшего воздействия

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

Оцените влияние по нескольким измерениям

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

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

Сохраните знаменатели: например, 320 неверных предложений среди 8 000 доставленных сообщений. Для разных типов ошибки может быть несколько затронутых групп. Если точный охват пока неизвестен, покажите подтверждённый минимум и причину неопределённости.

Назначьте проверяемые меры

Найденное ограничениеМераДоказательство выполнения
Сегмент копируется со скрытым исключениемПоказывать отличие от утверждённых условийПроверяющий видит состав правила до запуска
Нет проверки исключенияДобавить профиль, который обязан быть исключёнВ журнале зафиксирован отказ в отправке
Согласуется только макетПривязать аудиторию и условия к версии выпускаСогласование содержит нужные идентификаторы
Ошибка видна только после жалобыДобавить проверку аномального охватаТестовый выход за порог создаёт сигнал

У каждой меры нужны владелец, срок и критерий закрытия. «Провести обучение» без описания навыка и проверки может не изменить процесс. Обучение полезно, когда дополняет устранение причины и сотрудник демонстрирует нужное действие.

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

Проверьте результат изменений

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

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

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

Источники

Rogers D., Suriar M., Lueder S., Deo P., Sudhakar D.; при участии O’Connor G., Rensin D. Postmortem Culture: Learning from Failure. The Site Reliability Workbook. O’Reilly Media, 2018. Chapter 10.