Supporting interrupted programming tasks with memory-based aids
Parnin, Christopher Joseph
MetadataShow full item record
Despite its vast capacity and associative powers, the human brain does not deal well with interruptions. Particularly in situations where information density is high, such as during a programming task, recovering from an interruption requires extensive time and effort. Although researchers recognize this problem, no programming tool takes into account the brain's structure and limitations in its design. In this dissertation, I describe my research collecting evidence about the impact of interruptions on programmers, understanding how programmers manage them in practice, and designing tools that can support interrupted programmers. I present a conceptual framework for understanding human memory organization and its strengths and weaknesses, particularly with respect to dealing with work interruptions. The framework explains empirical results obtained from experiments in which programmers were interrupted. For researchers, the intent is to use the framework to design development tools capable of compensating for human memory limitations. For developers, the insights and strategies from the framework should allow reflection on our own programming habits and work practices and how they may be tailored to better fit our human brain. The framework is evaluated by conducting two experiments that find that 1) developers can recall nearly twice as many past programming events using a tool designed with the framework over traditional tools, with comparable recall effort and 2) developers can remember to perform nearly twice as many prospective actions using a tool designed with the framework over traditional tools, with limited impact to cognitive load.