Abstract

Developers work on a broad variety of tasks during their workdays and constantly switch between them. While these task switches can be beneficial, they can also incur a high cognitive burden on developers, since they have to continuously remember and rebuild the task context–the artifacts and applications relevant to the task. Researchers have therefore proposed to capture task context more explicitly and use it to provide better task support, such as task switch reduction or task resumption support. Yet, these approaches generally require the developer to <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">manually</i> identify task switches. Automatic approaches for predicting task switches have so far been limited in their accuracy, scope, evaluation, and the time discrepancy between predicted and actual task switches. In our work, we examine the use of <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">automatically</i> collected computer interaction data for detecting developers’ task switches as well as task types. In two field studies–a 4h observational study and a multi-day study with experience sampling–we collected data from a total of 25 professional developers. Our study results show that we are able to use temporal and semantic features from developers’ computer interaction data to detect task switches and types in the field with high accuracy of 84 percent and 61 percent respectively, and within a short time window of less than 1.6 minutes on average from the actual task switch. We discuss our findings and their practical value for a wide range of applications in real work settings.

Highlights

  • To successfully perform their work, software developers are required to constantly switch between a broad variety of tasks, such as implementing a new feature, answering an email or attending a meeting, with each task requiring its own set of artifacts and applications [1], [2], [3]

  • While studies have shown that the explicitly captured task context can lower the cognitive burden on developers and increase productivity [6], [12], all of these approaches require some form of manual interaction of the developer to identify task boundaries, something that developers often forget to do in practice after using such an approach for a few days [6]

  • For the task type predictions we found that the individual models outperform the general model, with an overall accuracy of 61% compared to 50%

Read more

Summary

Introduction

To successfully perform their work, software developers are required to constantly switch between a broad variety of tasks, such as implementing a new feature, answering an email or attending a meeting, with each task requiring its own set of artifacts and applications [1], [2], [3]. While studies have shown that the explicitly captured task context can lower the cognitive burden on developers and increase productivity [6], [12], all of these approaches require some form of manual interaction of the developer to identify task boundaries, something that developers often forget to do in practice after using such an approach for a few days [6] To address this issue, few researchers have proposed approaches to automatically detect switches between tasks, varying mainly in the features used (e.g. user input or application based), and the method applied (e.g. supervised versus unsupervised machine learning) [13], [14], [15].

Methods
Results
Discussion
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call