Можно ли измерять продуктивность инженеров?

DORA, SPACE и ловушки метрик

McKinsey считает, что да — можно измерять продуктивность разработчиков. Но дьявол в деталях: что именно измерять, на каком уровне, и как избежать gaming'а метрик.

Цепочка: Effort → Output → Outcome → Impact

Любую работу можно разложить на четыре уровня:

Уровень Что это Пример (разработчик) Пример (sales)
Effort Затраченные усилия Часы работы, коммиты Количество звонков
Output Произведённый результат Закрытые тикеты, PR Отправленные предложения
Outcome Достигнутый результат Фича в production Подписанный контракт
Impact Влияние на бизнес Рост retention пользователей Выручка
Ключевая проблема: У sales outcome индивидуален (подписанный контракт). У разработчиков outcome — на уровне команды. Индивидуальный вклад в командный результат взвесить сложно.

Проблема gaming'а на каждом уровне

Любую метрику можно "обыграть". Это описывает закон Гудхарта (Charles Goodhart, 1975): когда мера становится целью, она перестаёт быть хорошей мерой. Изначально сформулированный для экономической политики, этот принцип точно описывает проблему инженерных метрик: люди оптимизируют именно то, что измеряется, даже если это не совпадает с тем, что вы хотели улучшить.

Если измерять... Люди будут...
Effort (часы, коммиты) Создавать busywork — много усилий с сомнительной ценностью
Output (тикеты, PR) Увеличивать количество через то, что проще сделать. Не факт, что это поможет outcome
Outcome (фичи в prod) Бить таргеты любой ценой, даже через shortcuts
Impact (бизнес-метрики) Креативно достигать impact с меньшим effort и output (иногда это хорошо!)

Нельзя измерять что-то одно изолированно. Нужны checks and balances — система сдержек, которая гарантирует, что outcome достигается правильным путём.

Почему нельзя измерять индивидуально

Даже если можно взвесить индивидуальный вклад — нельзя концентрироваться на индивидуальных метриках.

Последствия:

Антипаттерн: Измерять разработчиков как sales — по индивидуальному output. Это создаст серьёзные проблемы для командной динамики: вы измеряете не outcomes или impact, а output.

DORA и SPACE: что измеряют

DORA (DevOps Research and Assessment)

DORA измеряет outcomes и impact на уровне команды/системы:

Метрика Что показывает Elite benchmark
Deployment Frequency Как часто доставляем ценность Несколько раз в день
Lead Time for Changes Как быстро от коммита до production < 1 часа
Change Failure Rate % деплоев, вызывающих сбои 0-5%
Mean Time to Recovery Как быстро восстанавливаемся < 1 часа
Почему DORA работает: Эти метрики коррелируют с бизнес-результатами (исследование Google). Их сложно "обыграть" без реального улучшения процессов.

SPACE

SPACE (разработан в Microsoft Research, 2021) добавляет человеческое измерение к инженерным метрикам. Фреймворк предлагает измерять продуктивность по пяти осям:

SPACE рекомендует выбирать метрики из минимум трёх категорий, чтобы избежать однобокости. Например: Satisfaction (опросы) + Performance (change failure rate) + Efficiency (lead time).

Критика SPACE (Pragmatic Engineer): Эти метрики могут быть полезны для внутренней рефлексии, но их связь с реальным impact на клиентов не всегда очевидна. SPACE лучше всего работает в сочетании с DORA: DORA показывает «что происходит», SPACE помогает понять «почему».

Практические рекомендации

Что измерять кроме DORA

Pragmatic Engineer предлагает два дополнительных outcome-oriented показателя:

Customer-facing thing per team per week Минимум одна штука, видимая клиенту, от каждой команды каждую неделю
Business impact committed by team Команда сама коммитится на бизнес-impact и отвечает за его достижение

Принципы измерения

  1. Измеряйте команды, не индивидов. Outcome — командный результат.
  2. Фокус на outcomes и impact, не на effort и output. DORA — хороший выбор.
  3. Используйте checks and balances. Одна метрика — это ловушка.
  4. Метрики — для разговора, не для KPI. "Почему lead time вырос?" — хороший вопрос для ретро.
  5. Клиент-ориентированность. Если метрика не связана с клиентом — зачем она?

Резюме

Можно ли измерять продуктивность? Да, но осторожно:

Главное: Measuring outcomes and impact is important, but there must be checks and balances which ensure outcomes are reached the right way.