As developers program and debug, they continuously edit and run their code, a behavior known as edit-run cycles. While techniques such as live programming are intended to support this behavior, little is known about the characteristics of edit-run cycles themselves. To bridge this gap, we analyzed 28 hours of programming and debugging work from 11 professional developers which encompassed over three thousand development activities. We mapped activities to edit or run steps, constructing 581 debugging and 207 programming edit-run cycles. We found that edit-run cycles are frequent. Developers edit and run the program, on average, 7 times before fixing a defect and twice before introducing a defect. Developers waited longer before again running the program when programming than debugging, with a mean cycle length of 3 minutes for programming and 1 minute for debugging. Most cycles involved an edit to a single file after which a developer ran the program to observe the impact on the final output. Edit-run cycles which included activities beyond edit and run, such as navigating between files, consulting resources, or interacting with other IDE features, were much longer, with a mean length of 5 minutes, rather than 1.5 minutes. We conclude with a discussion of design recommendations for tools to enable more fluidity in edit-run cycles.
翻译:作为开发者和调试者,他们不断编辑和运行自己的代码,一种被称为编辑-运行周期的行为。虽然现场编程等技术旨在支持这种行为,但对于编辑-运行周期本身的特点却知之甚少。为了缩小这一差距,我们分析了11个专业开发者28小时的编程和调试工作,其中包括3 000多项发展活动。我们绘制了编辑或运行步骤的活动图,建造了581调试和207编程编辑-运行周期。我们发现编辑-运行周期频繁。开发者平均在确定缺陷之前编辑和运行程序7次,在引入缺陷之前两次。开发者在编程比调试(程序的平均周期长度为3分钟,调试时间为1分钟)再次运行程序之前等待的时间要长得多。大多数周期都涉及编辑一个文件,此后开发者将运行一个程序以观察对最终输出的影响。编辑-运行周期包括编辑和运行以外的活动,如在文件之间浏览、咨询资源或与其他 IDE特性互动等,时间平均要长5分钟,而不是1.5分钟。我们通过设计工具来完成设计周期。