К каталогу
paper
case-study
telemetry
survey

What's DAT? Three Case Studies of Measuring Software Development Productivity at Meta With Diff Authoring Time

Разбор DAT-подхода Meta: модель атрибуции diff-времени, валидация метрики и результаты трёх кейсов по продуктивности разработки.

Открыть PDF

PAPER LAB ЗА 30 МИНУТ

Разбор оригинала

Таймер помогает держать темп, но не блокирует чтение и не переключает этапы.

00:00

активного времени

Сохранение выключено. Ответы останутся в памяти только до закрытия вкладки. Включить сохранение

Где смотреть

1.1Какое решение о productivity-метриках может изменить DAT и в чём ваш текущий baseline?*

05 мин

Инженерный memo

До 250 слов: решение, evidence, уверенность, ограничения, применимость и следующий шаг.

Решение *
Evidence *
Уверенность *
Ограничения *
Применимость *
Следующий шаг *

0 / 250 слов

Завершить lab

Ответьте или пропустите обязательные prompts, просмотрите сверки и сохраните memo.

Готовый редакционный разбор

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

Whitepaper

What's DAT? Three Case Studies of Measuring Software Development Productivity at Meta With Diff Authoring Time

FSE 2025, March 2025.

Перейти на сайт

Работа показывает, как измерять влияние инструментов и практик разработки через DAT (Diff Authoring Time) в large-scale production среде. Важно: речь не про оценку отдельных инженеров, а про проверку продуктовых и инфраструктурных гипотез на уровне процессов. Деятельность Meta запрещена на территории РФ.

Первая страница whitepaper What's DAT?

Первая страница whitepaper (клик по изображению откроет PDF).

Основа [1/3]

Telegram пост #3578

Контекст, модель DAT и ключевые свойства метрики.

Перейти на сайт

Зачем Meta понадобился DAT

DAT (Diff Authoring Time) измеряет активное время разработки для конкретного diff, а не общий «time in office».

Метрика используется для оценки инструментов и процессов, а не для персонального performance ranking инженеров.

Подход поддерживает A/B-эксперименты на уровне diffs и когорт, что делает изменения в тулинге измеряемыми.

Meta заявляет о 20+ внутренних экспериментах с DAT, из которых в статье подробно показаны три кейса.

Как устроена модель DAT

Core matching algorithm

  • Сбор IDE-активности и связывание с commit-данными через Sapling.
  • Left-shift attribution: commit CHx приписывается предыдущей сессии s(x-1), где вероятнее всего происходила авторская работа.
  • Цель — приблизить измерение к «чистому времени создания diff», а не к фоновым активностям.

Дополнительные эвристики

  • Anchor sessions добавляют релевантные интервалы вокруг точного матчинга.
  • Checkout и нерелевантные события фильтруются, чтобы не размывать сигнал.
  • Граничные сценарии обрабатываются отдельно, чтобы уменьшить систематическую ошибку.

Telemetry + privacy

  • OS-level телеметрия дополняет IDE/VCS данные и закрывает пробелы наблюдаемости.
  • Для одного автора DAT-интервалы между diff'ами неперекрывающиеся.
  • Метрика агрегируема и ограничена физически (не более 24 часов в сутки).

Визуализация core matching алгоритма

Figure 2: core DAT commit matching algorithm

Figure 2 из whitepaper: сопоставление IDE сессий, commit'ов и атрибуции DAT для конкретных diff'ов.

Ключевые свойства DAT

  • Неперекрываемость: DAT(D1) ∩ DAT(D2) = ∅ для одного автора.
  • Ограниченность: суммарный DAT пользователя не может превысить 24 часа за день.
  • Агрегируемость: DAT корректно суммируется по командам, периодам и экспериментальным группам.

DAT в сравнении с другими time-метриками

Figure 1: DAT-covered and uncovered activities vs CGT/TSD

Figure 1 из whitepaper: какие активности входят в DAT и как DAT отличается от CGT/TSD-подходов.

Основа [2/3]

Telegram пост #3581

Валидация DAT и три кейса применения в продуктивности разработки.

Перейти на сайт

Валидация подхода

  • Ground-truth исследование через запись реальной работы разработчиков показало среднюю точность DAT > 90%.
  • Опросы в Phabricator (968 уникальных diff'ов) дали кросс-валидацию с self-report оценками инженеров.
  • DAT покрывает ~87% подходящих diff'ов и показал стабильность в отчетности (winsorized mean p99).
  • Дополнительно сравнивали DAT с Time Spent by Diff и дескриптивной статистикой временных рядов.

Три кейса из статьи

Типизированное мокирование в Hack

~14% улучшение DAT

Миграция части моков на типизацию дала статистически значимое ускорение (p < 0.001) по разным размерам diff'ов.

Авто-мемоизация в React компайлере

~33% улучшение DAT

Сравнили manual vs automatic memoization; для учета конфаундеров использовали mixed-effects модель и Wasserstein distance.

Переиспользование кода в кросс-платформе

>50% улучшение vs без reuse

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

Figure: Auto-Memoization case

Figure 7: DAT distribution for manual and automatic memoization

Figure 7 из whitepaper: распределения DAT для manual и automatic memoization в React diff'ах.

Эффекты для организации

  • Инфраструктурные команды сместились к культуре экспериментирования и проверяемых гипотез.
  • Появился общий язык для продуктовых и платформенных команд при обсуждении productivity-эффектов.
  • DAT используется для приоритизации изменений в тулинге и процессах на основе данных, а не интуиции.

Что дальше

  • Горизонтальное расширение: кроме diff'ов — документы и задачи как новые артефакты измерения.
  • Вертикальное расширение: больше IDE и dev-tools, меньше эвристик и больше точного матчинга.
  • Усиление причинного анализа через системные эксперименты на production-scale разработке.

Связанные главы