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

В агентстве недвижимости таких фоновых процессов обычно несколько, и все они работают по расписанию, без участия человека. Каждый день система выгружает объявления на Avito, ЦИАН и ДомКлик. Каждый день сверяет цены — чтобы на площадке не висела старая цифра, если собственник её изменил. Каждый день уходит рассылка новым клиентам, которые оставили заявку. Это рутина, которая раньше отнимала часы у агентов, а теперь происходит сама, в фоне, без напоминаний.

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

А последствия проявлялись не сразу и не там, где их ждали. Клиент писал в CRM и не получал ответа — и тогда становилось ясно, что рассылка новым обращениям не ушла, возможно, уже несколько дней. Или кто-то из агентов случайно замечал на Avito объявление с ценой недельной давности — и тогда выяснялось, что сверка цен молчит уже давно. Проблема обнаруживалась не в момент, когда она возникла, а в момент, когда она успела навредить: упущенный клиент, недовольство собственника, объявление, которое отпугивает покупателей неактуальной ценой.

Сколько стоит тишина в днях?

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

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

Чтобы этот разрыв не зависел от чьей-то внимательности или везения, добавили экран статуса регулярных задач. Это простой список: вот выгрузка на площадки, вот сверка цен, вот рассылка новым клиентам — и рядом с каждой видно, когда она в последний раз отработала успешно и что происходит с ней прямо сейчас. Если задача упала, тут же виден текст ошибки — не догадки, а конкретная причина, из-за которой процесс остановился. Указано, кто отвечает за эту задачу, и отправляется ли этому человеку предупреждение о сбое.

Смысл не в том, чтобы владелец агентства сам разбирался, что случилось внутри системы. Смысл в том, чтобы проблему обнаружил не клиент своим недовольством и не агент случайным взглядом на старое объявление, а сама система — сразу, в момент остановки, и адресно сообщила тому, кто может это исправить. Разница между «мы узнали через три дня от клиента» и «мы узнали через пять минут от системы» — это разница между потерянной сделкой и просто рабочим эпизодом, который никто, кроме ответственного, даже не заметил.

Почему одна и та же поломка возвращается

У части этих остановок поломка типовая, и она повторяется снова и снова по одной и той же причине. Ежедневная сверка тянет данные с чужой страницы объявления — а площадка время от времени меняет там разметку, и один параметр вдруг перестаёт читаться: не цена, не адрес, а что-то вроде материала стен или типа ремонта. Раньше это была скучная, но узнаваемая работа для человека: заметить, что поле опустело, открыть страницу, сравнить с тем, как она выглядела раньше, поправить код, проверить на нескольких объявлениях, что ничего не сломалось, и только потом выпустить исправление.

Что если чинить будет не человек?

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

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

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

Регулярные автоматизации хороши ровно настолько, насколько их можно доверить себе. А доверять можно только то, за чем видно, работает оно или уже нет. Экран статуса — это не про красивую панель для отчётности. Это про то, чтобы тишина в системе больше никогда не значила «всё хорошо» по умолчанию, а значила именно то, что она значит на самом деле: либо задача действительно выполнена, либо её уже чинят без участия человека, либо о её остановке уже знают и уже реагируют.