Conference PaperPDF Available

Abstract and Figures

Software developers often work on multiple projects and tasks throughout a work day, which may affect their productivity and quality of work. Knowing how working on several projects at a time affects productivity can improve cost and schedule estimations. It also can provide additional insights for better work scheduling and the development process. We want to achieve a better productivity without losing the benefits of work interruptions and multitasking for developers involved in the process. To understand how the development process can be improved, first, we identify work interruptions that mostly have a negative effect on productivity, second, we need to quantitatively evaluate impact of multitasking (task switching, work context switching) and work interruptions on productivity. In this research we study cross-project multitasking among the developers working on multiple projects in an educational setting. We propose a way to evaluate the number of cross-project interruptions among software developers using self-reported work logs. This paper describes the research that found: a) software developers involved in two or more projects on average spend 17% of their development effort on cross-project interruptions, b) the amount of effort spent on interruptions is overestimated by the G. Weinberg’s heuristic, c) the correlation between the number of projects and effort spent by developers on cross-project interruptions is relatively weak, and d) there is strong correlation between the number of projects and the number of interruptions developers reported.
Content may be subject to copyright.
Impact of Task Switching and Work Interruptions on Soware
Development Processes
Alexey Tregubov
University of Southern California
941 W 37 Pl, SAL 327
Los Angeles, California 90089-0781, USA
tregubov@usc.edu
Barry Boehm
University of Southern California
941 W 37 Pl, SAL 328
Los Angeles, California 90089-0781, USA
boehm@usc.edu
Natalia Rodchenko
University of Southern California
1050 Childs Way, RRI 316B
Los Angeles, California 90089-0781, USA
rodchenk@usc.edu
Jo Ann Lane
San Diego State University
5500 Campanile Drive
San Diego, California 92182-7720, USA
jalane@mail.sdsu.edu
ABSTRACT
Software developers often work on multiple projects and tasks
throughout a work day, which may aect their productivity and
quality of work. Knowing how working on several projects at a time
aects productivity can improve cost and schedule estimations. It
also can provide additional insights for better work scheduling and
the development process. We want to achieve a better productivity
without losing the benets of work interruptions and multitasking
for developers involved in the process. Tounderstand how the devel-
opment process can be improved, rst, we identify work interrup-
tions that mostly have a negative eect on productivity, second, we
need to quantitatively evaluate impact of multitasking (task switch-
ing, work context switching) and work interruptions on productiv-
ity. In this research we study cross-project multitasking among the
developers working on multiple projects in an educational setting.
We propose a way to evaluate the number of cross-project inter-
ruptions among software developers using self-reported work logs.
This paper describes the research that found: a) software developers
involved in two or more projects on average spend 17% of their
development eort on cross-project interruptions, b) the amount of
eort spent on interruptions is overestimated by the G. Weinberg’s
heuristic, c) the correlation between the number of projects and
eort spent by developers on cross-project interruptions is rela-
tively weak, and d) there is strong correlation between the number
of projects and the number of interruptions developers reported.
CCS CONCEPTS
Social and professional topics Software management
;
Software and its engineering Programming teams;
Permission to make digital or hard copies of all or part of this work for personal or
classroom use is granted without fee provided that copies are not made or distributed
for prot or commercial advantage and that copies bear this notice and the full citation
on the rst page. Copyrights for components of this work owned by others than ACM
must be honored. Abstracting with credit is permitted. To copy otherwise, or republish,
to post on servers or to redistribute to lists, requires prior specic permission and/or a
fee. Request permissions from permissions@acm.org.
ICSSP’17, Paris, France
©2017 ACM. 978-1-4503-5270-3/17/07. . . $15.00
DOI: 10.1145/3084100.3084116
KEYWORDS
Work interruptions, eort estimation, multitasking overhead, cost
estimation, software development
ACM Reference format:
Alexey Tregubov, Barry Boehm, Natalia Rodchenko, and Jo Ann Lane. 2017.
Impact of Task Switching and Work Interruptions on Software Development
Processes. In Proceedings of 2017 International Conference on Software and
Systems Process , Paris, France, July 2017 (ICSSP’17), 5 pages.
DOI: 10.1145/3084100.3084116
1 INTRODUCTION
Many have observed that software developers need to switch be-
tween dierent tasks quite often throughout a work day [1]. Parnin
and Rugaber [1] studied 10,000 sessions of developers’ work and
concluded that work interruptions and task resumptions are a
frequent problem for developers. Another study [7] found that
information-technology workers spent an average of only 3 min-
utes per task before switching to another task. DeMarco and Lis-
ter [3] found that developers work only 30% of their time alone
and spend another 70% on collaboration and interaction with each
other. Often such collaboration introduces work interruptions and
requires developers to work on several projects at a time. In general,
working on multiple tasks at a time and switching between them
can have both positive and negative eects.
In order to better estimate development costs and achieve a better
productivity we want to know the negative impact of work inter-
ruptions. We chose to study cross-project interruptions, because
this type of interruptions introduces a time-consuming context
switching which is often viewed as a waste of time. To achieve a
better productivity cross-project interruptions can be reduced in
development processes (e.g. Lean, Agile processes).
In this research, we quantitatively evaluated the impact of cross-
project context switching and work interruptions on cost overhead
in several software development projects in an educational setting.
We used observational data collected from developers’ self-reported
work logs.
We answer two research questions in this study: (1) whether
there is a linear correlation between the number of cross-project
work interruptions and the number of projects and (2) whether
134
ICSSP’17, July 2017, Paris, France Alexey Tregubov, Barry Boehm, Natalia Rodchenko, and Jo Ann Lane
Figure 1: Reimmersion time.
there is a linear correlation between the amount of time spent on
cross-project interruptions and the number of projects involved.
2 BACKGROUND
Dzubak [4] denes multitasking as the engagement in individual
tasks that are performed sequentially and implies that there is
necessarily some time spent switching between tasks. In other
words, parallel tasks interrupt each other.
Jett and George [5] distinguish four major types of interruptions:
intrusion, break, distraction, discrepancy. All of them have pos-
itive and negative eects on productivity, dierent resumptions
time, dierent time of switching to a new work context, dierent
underlining causes and sources of interruptions.
Positive eects of work interruptions in software development
include a better team collaboration and communication (e.g. inter-
ruptions for design/peer review and architecture review meetings,
which help developers to dene a “big picture” of the project and
obtain a feedback from their colleagues [4]), a stimulating work
environment (e.g. reduced “the boredom eect” and the inclination
to procrastinate [4]), a reduced “struggle time” trying to solve com-
plex problems for too long [6]. Positive interruptions are typically
related to software design work, problem solving, and debugging
activities that often depend upon the creation and evolution of
mental models. These mental models are what facilitate concurrent
engineering and development.
Along with positive eects, studies [7-8] found that multitasking
can reduce work productivity. In particular, interruptions introduce
necessary time spent switching between the tasks, called “attention
switching” in [8] and make an individual less productive by reduc-
ing the amount of short-term memory dedicated to a single task.
Salvucci et al. [9] performed a set of experiments and observations
to measure the time cost of task switching and determined that it
depends on the complexity of the task, time length between task
switches, and causes of interruptions (e.g. external or self-inicted
interruptions).
DeMarco and Lister [7] introduced a metric called reimmersion
time as a measure of the eect of task interruption. Reimmersion
time is an extra eort to complete the task after an interruption
(Fig. 1). This metric is also known as resumption lag [1, 7, 9, 10].
G. Weinberg [11] introduced a heuristic measure of the eect of
multitasking on reimmersion time that is a simple linear function
of the number of projects assigned to an individual at the same time
(see Fig. 6). The heuristic predicts a 100% increase of multitasking
overhead for every additional task assigned.
In this paper, we study only cross-project interruptions and
cross-project multitasking. We dene cross-project multitasking
as an involvement of software developers in multiple engineering
activities with dierent or minimally overlapping contexts over
a certain period. Cross-project interruptions are characterized by
relatively long reimmersion times, longer resumption times, and
signicantly dierent work contexts of interrupting tasks [9]. Of-
ten such interruptions are external (not self-inicted); therefore,
could be limited by the development process (e.g. Agile and Lean
development processes acknowledge the problem and introduce
measures to reduce work interruptions [12, 13]).
Cross-project multitasking and interruptions may appear in dif-
ferent forms. A few examples are:
Developers are often shared between projects in organiza-
tions with matrix structure
Developers are shared between multiple releases within a
single project (if several releases are maintained)
In System of Systems environments, developers are often
shared between several contexts such as customer-specic
requirements, software releases for clients, etc.[13].
The focus of the rest of this paper is on negative productivity
impacts of cross-project multitasking and interruptions.
3 CROSS-PROJECT MULTITASKING AND
INTERRUPTIONS
3.1 Research Questions
In this paper, we measure a negative impact of cross-project inter-
ruptions as the total eort (person-hours) each developer spends
on reimmersion time after each interruption that was caused by
tasks from other activities.
The following research questions are addressed in the analysis
below: is there a linear correlation between the number of projects
each developer was involved with and
a
the number of cross-project interruptions they experience?
b
the amount of eort spent on cross-project interruptions?
There were two types of hypotheses tested for each question:
H.1
Correlation between subject means: developers working
on more projects tend to experience more cross-project (a)
interruptions, (b) spent more eort.
H.2
Correlation within subjects: an increase of the number of
projects per subject is associated with an (a) increase of
the number of cross-project interruptions, (b) increase of
time spent on interruptions.
Additionally, we also compared the eort evaluation results with
the predictions of G. Weinberg’s heuristic (Fig. 6).
3.2 Data Collection
In order to evaluate the impact of cross-project multitasking, we
observed 10 software projects for three months. All projects were
developed as part of a graduate level software engineering class at
the University of Southern California. Clients of these projects rep-
resent various non-prot organizations, entrepreneurs and private
companies. Clients joined teams of students of software engineer-
ing class to work on their projects. Most of the projects were scoped
135
Impact of Task Switching and Work Interruptions on Soware Development Processes ICSSP’17, July 2017, Paris, France
to t into a single semester of the class. Working on real life projects
and reporting project progress is part of the class curriculum.
In total, we collected work logs and weekly progress reports of
68 students for one semester of work. All students had degrees in
computer science related elds and experience in software devel-
opment.
Daily work logs were part of the work process, which allowed us
to collect data on development eort and acquire development eort
distribution across projects and individuals without interfering with
their work ow. Project tasks were assigned to developers via the
project tracking system used in the class. Every student reported
their daily and weekly progress (time spent) on each task, that
he/she performed on that day. In addition to the work logs, students
also provided weekly information about work interruptions and self-
evaluated reimmersion time. They were instructed how to evaluate
their reimmersion time and how to use the project tracking system.
Some of the students also took one or two other classes and
had no outside jobs; therefore, they had to distribute their time
between the following three types of activities: (1) a project in the
software engineering class, (2) group projects/tasks/assignments
in classes other than the software engineering class, (3) individual
assignments in the software engineering class and all other classes.
These three types of activities have very dierent context of work,
and independent deadlines. We viewed a switching between these
three types of activities as a cross-project interruption.
In this study, we collected detailed information about projects
in the software engineering class via the project tracking system
(Atlassian Jira). The project tracking system tracked tasks’ statuses.
A task’s status, reported by developers, can show if it is completed,
in progress or in the backlog. A task’s labels also allowed us to
distinguish dierent types of engineering activities (requirement
engineering, coding, testing, documentation, etc.).
We collected information about the impact on the class project
from the other two types of activities via weekly progress reports,
where students provided self-evaluated reimmersion time and types
of activities they were involved with throughout the week.
For the purpose of consistent terminology in this paper, we will
call the three types of activities listed above as projects (activi-
ties with dierent context of work). We also will count switching
between them as cross-project switching.
In order to analyze the impact of interruptions on eort, we
selected a subset of 29 full-time students who worked in similar
conditions. They only took two classes (one of them was the soft-
ware engineering class) and had no outside jobs. At least 25% of their
time in the class project was dedicated to development activities
(programming, bug xing, etc.).
3.3 Calculation of Work Interruptions and
Reimmersion Time
We used reimmersion time as described in Fig. 1 to evaluate the
impact of cross-project interruptions on developers’ productivity.
In order to calculate the total eort each developer spends on reim-
mersion, we need to know the number of interruptions (obtained
from work logs) and the reimmersion time after each interruption
(evaluated by developers).
Work interruptions were counted by analyzing developers’ work
logs and weekly progress reports. These two sources of information
were used to verify the information about the number of projects
students were involved with and the number of interruptions they
experienced. Weekly progress reports provide the number of inter-
ruptions evaluated by developers, and work logs allow us to see
how developers worked on a software engineering class project
throughout the week. Since all 29 developers spent their work time
only on up to three projects at a time (including the software engi-
neering class project), their work logs of tasks from the software
engineering class projects showed when work was interrupted. In
some cases work logs can only provide a lower bound estimate on
the number of interruptions, because we were only able to track
one out of three projects they worked on.
Reimmersion time may depend on many factors: the complexity
of the task, length of the interruption, complexity of the other task
that interrupted work, individual’s personality (closure-oriented
vs. curiosity-oriented), etc.[5]. To account for all the factors that
impact the reimmersion time we asked developers to evaluate their
weekly average reimmersion time for tasks that they did for the class
project. The total weekly eort spent on cross-project interruptions
(i.e. multitasking overhead) is computed as the total number of
interruptions times the reimmersion time.
4 RESULTS
In our observational data we collected repeated measures for the
same set of projects over the course of 12 weeks (12 weeks = 12
times); therefore, we had to account for repeated observations in
our linear regression analysis. For both eort and interruptions we
tested two types of hypotheses: (1) developers working on more
projects tend to have more interruptions and tend to spend more
eort on multitasking overhead; (2) the increase of the number of
projects worked on is associated with increase of the number of
interruptions and eort.
To answer the rst group of questions we used the linear cor-
relation between subject means (mean values of the number of
projects each developer was involved in, eort and the number
of cross-project interruptions of each developer). Fig. 2 shows the
correlation between the average number of interruptions and the
average number of projects per week per developer. The total num-
ber of data points is 29. The linear correlation is relatively strong
(R2 = 0.60699). It supports the hypothesis H1.a that developers
working on more projects tend to experience more interruptions.
Fig. 3 shows the correlation between the average eort spent on
context switching (cross-project multitasking overhead) and the
average number of projects per week per developer. The total num-
ber of data points is also 29. The linear correlation is weak (R2 =
0.1622). It does not support the hypothesis H1.b that developers
working on more projects tend to have more cross-project multi-
tasking overhead. From Fig. 6 we can see that average multitasking
overhead remains the same.
To answer the second group of questions we used a multiple
linear regression analysis to compute correlation coecients. We
treated developers as a categorical factor (a predictor). Fig. 4 shows
the number of interruptions versus the number of projects per
week. The total number of data points is 348 (repeated observations
136
ICSSP’17, July 2017, Paris, France Alexey Tregubov, Barry Boehm, Natalia Rodchenko, and Jo Ann Lane
Figure 2: The average number of interruptions vs. the aver-
age number of projects per week per developer.
Figure 3: The average eort (person hours) vs. the average
number of projects per week per developer.
included). The linear correlation is strong (multiple R2 = 0.7779). It
supports the hypothesis H2.a. This means that when a developer
works on three projects in one week, he/she experiences more inter-
ruptions compared to weeks when he/she works on two projects. If
developers work on one project, there is no cross-project interrup-
tions at all. Fig. 5 shows the eort spent on context switching versus
the number of projects per week. The total number of data points
is 348 (repeated observations included). The linear correlation is
strong (multiple R2 = 0.6934). It supports the hypothesis H2.b It
means that when a developer works on three projects in one week,
he/she has more multitasking overhead compared to weeks when
he/she works on two projects.
To better see how multitasking overhead aects productivity, we
converted eort spent on cross-project interruptions (measured in
person hours) into the percentage of the full-time equivalent (FTE).
FTE = 40 person hours per week.
Fig. 6 shows average eort each developer spent on cross-project
multitasking overhead per week. It also compares multitasking over-
head results from observations with the G. Weinberg’s heuristic,
which predicts a larger multitasking overhead.
Figure 4: The number of cross project interruptions vs. the
number of projects per week per developer.
Figure 5: Eort spent on context switching vs. the number
of projects per week per developer.
Figure 6: Average eort developers spent on cross-projects
multitasking per week as a portion of FTE.
Dierent sources estimate that the reimmersion time for infor-
mation/knowledge workers varies from 20 minutes to 1-2 hours [1,
2, 7, 9]. We evaluated a lower bound estimate for the multitasking
overhead using a constant 0.5 hour value of the reimmersion time
for all interruptions (see Fig. 6). The evaluated lower bound under-
estimates the actual average value of the multitasking overhead.
Additionally, we wanted to see if there was any impact of cross-
project multitasking on quality of work. Students were evaluated
during architecture reviews meetings and by the clients at the end
137
Impact of Task Switching and Work Interruptions on Soware Development Processes ICSSP’17, July 2017, Paris, France
Figure 7: Quality of work decrease depending on multitask-
ing overhead.
Table 1: Hypotheses summary.
Hypothesis R2/ multiple R2p Accepted / Rejected
H1.a 0.60699 <0.01 Accepted
H2.a 0.7779 <0.01 Accepted
H1.b 0.0.1622 <0.03 Rejected
H2.b 0.6934 <0.01 Accepted
of the semester. The impact on the quality of work was measured
in terms of grade points deducted. Fig. 7 shows grade deduction
depending on the amount of multitasking overhead.
In order to make quantitative conclusions about correlation be-
tween the quality of work and the amount of multitasking overhead,
we need to collect more data. However, visual observation of the
data points suggests that projects where multitasking overhead
took less than 40% of the overall eort had a better quality of work
compare to other projects. Table 1 summarizes all other results.
5 TREATS TO VALIDITY
This is an on-going research which has limitations discussed below.
Self-tracking of the reimmersion time and hours devoted to
projects may not be accurate. However, these values do not af-
fect our conclusions about the correlation between the number of
projects and the number of interruptions. To get a more accurate
evaluation of the reimmersion time, we plan to conduct a more
controlled experiment.
Counting only cross-project interruptions might underestimate
the overall multitasking overhead caused by internal (within project)
and self-inicted interruptions. Therefore, evaluations presented
here can be viewed as a lower bound of the overall multitasking
overhead.
Participating subjects were graduate students in software engi-
neering educational environment. To limit the impact of deadlines
in other classes, students in the selected sample were enrolled in
the same classes (e.g. students who took 3 classes were all enrolled
in software engineering class, algorithms class and AI class). The
method used in this research can be applied to industry projects in
other domains.
6 CONCLUSIONS
In this study, we evaluated the impact of cross-project multitask-
ing on software development eort by analyzing work logs and
weekly progress reports. Results show that developers who work
on 2 or 3 projects spend on average 17% of their eort on context
switching between tasks from dierent projects. Developers who
were involved in more projects tend to have more cross-project
work interruptions. However, the linear correlation between the
number of projects each developer worked on in one week and the
amount of eort developers spend on context switching is weak.
This partially can be explained by excessive amount of switching
between two most active projects.
The number of interruptions can be used successfully to evaluate
the quantitative impact of multitasking on eort. The number of
interruptions that people experience can also be used as a metric
and a measure of multitasking in teams. Additionally, the impact
of multitasking on eort can be integrated into software develop-
ment parametric cost and schedule estimation models such as the
Constructive Cost Estimation Model (COCOMO
©
) for better eort
estimation.
Finally, the work log analysis tools that we used in our research
can be integrated with project tracking systems such as Atlassian
Jira to provide real-time information about work interruptions and
their impact on productivity.
REFERENCES
[1]
Parnin, Chris, and Spencer Rugaber. "Resumption strategies for interrupted pro-
gramming tasks." Software Quality Journal 19, no. 1 (2011): 5-34.
[2]
González, Victor M., and Gloria Mark. "Constant, constant, multi-tasking crazi-
ness: managing multiple working spheres." In Proceedings of the SIGCHI confer-
ence on Human factors in computing systems, pp. 113-120. ACM, 2004.
[3]
DeMarco, Tom, and Tim Lister. Peopleware: productive projects and teams.
Addison-Wesley, 2013.
[4] Dzubak, Cora M. "Multitasking: The good, the bad, and the unknown." The Journal
of the Association for the Tutoring Profession 1.2 (2008): 1-12.
[5]
Jett, Quintus R., and Jennifer M. George. "Work interrupted: A closer look at the
role of interruptions in organizational life." Academy of Management Review 28.3
(2003): 494-507.
[6]
Whittaker, Steve, David Frohlich, and Owen Daly-Jones. "Informal workplace
communication: What is it like and how might we support it?." Proceedings of
the SIGCHI conference on Human factors in computing systems. ACM, 1994
[7]
Meyer, A.N., Fritz, T., Murphy, G.C. and Zimmermann, T., 2014, November. Soft-
ware developers’ perceptions of productivity. In Proceedings of the 22nd ACM
SIGSOFT International Symposium on Foundations of Software Engineering (pp.
19-29). ACM.
[8] Delbridge, Kerry Allison. Individual dierences in multi-tasking ability: Exploring
a nomological network. 2000.
[9] Salvucci, Dario D., Niels A. Taatgen, and Jelmer P. Borst. "Toward a unied theory
of the multitasking continuum: from concurrent performance to task switching,
interruption, and resumption." In Proceedings of the SIGCHI conference on human
factors in computing systems, pp. 1819-1828. ACM, 2009.
[10]
Katidioti, Ioanna, Jelmer P. Borst, and Niels A. Taatgen. "What happens when we
switch tasks: Pupil dilation in multitasking." Journal of experimental psychology:
applied 20, no. 4 (2014): 380.
[11]
Weinberg, Gerald M. "Quality software management." New York (1993).
[12]
Tregubov, Alexey, and Jo Ann Lane. "Simulation of Kanban-based Scheduling
for Systems of Systems: Initial Results." Procedia Computer Science 44 (2015):
224-233.
[13]
Tregubov, Alexey, and Jo Ann Lane. "What does it mean to be Lean in SoSE
environment?." In INCOSE International Symposium, vol. 26, no. 1, pp. 1347-1358.
2016.
138
... Interruptions and their effects on software development work have been investigated. Tregubov et al. (2017) showed that developers working in multiple projects use a significant amount of their working time on context switching. Sykes (2011) discovered that senior developers and technical leads were experiencing more interruptions in their work in comparison to the regular staff at a software development company, guidelines on avoiding interruptions for software developers are also given in the work. ...
... We used factor analysis to study the structure of the underlying variables in our data set (Thompson 2004). We explored the data sources from Table 1 with the fa.parallel function 6 for the optimum number of factor, then we used the fa function 7 to find the minimum residual (minres) solution using 100 iterations. ...
Article
Full-text available
Reports of poor work well-being and fluctuating productivity in software engineering have been reported in both academic and popular sources. Understanding and predicting these issues through repository analysis might help manage software developers’ well-being. Our objective is to link data from software repositories, that is commit activity, communication, expressed sentiments, and job events, with measures of well-being obtained with a daily experience sampling questionnaire. To achieve our objective, we studied a single software project team for eight months in the software industry. Additionally, we performed semi-structured interviews to explain our results. The acquired quantitative data are analyzed with generalized linear mixed-effects models with autocorrelation structure. We find that individual variance accounts for most of the R ² values in models predicting developers’ experienced well-being and productivity. In other words, using software repository variables to predict developers’ well-being or productivity is challenging due to individual differences. Prediction models developed for each developer individually work better, with fixed effects R ² value of up to 0.24. The semi-structured interviews give insights into the well-being of software developers and the benefits of chat interaction. Our study suggests that individualized prediction models are needed for well-being and productivity prediction in software development.
... Interruptions and their effects on software development work have been investigated. Tregubov et al. (2017) showed that developers working in multiple projects use a significant amount of their working time on context switching. Sykes (2011) discovered that senior developers and technical leads were experiencing more interruptions in their work in comparison to the regular staff at a software development company, guidelines on avoiding interruptions for software developers are also given in the work. ...
... We used factor analysis to study the structure of the underlying variables in our data set (Thompson 2004). We explored the data sources from Table 1 with the fa.parallel function 6 for the optimum number of factor, then we used the fa function 7 to find the minimum residual (minres) solution using 100 iterations. ...
Preprint
Reports of poor work well-being and fluctuating productivity in software engineering have been reported in both academic and popular sources. Understanding and predicting these issues through repository analysis might help manage software developers' well-being. Our objective is to link data from software repositories, that is commit activity, communication, expressed sentiments, and job events, with measures of well-being obtained with a daily experience sampling questionnaire. To achieve our objective, we studied a single software project team for eight months in the software industry. Additionally, we performed semi-structured interviews to explain our results. The acquired quantitative data are analyzed with generalized linear mixed-effects models with autocorrelation structure. We find that individual variance accounts for most of the R2R^2 values in models predicting developers' experienced well-being and productivity. In other words, using software repository variables to predict developers' well-being or productivity is challenging due to individual differences. Prediction models developed for each developer individually work better, with fixed effects R2R^2 value of up to 0.24. The semi-structured interviews give insights into the well-being of software developers and the benefits of chat interaction. Our study suggests that individualized prediction models are needed for well-being and productivity prediction in software development.
... However, the openness toward change and the high degree of collaboration also cause interruptions for the software development team (Conboy, 2009;Drury et al., 2012;Faegri et al., 2010;Moe et al., 2010;Tanner & Mackinnon, 2015;Tregubov et al., 2017). We understand interruptions as events that impede or delay organizational members during work tasks (Jett & George, 2003). ...
... Agile practices are designed to cope with the uncertainty of high customer involvement, fast responses to change, and formalized elements to support collaboration and coordination (Conboy, 2009;Recker et al., 2017;Vidgen & Wang, 2009). However, the way in which agile approaches help software development teams in coping with interruptions that are caused by this mindset is unclear (Drury et al., 2012;Tregubov et al., 2017). More specifically, literature remains silent on how interruptions are handled in agile software development contexts. ...
Article
Full-text available
Agile approaches help software development project teams to better meet user needs and ensure flexibility in uncertain environments. But using agile approaches invites changes to the project and increases interactions between team members, which both cause interruptions in the workplace. While interruptions can help in task completion and increase process flexibility, they can also hinder employee productivity. We conducted an exploratory study of four agile software development teams. Our analysis identified (1) programming-related work impediments, (2) interaction-related interruptions, and (3) interruptions imposed by the external environment, which were managed by improved information retrieval and reduced team dependencies.
... In terms of the frequency of task switching and developers' productivity, Tregubov et al. [35] conducted a retrospective analysis and propose a way to evaluate the number of cross-project interruptions using self-reported develop work logs. e authors reported that developers who, on a typical day, are involved in two or more projects, spend 17% of their development e ort on cross-project interruptions. ...
... 120 (91%) and 102 (77%) of the participants indicated neutrality or agreement about the negative impact of context switching and type changes, respectively ( Figure 5). e participants predominantly stated that context switching requires a di erent mindset which places more demands on cognitive resources and makes task switching more disruptive: "while it depends on how much you have to remember about a speci c task/project, context-switching can require more ramp-up because there's more context you have to bring back up". is nding is supported by existing literature [23,24,35] evaluating the negative impact of context switching on work fragmentation and consequently on developers' productivity and quality of work produced. ...
Conference Paper
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.
... In terms of the frequency of task switching and developers' productivity, Tregubov et al. [35] conducted a retrospective analysis and propose a way to evaluate the number of cross-project interruptions using self-reported develop work logs. e authors reported that developers who, on a typical day, are involved in two or more projects, spend 17% of their development e ort on cross-project interruptions. ...
... 120 (91%) and 102 (77%) of the participants indicated neutrality or agreement about the negative impact of context switching and type changes, respectively ( Figure 5). e participants predominantly stated that context switching requires a di erent mindset which places more demands on cognitive resources and makes task switching more disruptive: "while it depends on how much you have to remember about a speci c task/project, context-switching can require more ramp-up because there's more context you have to bring back up". is nding is supported by existing literature [23,24,35] evaluating the negative impact of context switching on work fragmentation and consequently on developers' productivity and quality of work produced. ...
Preprint
Task Interruption in Software Development Projects: What Makes some Interruptions More Disruptive than Others?
... Projects are a very common way to organize work (Sydow et al., 2004). A recent study among software developers has found a strong correlation between the number of projects and the number of interruptions reported (Tregubov et al., 2017). We argue that in the same vein as tasks, also projects are associated with interruptions via uncertainty. ...
Article
Purpose Interruptions are prevalent in knowledge work, and their negative consequences have driven research to find ways for interruption management. However, these means almost always leave the responsibility and burden of interruptions with individual knowledge workers. System-level approaches for interruption management, on the other hand, have the potential to reduce the burden on employees. This paper’s objective is to pave way for system-level interruption management by showing that data about factual characteristics of work can be used to identify interrupting situations. Design/methodology/approach The authors provide a demonstration of using trace data from information and communications technology (ICT)-systems and machine learning to identify interrupting situations. They conduct a “simulation” of automated data collection by asking employees of two companies to provide information concerning situations and interruptions through weekly reports. They obtain information regarding four organizational elements: task, people, technology and structure, and employ classification trees to show that this data can be used to identify situations across which the level of interruptions differs. Findings The authors show that it is possible to identifying interrupting situations from trace data. During the eight-week observation period in Company A they identified seven and in Company B four different situations each having a different probability of occurrence of interruptions. Originality/value The authors extend employee-level interruption management to the system-level by using “task” as a bridging concept. Task is a core concept in both traditional interruption research and Leavitt's 1965 socio-technical model which allows us to connect other organizational elements (people, structure and technology) to interruptions.
... The penalty factor p described above was set to p = 1.15, meaning a 15% increment in the work to be done when a developer changes the issue s/he is working on. This figure is consistent with the data by Tregubov et al. [46] who estimate that "developers who work on 2 or 3 projects spend on average 17% of their effort on context switching between tasks from different projects". In our case, the switching can be also between different issues of the same project, and the penalty is applied only to the time to work on that issue for the present day. ...
Article
Full-text available
Agile methodologies aim to reduce software development risk using short iterations, feature-driven development, continuous integration, testing automation, and other practices. However, the risk of project failure or time and budget overruns is still a relevant problem. The aim of this paper is to present and discuss a new approach to model some key risk factors in agile development, using software process simulation modeling (SPSM), which can complement other approaches, and whose usage is particularly suited for agile development. We introduce a new approach to modeling some key risk factors – namely project duration, number of implemented issues, and key statistics of issue completion time – using a simulator of agile development, which we developed to this purpose. The approach includes modeling the agile process, gathering data from the tool used for project management, and performing Monte Carlo simulations of the process, to get insights about the expected time and effort to complete the project, and to their distributions. The model’s parameters that can cause risk are errors in effort estimation of the features to develop, variations in developers’ assignment to these features, impediments related to developers’ availability and work completion. To validate the simulator, and to demonstrate how the method can be used, we analyzed three open source projects, gathering their data from JIRA repositories. We ran Monte Carlo simulations of these projects, showing that the simulator can well approximate the progress of the real project, then varying the identified risk factors and statistically evaluating their effects on the risk parameters. The proposed approach is relevant for project managers, being able to quantitatively evaluate the risks, provided that the process and the project’s data are properly modeled and gathered. As for the future, we are working to improve our risk assessment method, evaluating it on more case studies, scaling the model from a single team to multiple teams involved in one or more projects.
... Cognitive shifting introduces necessary time spent switching between the tasks, called "attention switching" [15], and reduces the amount of short-term memory dedicated to a single task [44]. Memory-for-goals [3] is one of the major cognitive theories on interruptions. ...
Conference Paper
Programming is considered a demanding task that requires focusing on detail at code level. Students learning to program need to learn to think like a programmer, which involves coming up with plans needed to solve problems, and they need to learn to write the code that corresponds to the plans that they have thought of. The use of multiple files creates additional overhead to the process, as part of the code is not visible to the student. If a student does not remember the contents of a particular file, she needs to consciously move from writing code in one file to reading code in another file. This conscious transition of attention from one location to another is known as cognitive shifting. Using key-level data collected from a programming exam, we analyze students' movements within files and between files, and relate these movements with students' performance in the course. Our results indicate that frequently moving from one file to another may lead to worse performance than more focused actions, but no such effect exists when analyzing movements within an individual file.
Article
Full-text available
Agile methodologies have transformed software development, offering flexibility and adaptability in dynamic project environment Software projects often involve in some crucial environment due to certain risk factors and crucial aspect. This paper novel approach to identification in risk management and determine various problems related to authentication and assessment in agile methodology, integrating trading risk findings with agile principles. This study proposed model for dynamic risk assessment framework integrating real-time monitoring and predictive analytics. In this paper we will demonstrate agile environment for flexibility and adaptability for various software development projects. agile projects are not immune to risks, and identifying and assessing these risks is crucial for project success.
Conference Paper
Full-text available
Understanding developer productivity is important to deliver software on time and at reasonable cost. Yet, there are numerous definitions of productivity and, as previous research found, productivity means different things to different developers. In this paper, we analyze the variation in productivity perceptions based on an online survey with 413 professional software developers at Microsoft. Through a cluster analysis, we identify and describe six groups of developers with similar perceptions of productivity: social, lone, focused, balanced, leading, and goal-oriented developers. We argue why personalized recommendations for improving software developers’ work is important and discuss design implications of these clusters for tools to support developers’ productivity.
Article
Full-text available
The better the software development community becomes at creating software, the more software the world seems to demand. Although there is a large body of research about measuring and investigating productivity from an organizational point of view, there is a paucity of research about how software developers, those at the front-line of software construction, think about, assess and try to improve their productivity. To investigate software developers' perceptions of software development productivity, we conducted two studies: a survey with 379 professional software developers to help elicit themes and an observational study with 11 professional software developers to investigate emergent themes in more detail. In both studies, we found that developers perceive their days as productive when they complete many or big tasks without significant interruptions or context switches. Yet, the observational data we collected shows our participants performed significant task and activity switching while still feeling productive. We analyze such apparent contradictions in our findings and use the analysis to propose ways to better support software developers in a retrospection and improvement of their productivity through the development of new tools and the sharing of best practices.
Article
Full-text available
Systems engineering processes for evolving systems of systems (SoS) are often software-driven and software-intensive. At the same time, SoS have multiple levels of abstraction that correspond to the various levels in the SoS hierarchy where these SoS engineering processes take place. Multiple levels of management make it difficult to capture the actual state and relative value of work in these kinds of environments. The Kanban-based scheduling system (KSS) applies lean concepts to coordinate work queues to better to address these issues. The motivation to apply agile methodologies in multi-organizational multi-level environments is based on lean principles that encourage increased visibility of work in progress, limited work in progress, and identification of issues causing blocked work. Current research is focused on formulating the KSS principles and estimating expected performance of the KSS. This paper describes the KSS work flow, Kanban scheduling principles and a simulation model designed to estimate the KSS performance.
Article
Full-text available
Interruption studies typically focus on external interruptions, even though self-interruptions occur at least as often in real work environments. In this article, we therefore contrast external interruptions with self-interruptions. Three multitasking experiments were conducted, in which we examined changes in pupil size when participants switched from a primary to a secondary task. Results showed an increase in pupil dilation several seconds before a self-interruption, which we could attribute to the decision to switch. This indicates that the decision takes a relatively large amount of time. This was supported by the fact that in Experiment 2, participants were significantly slower on the self-interruption blocks than on the external interruption blocks. These findings suggest that the decision to switch is costly, but may also be open for modification through appropriate training. In addition, we propose that if one must switch tasks, it can be more efficient to implement a forced switch after the completion of a subtask instead of leaving the decision to the user.
Conference Paper
Full-text available
Most current designs of information technology are based on the notion of supporting distinct tasks such as document production, email usage, and voice communication. In this paper we present empirical results that suggest that people organize their work in terms of much larger and thematically connected units of work. We present results of fieldwork observation of information workers in three different roles: analysts, software developers, and managers. We discovered that all of these types of workers experience a high level of discontinuity in the execution of their activities. People average about three minutes on a task and somewhat more than two minutes using any electronic tool or paper document before switching tasks. We introduce the concept of working spheres to explain the inherent way in which individuals conceptualize and organize their basic units of work. People worked in an average of ten different working spheres. Working spheres are also fragmented; people spend about 12 minutes in a working sphere before they switch to another. We argue that design of information technology needs to support people's continual switching between working spheres.
Article
While Lean practices are common across many fields and domains today, adaptation of Lean in system engineering began not so long ago. Value-driven processes with minimum waste are especially important in system of systems environments. In this paper, we discuss how system of systems engineering (SoSE) processes differ from single system development processes, and how Lean practices are often employed in SoSE. Finally, we explored the original Lean enablers for system engineering, developed by the INCOSE Lean System Engineering Working Group, and discussed how these enablers can be applied to SoSE.
Article
Abstract Interruptions are typically considered disruptive for organizational members, hindering their performance,and effectiveness. Although interruptions can have negative effects on work performance, they also can serve in multiple ways as facilitators of performance. In this paper, we discuss four key types of interruptions that have different causes and consequences: intrusions, breaks, distractions, and discrepancies. Each type of interruption can occur during the workday, and each type has different implications for individual effectiveness. We delineate the principle features of each of the four types of interruptions and specify when each kind of interruption is likely to have positive or negative consequences,for the person being interrupted. By discussing in detail the multiple kinds of interruptions and their potential for positive or negative consequences, we provide a means for organizational scholars to treat interruptions and their consequences,in more discriminating ways. 2 Interruptions are generally defined as incidents or occurrences that obstruct or delay organizational members as they attempt to make progress on work tasks and, thus, are typically