It Will Never Work in Theory: Live!

Our next set of online lightning talks is happening April 25-26, 2023. Check out the speakers and get your ticket now!

Task Interruption in Software Development Projects

Reviewed by Greg Wilson / 2021-08-09
Keywords: Productivity

Few things are as annoying as being interrupted when you're trying to—no, thank you, I don't want another cup of tea just yet. As I was saying, few things are—pardon me? Sure, lasagna would be fine. Anyway, few things are—no, I don't where your headphones are. Now, where was I?

This study looked at what kinds of interruptions have the most effect on programmers' work. One finding is that the time of day and whether or not the interruption was internal or external mattered more than its priority or what stage of work the programmer was in when the interruption occurred. The real surprise was that programmers thought external interruptions were more disruptive that internal ones (i.e., self-interruptions), but the reverse was actually true.

One thing I particularly liked about this paper was its inclusion of tips for practitioners. My favorite was, "less experienced software developers find it harder to capture the context they were in before switching their primary task and they are most likely to need to backtrack further when they resume their interrupted tasks. Thus, software developers should ask their unplanned questions from co-workers who are more experienced in the topic related to their ongoing task."

Abad2018 Zahra Shakeri Hossein Abad, Oliver Karras, Kurt Schneider, Ken Barker, and Mike Bauer: "Task Interruption in Software Development Projects". Proceedings of the 22nd International Conference on Evaluation and Assessment in Software Engineering 2018, 10.1145/3210459.3210471.

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.