Task Interruption in Software Development Projects: What Makes some Interruptions More Disruptive than Others?

Multitasking has always been an inherent part of software development and is known as the primary source of interruptions due to task switching in software development teams. Developing software involves a mix of analytical and creative work, and requires a significant load on brain functions, such as working memory and decision making. Thus, task switching in the context of software development imposes a cognitive load that causes software developers to lose focus and concentration while working thereby taking a toll on productivity. To investigate the disruptiveness of task switching and interruptions in software development projects, and to understand the reasons for and perceptions of the disruptiveness of task switching we used a mixed-methods approach including a longitudinal data analysis on 4,910 recorded tasks of 17 professional software developers, and a survey of 132 software developers. We found that, compared to task-specific factors (e.g. priority, level, and temporal stage), contextual factors such as interruption type (e.g. self/external), time of day, and task type and context are a more potent determinant of task switching disruptiveness in software development tasks. Furthermore, while most survey respondents believe external interruptions are more disruptive than self-interruptions, the results of our retrospective analysis reveals otherwise. We found that self-interruptions (i.e. voluntary task switchings) are more disruptive than external interruptions and have a negative effect on the performance of the interrupted tasks. Finally, we use the results of both studies to provide a set of comparative vulnerability and interaction patterns which can be used as a mean to guide decision-making and forecasting the consequences of task switching in software development teams.

[1]  Niels Taatgen,et al.  The Multitasking Mind , 2010, Oxford series on cognitive models and architectures.

[2]  Chris Parnin,et al.  A Cognitive Neuroscience Perspective on Memory for Programming Tasks , 2010, PPIG.

[3]  Paul Ralph,et al.  Grounded Theory in Software Engineering Research: A Critical Review and Guidelines , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[4]  Thomas Zimmermann,et al.  The Work Life of Developers: Activities, Switches and Perceived Productivity , 2017, IEEE Transactions on Software Engineering.

[5]  Raquel Benbunan-Fich,et al.  Self-interruptions in discretionary multitasking , 2013, Comput. Hum. Behav..

[6]  Víctor M. González,et al.  Work fragmentation in developer interaction data , 2017, J. Softw. Evol. Process..

[7]  Marieke K. van Vugt,et al.  Interrupt me: External interruptions are less disruptive than self-interruptions , 2016, Comput. Hum. Behav..

[8]  Christopher A. Monk,et al.  The Attentional Costs of Interrupting Task Performance at Various Stages , 2002 .

[9]  Barry W. Boehm,et al.  Impact of task switching and work interruptions on software development processes , 2017, ICSSP.

[10]  Rico Fischer,et al.  Efficient multitasking: parallel versus serial processing of multiple tasks , 2015, Front. Psychol..

[11]  S. Hart,et al.  Development of NASA-TLX (Task Load Index): Results of Empirical and Theoretical Research , 1988 .

[12]  Víctor M. González,et al.  "Constant, constant, multi-tasking craziness": managing multiple working spheres , 2004, CHI.

[13]  Mary Czerwinski,et al.  Instant Messaging: Effects of Relevance and Timing , 2000 .

[14]  Spencer Rugaber,et al.  Resumption strategies for interrupted programming tasks , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[15]  J. Gregory Trafton,et al.  Memory for goals: an activation-based model , 2002, Cogn. Sci..

[16]  Sten-Erik Clausen,et al.  Applied correspondence analysis : an introduction , 1998 .

[17]  C. Lebiere,et al.  The Atomic Components of Thought , 1998 .

[18]  John Sweller,et al.  Cognitive Load During Problem Solving: Effects on Learning , 1988, Cogn. Sci..

[19]  Gregory Schraw,et al.  Cognitive processes in well‐defined and ill‐defined problem solving , 1995 .

[20]  John Rieman,et al.  The diary study: a workplace-oriented research tool to guide laboratory efforts , 1993, INTERCHI.

[21]  Kelly Blincoe,et al.  The Sky Is Not the Limit: Multitasking Across GitHub Projects , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[22]  Zahra Shakeri Hossein Abad,et al.  Task Interruptions in Requirements Engineering: Reality Versus Perceptions! , 2017, 2017 IEEE 25th International Requirements Engineering Conference (RE).

[23]  Robert DeLine,et al.  Information N eeds in Collocated Software Dev elopment Teams , 2007 .

[24]  Zahra Shakeri Hossein Abad,et al.  A Visual Narrative Path from Switching to Resuming a Requirements Engineering Task , 2017, 2017 IEEE 25th International Requirements Engineering Conference (RE).

[25]  John R. Anderson Cognitive Psychology and Its Implications , 1980 .

[26]  Kara A. Latorella,et al.  The Scope and Importance of Human Interruption in Human-Computer Interaction Design , 2002, Hum. Comput. Interact..

[27]  Niels Taatgen,et al.  Toward a unified theory of the multitasking continuum: from concurrent performance to task switching, interruption, and resumption , 2009, CHI.

[28]  J. R. Landis,et al.  The measurement of observer agreement for categorical data. , 1977, Biometrics.

[29]  Zahra Shakeri Hossein Abad,et al.  Understanding Task Interruptions in Service Oriented Software Development Projects: An Exploratory Study , 2017, 2017 IEEE/ACM 4th International Workshop on Software Engineering Research and Industrial Practice (SER&IP).

[30]  A. Woolley,et al.  Multiple Team Membership: a Theoretical Model of its Effects on Productivity and Learning for Individuals and Teams , 2011 .

[31]  Víctor M. González,et al.  No task left behind?: examining the nature of fragmented work , 2005, CHI.

[32]  N. Taatgen,et al.  The problem state: a cognitive bottleneck in multitasking. , 2010, Journal of experimental psychology. Learning, memory, and cognition.

[33]  Behrouz Homayoun Far,et al.  Two Sides of the Same Coin: Software Developers' Perceptions of Task Switching and Task Interruption , 2018, EASE.

[34]  Thomas Fritz,et al.  Software developers' perceptions of productivity , 2014, SIGSOFT FSE.

[35]  Jan Chong,et al.  Interruptions on software teams: a comparison of paired and solo programmers , 2006, CSCW '06.

[36]  Niels Taatgen,et al.  What Makes Interruptions Disruptive?: A Process-Model Account of the Effects of the Problem State Bottleneck on Task Interruption and Resumption , 2015, CHI.