DevPace
БлогСправкаНовостиСкачатьДемоТарифыПривязка устройстваВойтиНачать

Как учитывать нетипичные дни в статистике продуктивности

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

Как учитывать нетипичные дни в статистике продуктивности

Как учитывать нетипичные дни в статистике продуктивности

Что такое нетипичный день в личной статистике

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

День с 11 часами непрерывной работы перед деплоем и день с двумя часами вялой активности из-за температуры — оба будут статистическим выбросом относительно обычной рабочей недели, хотя выглядят противоположно. Общее у них не «хорошо» или «плохо», а то, что оба получены не в тех условиях, для которых считается личная норма.

Почему один такой день искажает среднее и базовую линию

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

Рассмотрим пример. За пять рабочих дней доля глубокой работы составила 42%, 45%, 40%, 44% и 95% — последнее число получено в день релиза, когда человек безвылазно сидел за одной задачей без единого переключения. Без учёта контекста среднее по пятидневке — 53,2%, хотя четыре из пяти дней держались около 43%. Дальше это искажённое среднее используется как ориентир: обычный день с честными 44% начинает выглядеть как спад относительно «нормы», которая на самом деле никогда не была нормой — она разово получена в условиях, не похожих на обычную работу.

Эффект тем заметнее, чем короче окно расчёта базовой линии и чем сильнее выброс отличается от типичного значения. На окне в 20-30 дней один нетипичный день практически не виден; на окне в 5-7 дней он способен единолично определить, что считается «нормальным» результатом на ближайшие недели.

Как отличить выброс от обычного плохого дня

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

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

Тег контекста: пометить, а не удалить

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

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

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

Когда день стоит исключить из расчёта, а когда оставить

Пометка контекста и исключение из расчёта нормы — не всегда одно и то же решение, и здесь стоит разделить два случая.

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

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

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

Типичная ошибка интерпретации

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

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

Как проверить на своих данных

  1. Выпишите значения одной метрики (например, доли глубокой работы) за последние 10-15 рабочих дней.
  2. Для каждого дня коротко отметьте, был ли он чем-то нетипичен: релиз, болезнь, командировка, обычный день. Если специальной пометки контекста нет в используемом инструменте — заведите для этого отдельную колонку вручную.
  3. Посчитайте среднее по всем дням и отдельно — только по дням без пометки.
  4. Сравните две цифры. Если разница ощутима (несколько процентных пунктов и больше), значит, нетипичные дни действительно тянут общее среднее в сторону, и именно второе число — более честный ориентир для планирования обычной недели.
  5. Повторяйте эту сверку по мере накопления новых дней: чем длиннее история, тем меньше вес одного отдельного выброса, но привычка отделять контекст остаётся полезной постоянно, а не разово.

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

FAQ

Сколько нетипичных дней можно исключить из расчёта нормы без потери смысла? Универсального лимита нет, но здравый ориентир — не больше 10-15% дней в окне расчёта. Если помеченными оказывается почти каждый третий день, вероятнее всего, проблема не в отдельных выбросах, а в том, что сама рабочая рутина изменилась, и норму нужно пересчитывать заново, а не продолжать исключать половину истории.

Нужно ли помечать хорошие дни так же, как плохие? Да, принцип симметричен. День с исключительно высоким результатом, достигнутым за счёт нетипичных условий (авральный релиз, разовый рывок перед дедлайном), искажает норму вверх точно так же, как болезнь искажает её вниз. Важна не оценка «хорошо/плохо», а типичность условий.

Как быть, если нетипичные условия — это не один день, а целая неделя, например отпуск? Логика та же, просто применяется к каждому дню периода, а не к одному. Если инструмент позволяет пометить диапазон дней, это удобнее ручной разметки каждого дня по отдельности; если нет — придётся отмечать вручную день за днём.

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

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