1.6

1.6 Статистическая грамотность для инженерных метрик

Обзор и мотивация

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

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

В масштабе корпорации и государства статистические ошибки усугубляются, потому что вводящий в заблуждение вывод, однажды принятый руководством, применяется во многих командах, прежде чем кто-либо задумается повторно изучить лежащий в основе анализ. Статистически наивное сравнение между двумя подразделениями, или между состояниями до и после крупной реорганизации, может формировать решения о ресурсах годами, основываясь не более чем на шуме или смешивающей переменной, которую никто не контролировал. Эта тема существует для того, чтобы сделать такой провал менее вероятным.

Ключевые принципы

  • Медиана или перцентиль обычно говорят вам больше, чем среднее. Инженерные данные регулярно скошены выбросами, которые среднее поглощает, а перцентили нет.
  • Малые выборки производят шумные числа. Процент, вычисленный из горстки событий, дико колеблется по причинам, не имеющим отношения к реальным изменениям.
  • Регрессия к среднему постоянно обманывает людей. За необычно хорошим или плохим показателем обычно следует более нормальный, с вмешательством или без него.
  • Корреляция не причинность, и смешивающие переменные повсюду. Две метрики, движущиеся вместе, могут иметь общую скрытую третью причину вместо того, что одна движет другой.
  • Контрольная карта лучше единичного сравнения до и после. Видение нормального диапазона вариации это то, что позволяет отличить реальный сдвиг от шума.

Рекомендации

По умолчанию используйте медианы и перцентили для скошенных данных

Инженерные метрики, основанные на времени, время выполнения, время восстановления после инцидента, задержка отклика, почти всегда скошены вправо: большинство значений группируется низко, с длинным хвостом редких больших выбросов. Среднее, оттянутое этим хвостом, может нарисовать картину, на которую не похож ни один типичный случай. Сообщайте медиану (среднее значение, выше и ниже которого находится половина наблюдений) наряду с 90-м или 95-м перцентилем (значением, ниже которого попадает 90% или 95% наблюдений), которые вместе показывают и типичный случай, и худший хвост, который команда на самом деле испытывает. Тема KPI родственной книги software-engineering-guide и каждая тема о метриках доставки в части 2 этой книги предполагают эту привычку повсюду.

Знайте, когда выборка слишком мала, чтобы ей доверять

Доля неудачных изменений, вычисленная из трёх развёртываний за медленную неделю, не значимый сигнал; единственный сбой сдвигает процент с 0% до 33% за одну ночь по причинам, которые могут не иметь отношения к лежащему в основе риску. Прежде чем реагировать на метрику, основанную на процентах, проверьте лежащий в основе подсчёт. В качестве практического эмпирического правила относитесь к ставке, вычисленной из менее чем примерно двадцати-тридцати лежащих в основе событий, как к шумной и требующей более долгого окна наблюдения, прежде чем делать вывод, и явно говорите об этом на дашборде, а не представляйте волатильный процент малой выборки с той же уверенностью, что и стабильный процент большой выборки.

Следите за регрессией к среднему, прежде чем приписывать заслугу вмешательству

Если за худшей в истории недели команды по инцидентам следует внимание руководства и последующее улучшение, соблазнительно приписать заслугу вмешательству. Часто часть этого улучшения произошла бы в любом случае, потому что за необычно экстремальным показателем обычно следует более типичный, чисто как статистический артефакт, явление, называемое регрессией к среднему. Защищайтесь от этого, сравнивая с более долгой исторической базой, а не с единственной экстремальной точкой данных, которая вызвала внимание, и будучи соответственно скромными в том, сколько из наблюдаемого улучшения приписывать конкретному действию.

Ищите смешивающие переменные, прежде чем утверждать, что метрика вызвала результат

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

Используйте контрольную карту, а не единичный снимок до и после

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

Компромиссы: плюсы и минусы

ПодходПлюсыМинусы
СредниеПросты, знакомы, легко вычислятьИскажаются выбросами на скошенных инженерных данных
Медианы и перцентилиУстойчивы к выбросам, показывают типичный случай и хвост вместеЧуть менее знакомы нетехнической аудитории
Единичное сравнение до и послеБыстро, интуитивно, легко представитьУязвимо к регрессии к среднему и к шуму
Контрольные карты и более долгие базыНадёжно отличают реальные сдвиги от шумаТребуют больше исторических данных и больше объяснений для нетехнической аудитории

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

Вопросы для обсуждения в команде

  1. Какие из плиток нашего дашборда сообщают среднее там, где медиана или перцентиль рассказали бы более правдивую историю? Инженерные метрики, основанные на времени, почти всегда скошены, и среднее на скошенных данных может выглядеть нормально, в то время как типичный случай или худший хвост рассказывают совершенно другую историю. Проверьте ваши основанные на времени плитки именно на эту подмену.

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

  3. Приписывали ли мы когда-либо заслугу вмешательству за улучшение, которое всё равно произвела бы регрессия к среднему? Это одна из самых лёгких статистических ошибок для совершения и одна из самых трудных для замечания постфактум, потому что вмешательство и улучшение действительно произошли в этом порядке. Оглянитесь на недавнюю историю «мы это исправили» и честно спросите, было ли сравнение с базой достаточно долгим, чтобы исключить это.

  4. Где мы предположили, что одна метрика вызвала другую, не проверив смешивающую переменную? Движение двух вещей вместе обычное дело; утверждение, что одна вызывает другую, более сильное заявление, требующее больше доказательств. Выберите корреляцию, в которую сейчас верит ваша команда, и попробуйте назвать правдоподобную смешивающую переменную, которая объяснила бы её вообще без какой-либо причинной связи.

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

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

Отраслевой взгляд

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

Малый бизнес. Встроенные дашборды готовых инструментов часто по умолчанию используют средние и сравнения одного периода, потому что их проще всего вычислять и отображать. Там, где инструмент это позволяет, переключитесь на медианы для метрик, основанных на времени, и скептически относитесь к любому заголовку «рост на 40% в этом месяце», вычисленному из малого лежащего в основе подсчёта.

Корпорация. Статистические ошибки в этом масштабе закладываются в решения о ресурсах и реорганизации, затрагивающие сотни людей. Инвестируйте в аналитиков или встроенных специалистов по данным, способных построить правильные контрольные карты и проверить смешивающие переменные, прежде чем сравнение между бизнес-подразделениями или до-и-после крупного изменения будет представлено руководству как установленный факт.

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

Примеры

Корпорация. Руководство компании-разработчика программного обеспечения праздновало улучшение доли неудачных изменений на 25% через месяц после внедрения новой политики ревью кода, напрямую приписывая заслугу политике. Более пристальный взгляд обнаружил, что «предыдущий» месяц был необычно плохим, вызванным неудачной миграцией одной команды, а лежащий в основе размер выборки в оба месяца составлял менее тридцати развёртываний по всей компании. Контрольная карта, использующая двенадцать месяцев истории, показала, что новый показатель был хорошо в пределах нормальной вариации, а не настоящим ступенчатым изменением, и фактический эффект политики, хотя и реальный, был гораздо меньше, чем предполагало заголовочное число.

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

Бизнес-кейс: мотивация, ROI и TCO

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

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

Антипаттерны и ловушки

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

Модель зрелости

  • Уровень 1, Инициация: Метрики сообщаются как сырые средние и единичные снимки до и после без внимания к размеру выборки, скошенности или вариации базы.
  • Уровень 2, Развитие: Некоторые аналитики применяют медианы или перцентили неформально, но нет последовательной организационной практики, и смешивающие переменные редко проверяются.
  • Уровень 3, Стандартизация: Медианы и перцентили по умолчанию для скошенных метрик, основанных на времени; размеры выборок показываются наряду с процентными метриками по всей организации.
  • Уровень 4, Управление: Контрольные карты с историческими базами стандартная практика для любого утверждения о настоящем сдвиге; смешивающие переменные активно рассматриваются перед тем, как в отчётности делаются причинные утверждения.
  • Уровень 5, Оркестрация: Статистическая строгость встроена в сам инструментарий, дашборды по умолчанию отображают перцентили и контрольные полосы, и организация может продемонстрировать, что конкретное прошлое решение было скорректировано, потому что статистически наивное прочтение было поймано прежде, чем сформировало стратегию.

Идеи для обсуждения

  1. Какие из наших текущих заголовков дашборда выглядели бы иначе, если бы мы заменили среднее медианой?
  2. Меняли ли мы когда-либо решение, потому что процент оказался основан на гораздо меньшей выборке, чем мы предполагали?
  3. Какая недавняя история «мы улучшили эту метрику» заслуживает повторного рассмотрения на предмет регрессии к среднему?
  4. Где две наши метрики могут коррелировать через скрытую третью причину, а не потому что одна движет другой?
  5. Показывают ли наши важнейшие диаграммы нормальный диапазон вариации, или только единственную линию тренда?

Основные выводы

  • Предпочитайте медианы и перцентили средним для скошенных, основанных на времени инженерных метрик.
  • Относитесь к проценту из малой выборки как к шумному и явно говорите об этом, а не реагируйте на него как на стабильный тренд.
  • Следите за регрессией к среднему, прежде чем приписывать заслугу вмешательству за улучшение, последовавшее за необычно плохим показателем.
  • Корреляция не причинность; активно ищите смешивающие переменные, прежде чем делать причинное утверждение.
  • Используйте контрольную карту с настоящей исторической базой, а не единичный снимок до и после, чтобы отличить настоящий сдвиг от обычного шума.

Источники и дальнейшее чтение

  • The Signal and the Noise, Нейт Сильвер.
  • How to Measure Anything, Дуглас У. Хаббард.
  • Understanding Variation: The Key to Managing Chaos, Дональд Дж. Уилер.
  • Thinking, Fast and Slow, Дэниел Канеман.
  • The Visual Display of Quantitative Information, Эдвард Р. Тафти.