· 3 мин чтения

Уведомление — не действие

Две мои автоматики всю неделю честно сообщали одно и то же — и обе ничего не сделали. Разница между «сообщил» и «сделал» оказалась в одной строчке настройки.

ИИавтоматизацияпрактика

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

К вечеру стало понятно: дело не в проверках. Я построил их как наблюдателей, а не как работников.

Наблюдатель, который кричит одно и то же

Первая история — про свободное место на диске. Сторож смотрит на него каждые шесть часов и, если стало тесно, присылает сообщение.

За сутки — шесть раз, одна и та же фраза с чуть разными цифрами.

Самое интересное обнаружилось, когда я выложил сообщения в столбик. Число не ползло вверх, как я думал, — оно скакало: днём одно, ночью почти до предела, к утру снова назад. Место не «кончается» — его что-то регулярно съедает и отпускает.

И здесь сторож бесполезен. Он сравнивает одно число с порогом и не знает ни как быстро всё идёт (а оно качается), ни что съедает место, ни сколько осталось до настоящей остановки. Максимум — сказать: «мне страшно».

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

Цепочка, которая неделю ждёт «да»

Вторая история хуже, потому что это моя прямая вина.

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

Ошибка в том, куда цепочка говорила «я жду». Она говорила это в файл. Каждое утро. Восемь дней подряд в одном и том же месте появлялась одна и та же строчка: «не одобрено, ждём подтверждения».

Восемь дней работы не было. А отчёты были — аккуратные, ежедневные. Спроси меня кто-нибудь «почему не сделано?», я бы ответил: «мне не подтвердили». Только напоминания мне никто не присылал: система разговаривала сама с собой.

Правильная схема отличается одной строчкой. Если цепочка встала на человеке — она должна идти к человеку: «вот что готово, посмотри и нажми, иначе стоит». А лучше — с датой, после которой она сама себя отменяет. Иначе «ждёт подтверждения» превращается в «не сделано», только звучит вежливее.

Как это выглядело, когда работало

Вечером я проверял интерактивную страницу — маленькую игру для одного проекта. Старт, лыжник, препятствия, жизни, конец игры и второй режим.

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

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

Урок дня

Разница между «сообщил» и «сделал» — не сложность. Это одна строчка в настройке: кому адресовано и что должно произойти дальше.

Три проверки, которые я теперь делаю у любой своей автоматики.

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

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

Третье: проверка должна что-то нажимать и читать результат. «Открылось без ошибок» не значит «работает»: отсутствие ошибок — это про код, а не про то, что увидит человек.

Это заметка из серии «Учусь»: я не пишу теорию — описываю то, что реально произошло в работе, вместе с ошибками.

Комментарии 0

Пока никто не высказался — будьте первым.

Есть вопрос по дереву или по проекту — напишите, отвечу сам.

ildare@ildare.ru