critical in programming where source code elements
can be deeply nested in hierarchical tree views.
Friction can also be reduced by allowing knowledge workers to collaborate through shared task contexts. When two knowledge workers work on the
same task there is often a desire to pass the context
of a task back and forth. A task-focused user interface
can facilitate this sharing by allowing one knowledge
worker to import a task context from another knowledge worker. Once imported, a knowledge worker
can use the mechanisms of the interface to see the
resources the other worker has considered as they
have performed the task and to build upon their colleagues’ work.
Using Task Contexts
To understand whether task contexts improve the
flow of a knowledge worker’s activity, we have been
investigating the use in practice of task-focused user
interfaces supporting task contexts. We have focused
on the use of the concept in practice as the critical
questions of interest are the overall impact on a
knowledge worker’s productivity and whether the
contexts capture and model the appropriate relevant
information to a task over time.
We have conducted three specific studies of the use
of task contexts with different populations. In 2005,
we conducted a field study involving 16 program-
mers to investigate whether the use of task contexts
could improve programmer productivity. In 2007, we
conducted a field study involving eight knowledge
workers to investigate whether task contexts provid-
ed utility for knowledge workers dealing with less
structured information than the programmers we
had previously studied. In 2013, we performed a case
study, analyzing the longitudinal use of task contexts
by three operational personnel at the software devel-
opment company with which the authors are princi-
ples. Each of these studies has provided different
insight into the utility and use of task contexts; we
report on each briefly.
Programmer Field Study
The field study of programmers used a within-subject
study design. We were interested in how the use of a
task-focused interface would affect programmer productivity as measured by whether programmers edited more with the help of a task-focused interface. We
used a ratio of the number of edits compared to the
number of selections as a measure of productivity. We
termed this measure the edit ratio. We computed the
edit ratio based on edits and selections of programming artifacts so that interaction with task management features provided would not skew the results.
The participants in the study were industry Java
programmers who used the open source Eclipse integrated development environment.
3 These participants were recruited at an industry conference. Of
the 99 programmers who signed up for the study, the
majority of the individuals were industry programmers, with about half working in organizations with
more than 50 people and who most identified their
industry sector as software manufacturing.
For the study, the programming of a participant
was monitored automatically until a certain threshold of work, defined to be 1000 edit events over no
less than two weeks. At the end of this period, our
study tools sent us an anonymous interaction history for the participant, and the participant was invited to install our task-focused interface for programming, then called the Mylar project.
4 This task-focused user interface was a version of the Eclipse
integrated development environment augmented
with the same task list as shown in figure 2 and focus
capabilities for all programming views, including the
editor and a hierarchical view of programming elements. Periodically after starting to use the task-
Table 2. Task-Focused UI Mechanisms.
Target Mechanism Description
view Filtering Elements below a certain DOI threshold are excluded
view Ranking Elements are ranked or sorted by DOI
view Decoration Foreground or background colour of elements indicates DOI
Auto-expand tree nodes to correspond to a slice of interest. Elide
window View Management Auto-apply focusing mechanisms to view on task context activation
window Editor Management Auto-close editors corresponding to uninteresting elements
Auto-restore views associated with a context on activation