McKinsey считает, что да — можно измерять продуктивность разработчиков. Но дьявол в деталях: что именно измерять, на каком уровне, и как избежать gaming'а метрик.
Цепочка: Effort → Output → Outcome → Impact
Любую работу можно разложить на четыре уровня:
| Уровень | Что это | Пример (разработчик) | Пример (sales) |
|---|---|---|---|
| Effort | Затраченные усилия | Часы работы, коммиты | Количество звонков |
| Output | Произведённый результат | Закрытые тикеты, PR | Отправленные предложения |
| Outcome | Достигнутый результат | Фича в production | Подписанный контракт |
| Impact | Влияние на бизнес | Рост retention пользователей | Выручка |
Проблема gaming'а на каждом уровне
Любую метрику можно "обыграть". Это описывает закон Гудхарта (Charles Goodhart, 1975): когда мера становится целью, она перестаёт быть хорошей мерой. Изначально сформулированный для экономической политики, этот принцип точно описывает проблему инженерных метрик: люди оптимизируют именно то, что измеряется, даже если это не совпадает с тем, что вы хотели улучшить.
| Если измерять... | Люди будут... |
|---|---|
| Effort (часы, коммиты) | Создавать busywork — много усилий с сомнительной ценностью |
| Output (тикеты, PR) | Увеличивать количество через то, что проще сделать. Не факт, что это поможет outcome |
| Outcome (фичи в prod) | Бить таргеты любой ценой, даже через shortcuts |
| Impact (бизнес-метрики) | Креативно достигать impact с меньшим effort и output (иногда это хорошо!) |
Нельзя измерять что-то одно изолированно. Нужны checks and balances — система сдержек, которая гарантирует, что outcome достигается правильным путём.
Почему нельзя измерять индивидуально
Даже если можно взвесить индивидуальный вклад — нельзя концентрироваться на индивидуальных метриках.
Последствия:
- Разрушается команда и совместный результат
- Люди оптимизируют личные метрики в ущерб командным
- Code review становится "не моя работа" (не считается в метрики)
- Помощь коллегам — потеря времени
- Knowledge sharing исчезает
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 часа |
SPACE
SPACE (разработан в Microsoft Research, 2021) добавляет человеческое измерение к инженерным метрикам. Фреймворк предлагает измерять продуктивность по пяти осям:
- Satisfaction — удовлетворённость работой и инструментами. Измеряется опросами. Низкая удовлетворённость коррелирует с текучкой и снижением качества.
- Performance — достижение результатов. Качество кода, надёжность, отсутствие инцидентов.
- Activity — объём работы. Количество коммитов, PR, code reviews. Наиболее подвержена gaming'у.
- Communication — коллаборация. Скорость code review, качество документации, доступность знаний.
- Efficiency — эффективность процессов. Время от идеи до production, количество переключений контекста.
SPACE рекомендует выбирать метрики из минимум трёх категорий, чтобы избежать однобокости. Например: Satisfaction (опросы) + Performance (change failure rate) + Efficiency (lead time).
Практические рекомендации
Что измерять кроме DORA
Pragmatic Engineer предлагает два дополнительных outcome-oriented показателя:
| Customer-facing thing per team per week | Минимум одна штука, видимая клиенту, от каждой команды каждую неделю |
| Business impact committed by team | Команда сама коммитится на бизнес-impact и отвечает за его достижение |
Принципы измерения
- Измеряйте команды, не индивидов. Outcome — командный результат.
- Фокус на outcomes и impact, не на effort и output. DORA — хороший выбор.
- Используйте checks and balances. Одна метрика — это ловушка.
- Метрики — для разговора, не для KPI. "Почему lead time вырос?" — хороший вопрос для ретро.
- Клиент-ориентированность. Если метрика не связана с клиентом — зачем она?
Резюме
Можно ли измерять продуктивность? Да, но осторожно:
- Effort и Output легко измерить, но легко gaming'ить
- Outcome и Impact сложнее, но ценнее
- Индивидуальные метрики разрушают команду
- DORA измеряет outcomes — это работает
- SPACE добавляет человеческое измерение, но клиентам всё равно
- Лучшая метрика: customer-facing результат каждую неделю