§8.04 Сигналы и детекторы
Время: 45 мин чтение + 30 мин
В одном предложении: Человек думает, что проблемы в IWE нужно замечать самому, а на самом деле Машина может и должна сигнализировать о дрейфе, пропусках и спадах задолго до того, как они станут авариями — если в ней настроены детекторы.
Мем, который снимается. «Я внимательный, я сам замечу, когда что-то пойдёт не так. Детекторы — это для тех, кто не следит за собой.» На самом деле внимание — ограниченный ресурс. Пилот не может одновременно работать над задачей, следить за своим состоянием, контролировать дрейф Pack и отслеживать пропуски протоколов. Детекторы — это не замена вниманию, это его расширение. Машина не устаёт, не отвлекается, не забывает. Она следит за тем, что пилот пропускает.
Понятия. Алерт — сигнал Машины о наступлении или приближении проблемного состояния. Детектор — скрипт или агент, распознающий паттерн и инициирующий алерт при его обнаружении. Тренд — динамика показателя во времени; рост или спад, видимый только при агрегации данных. Машина сигнализирует о проблемах через три механизма. Агент-Диагност: алерт при пропуске ОРЗ, при дрейфе Pack, при спаде bh. Аттестатор: отчёт по bh за неделю/месяц, тренды. WakaTime: алерт при отсутствии фокусных слотов. Git: алерт при отсутствии коммитов. Детекторы — это скрипты, обнаруживающие паттерны: «коммитов нет 3 дня», «Pack не обновлялся неделю», «bh.stb ниже 2 три дня подряд».
Объяснение. Сигналы и детекторы работают на трёх временных горизонтах. Краткосрочный — внутри дня: алерт при отсутствии коммита к концу рабочего слота, напоминание о стоп-листе через 90 минут фокуса. Среднесрочный — внутри недели: отчёт Аттестатора по bh, алерт при пропуске ОРЗ, детектор дрейфа Pack. Долгосрочный — внутри месяца: тренды bh, анализ частоты аварий, сравнение текущего месяца с предыдущим. Каждый горизонт требует своих детекторов. Краткосрочные — простые, срабатывающие по одному условию. Долгосрочные — сложные, требующие агрегации и сравнения. Важное различие: алерт — это сигнал, требующий действия. Но не каждый алерт требует немедленной реакции. Алерт «bh.stb = 1» — требует остановки. Алерт «Pack не обновлялся 5 дней» — требует планирования времени на ревью. Детекторы должны быть настроены так, чтобы не превращаться в шум. Если детектор срабатывает слишже часто и пилот начинает игнорировать сигналы — детектор сломан. Хороший детектор срабатывает редко, но по делу. Идеальный детектор срабатывает до того, как проблема стала критичной, но не на каждом мелком отклонении.
На практике. Практика «Карта алертов» (30 мин):
- Откройте список всех алертов, которые работают в вашей IWE сейчас. (5 мин)
- Для каждого алерта отметьте: срабатывает ли он? полезен ли он? есть ли ложные срабатывания? (15 мин)
- Определите один «слепой участок» — проблему, о которой вы узнаёте слишком поздно. Составьте план: какой детектор нужен? Зафиксируйте в Pack. (10 мин)
Типичный кейс. Менеджер продукта тридцати двух лет работала в режиме «всё под контролем». Она вела задачи в таск-трекере, писала заметки, проводила встречи. Но спад фокуса она замечала только когда проект срывал срок. Она настроила три детектора: WakaTime алерт при отсутствии фокусных слотов два дня подряд; скрипт, проверяющий наличие коммитов в DS-репо; еженедельный отчёт Аттестатора по bh. Через месяц она обнаружила, что спад фокуса начинается не в пятницу, а во вторник — но раньше она это не видела. Детектор показал тренд: вторник-среда — спад, четверг-пятница — паническая нагонялка. Она скорректировала расписание: тяжёлые задачи — на понедельник, лёгкие — на среду. Срывы сроков сократились на 60%.
Типичная ошибка. «У меня и так много уведомлений, ещё алерты — это шум.» Ловушка в смешении чужих сигналов (почта, мессенджеры) со своими детекторами. Чужие сигналы — шум. Свои детекторы — контроль. Решение не в отказе от детекторов, а в разделении каналов: чужое — в один канал, свои алерты — в другой, приоритетный. Другая ошибка: «Детектор сработал — значит, проблема.» Нет. Детектор сработал — значит, условие выполнено. Проблема требует интерпретации. Коммитов нет три дня — это болезнь (проблема) или отпуск (норма)? Детектор не знает, пилот решает.
Степени мастерства:
- Объяснение. Могу назвать три типа алертов в IWE и объяснить различие между алертом и детектором. Критерий перехода: составил карту текущих алертов.
- Умение. Настроил один новый детектор, который показал полезный сигнал в течение месяца. Критерий перехода: детектор сработал, и я действовал по сигналу.
- Навык. Поддерживаю баланс: детекторы срабатывают по делу, не превращаясь в шум. Регулярно пересматриваю и отключаю устаревшие. Критерий перехода: коллега заметила, что мои алерты «не раздражают, а помогают».
- Мастерство. Система детекторов покрывает все три горизонта: день, неделю, месяц. Новые паттерны обнаруживаются автоматически. Критерий перехода: другой человек в моей IWE настроил детектор по моему шаблону.
Проверка себя.
- Могу назвать три алерта, которые работают в моей IWE прямо сейчас
- У меня есть детектор, который сработал за последний месяц, и я действовал по сигналу
- Я знаю, какой показатель у меня «в слепой зоне» — о нём я узнаю слишком поздно
- Я различаю «алерт сработал» и «это проблема» — не каждое срабатывание требует паники
- Мои алерты не превращаются в шум: я не игнорирую их
На практике. Выберите один показатель, который вы отслеживаете нерегулярно: фокусные слоты, коммиты, обновления Pack, состояние bh. Настройте простой детектор: календарное напоминание, скрипт или агент. Дайте ему работать неделю. Оцените: сигнал полезен или шум? Корректируйте. Это и есть построение системы сигналов.
См. также: Стоп-лист: критерии прерывания — PD.GUIDE.3.S8.SS3, Типы аварий среды — PD.GUIDE.3.S8.SS5.
Что дальше. Следующий подраздел — о типах аварий: что происходит, когда детекторы не сработали или были проигнорированы.