This paper introduces Diff Authoring Time (DAT), a powerful, yet conceptually simple approach to measuring software development productivity that enables rigorous experimentation. DAT is a time based metric, which assess how long engineers take to develop changes, using a privacy-aware telemetry system integrated with version control, the IDE, and the OS. We validate DAT through observational studies, surveys, visualizations, and descriptive statistics. At Meta, DAT has powered experiments and case studies on more than 20 projects. Here, we highlight (1) an experiment on introducing mock types (a 14% DAT improvement), (2) the development of automatic memoization in the React compiler (33% improvement), and (3) an estimate of thousands of DAT hours saved annually through code sharing (> 50% improvement). DAT offers a precise, yet high-coverage measure for development productivity, aiding business decisions. It enhances development efficiency by aligning the internal development workflow with the experiment-driven culture of external product development. On the research front, DAT has enabled us to perform rigorous experimentation on long-standing software engineering questions such as "do types make development more efficient?"
翻译:本文介绍了差异编写时间(DAT),这是一种强大而概念简单的软件开发生产力测量方法,能够支持严谨的实验研究。DAT是一种基于时间的度量指标,它通过集成版本控制系统、集成开发环境和操作系统的隐私感知遥测系统,评估工程师开发变更所需的时间。我们通过观察性研究、问卷调查、可视化分析和描述性统计对DAT进行了验证。在Meta公司,DAT已支持超过20个项目的实验和案例研究。本文重点展示:(1)引入模拟类型的实验(DAT提升14%),(2)React编译器中自动记忆化功能的开发(提升33%),以及(3)通过代码共享每年节省数千DAT小时的估算(提升>50%)。DAT为开发生产力提供了精确且覆盖广泛的度量标准,有助于业务决策。它通过将内部开发流程与外部产品开发的实验驱动文化相结合,提升了开发效率。在研究层面,DAT使我们能够对软件工程领域的长期问题(如“类型系统是否提高开发效率?”)进行严谨的实验验证。