# Task-focused interface

The task-focused interface is a type of user interface which extends the desktop metaphor of the graphical user interface to make tasks, not files and folders, the primary unit of interaction. Instead of showing entire hierarchies of information, such as a tree of documents, a task-focused interface shows the subset of the tree that is relevant to the task-at-hand. This addresses the problem of information overload when dealing with large hierarchies, such as those in software systems or large sets of documents. The task-focused interface is composed of a mechanism which allows the user to specify the task being worked on and to switch between active tasks, a model of the task context such as a degree-of-interest (DOI) ranking, a focusing mechanism to filter or highlight the relevant documents. The task-focused interface has been validated with statistically significant increases to knowledge worker productivity. It has been broadly adopted by programmers and is a key part of the Eclipse integrated development environment. The technology is also referred to as the "task context" model and the "task-focused programming" paradigm.

## History

The task-focused interface was invented by Mik Kersten during his PhD at the University of British Columbia in 2004. Kersten previously worked on the aspect-oriented programming team at Xerox PARC and combined the idea of crosscutting aspects and task management. Early precursors to the task-focused interface include the attention-reactive interface metaphor and the "Edit & Read Wear" document editing tool.
The first description of the task-focused interface concepts appeared in a 2005 AOSD conference publication. The first implementation of the task-focused interface started as an open source project called Eclipse Mylyn, created in March 2005. The technology evolved with input and contributions from thousands of open source community developers. In 2006, a research group and the University of Victoria demonstrated the utility of the task-focused interface and degree-of-interest model for ontology visualization. In 2007, the Mylyn implementation was bundled with the majority of Eclipse IDE distributions. In 2008, alternate implementations of task-focused interface became available, including NetBeans Cubeon, and the Tasktop Pro tool for project managers. By 2009, most agile software development and application lifecycle management tools provided integration with Mylyn. In 2011 NBTaskFocus got introduced which provided Mylyn like task-focused features in NetBeans IDE.

## Technology

The primary goal of a task-focused interface is to scope the information shown in a computer application to just that relevant to the user's current task. Based on the user's interactions, each uniquely identifiable element of information available to the user is assigned a degree-of-interest (DOI) ranking. The more frequently and recently a user has interacted with an element of information, the higher the DOI for that element for that task.
The DOI rankings for the information elements can be used within a task-focused interface in four ways. Elements below a certain DOI threshold can be filtered to reduce the number of elements presented. Elements can be ranked according to their DOI; for instance, the elements of highest interest can be shown at the top of a list. The elements can be decorated with colours to indicate ranges of DOI. Finally, the display of structured information elements can be automatically managed based on DOI; for instance, text corresponding to elements with low DOI can be automatically elided.
The DOI value for each information element interacted with as part of a task can be derived from a stored history of interaction events recorded as the user works with the application. This approach requires a user to indicate the start of a task. The collection of all interaction events that take place during a single task is called a "task context".
Task-focused interfaces have been demonstrated to be effective in reducing information overload and improving productivity.
The Eclipse Mylyn project and NBTaskFocus for NetBeans IDE is an implementation of the Task-Focused Interface. Mylyn filters, sorts, highlights, folds, and manages tree expansion for numerous views within the Eclipse IDE based on the currently active task. NBTaskFocus filters project panels and manages automatic task context for NetBeans IDE.