Закон Гудхарта

Чарльз Гудхарт, главный советник по денежно-кредитной политике Банка Англии и профессор Лондонской школы экономики и политических наук постулировал в 1975 году, что

Любая наблюдаемая статистическая закономерность склонна к разрушению, как только на неё оказывается давление с целью управления

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

«Когда мера (показатель) становится целью, она перестает быть хорошей мерой»

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

Примеры подобного, встречаются в разных областях, в применении к ИТ можно наблюдать:

Поддержка: Оценка работы техподдержки по скорости закрытия тикетов приводит к тому, что операторы быстро закрывают их, не решая проблему

Разработка: Измерение эфективности разработчиков к строках кода

или комитах, приводит к эмитации работы.

Качество: Измерения качества продукта в количесвте дефектов, приводит к сокрытию дефектов, объеденению многих в один, передаче информации мимо системы управления задачами и т.п. Покрытие кода тестами, приводит к покрытию тестами всего подряд от простейших функций до создания псевдо позитивных асертов.

Управление:Измерение производительности команды количеством стори поинтов и велосити, приводит к раздуванию оценок, изменению процесса в угоде формально закрыть больше задач, например отрезая не готовый кусок в новую сторю следующего спринта и подобная дичь.

Как с этим жить, чтобы избежать негативных последствий

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

Использовать набор разнообразных метрик, которые не связаны линейно, так называемые балансировочные метрики. В идеале иметь пару которая работает в противовес измеряемой метрики, делая попытки манипуляции бессмысленными. Например:

Инфляция сторипоинтов

Основная метрика: Velocity или обязательство закрыть X% задач спринта.

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

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

Материалы по теме:

Тирания показателей. Как одержимость цифрами угрожает образованию, здравоохранению, бизнесу и власти | Мюллер Джерри |

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *