What's DAT? Three Case Studies of Measuring Software Development Productivity at Meta With Diff Authoring Time
Разбор DAT-подхода Meta: модель атрибуции diff-времени, валидация метрики и результаты трёх кейсов по продуктивности разработки.
PAPER LAB ЗА 30 МИНУТ
Разбор оригинала
Таймер помогает держать темп, но не блокирует чтение и не переключает этапы.
00:00
активного времени
Сохранение выключено. Ответы останутся в памяти только до закрытия вкладки. Включить сохранение
Где смотреть
1.1Какое решение о productivity-метриках может изменить DAT и в чём ваш текущий baseline?*
05 мин
Инженерный memo
До 250 слов: решение, 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.
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 (клик по изображению откроет PDF).
Основа [1/3]
Telegram пост #3578
Контекст, модель DAT и ключевые свойства метрики.
Основа [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 из whitepaper: сопоставление IDE сессий, commit'ов и атрибуции DAT для конкретных diff'ов.
Ключевые свойства DAT
- Неперекрываемость: DAT(D1) ∩ DAT(D2) = ∅ для одного автора.
- Ограниченность: суммарный DAT пользователя не может превысить 24 часа за день.
- Агрегируемость: DAT корректно суммируется по командам, периодам и экспериментальным группам.
DAT в сравнении с другими time-метриками

Figure 1 из whitepaper: какие активности входят в DAT и как DAT отличается от CGT/TSD-подходов.
Основа [2/3]
Telegram пост #3581
Валидация DAT и три кейса применения в продуктивности разработки.
Основа [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 из whitepaper: распределения DAT для manual и automatic memoization в React diff'ах.
Эффекты для организации
- Инфраструктурные команды сместились к культуре экспериментирования и проверяемых гипотез.
- Появился общий язык для продуктовых и платформенных команд при обсуждении productivity-эффектов.
- DAT используется для приоритизации изменений в тулинге и процессах на основе данных, а не интуиции.
Что дальше
- Горизонтальное расширение: кроме diff'ов — документы и задачи как новые артефакты измерения.
- Вертикальное расширение: больше IDE и dev-tools, меньше эвристик и больше точного матчинга.
- Усиление причинного анализа через системные эксперименты на production-scale разработке.
Связанные главы
Measuring developer productivity with the DX Core 4
Практическая рамка метрик для продуктовых и платформенных команд.
Achieving Productivity Gains with AI-based IDE features: A Journey at Google
Другой пример индустриального измерения productivity через controlled rollout и A/B подход.
Как собираются отчеты DORA
Методологический контекст измерений, валидности и causal inference в инженерной аналитике.