Task-focused interface

From Wikipedia, the free encyclopedia

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,[1] a focusing mechanism to filter or highlight the relevant documents. The task-focused interface has been validated with statistically significant[2] 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.


The task-focused interface was invented by Mik Kersten during his PhD at the University of British Columbia in 2004.[3] 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[4] interface metaphor and the "Edit & Read Wear"[5] 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.[6] 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.[7] 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,[8] and the Tasktop Pro tool for project managers. By 2009, most agile software development and application lifecycle management tools provided integration with Mylyn.[9] In 2011 NBTaskFocus[10][11] got introduced which provided Mylyn like task-focused features in NetBeans IDE.


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.[12]

The Eclipse Mylyn project and NBTaskFocus [10] 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 [11] filters project panels and manages automatic task context for NetBeans IDE.


  1. ^ Leung, Y. K.; Apperley, M. D. (1994). "A review and taxonomy of distortion-oriented presentation techniques". ACM Transactions on Computer-Human Interaction. 1 (2): 126–160. doi:10.1145/180171.180173. S2CID 288680. Retrieved 11 Sep 2009.
  2. ^ Kersten, Mik; Murphy, Gail C. (2007). "Using task context to improve programmer productivity". Proceedings of the 14th ACM SIGSOFT International Foundations of Software Engineering Conference. doi:10.1145/1181775.1181777.
  3. ^ "Mik Kersten Thesis" (PDF). 2008. Retrieved 11 Sep 2009.
  4. ^ Card, Stuart (2005-01-10). Attention-reactive interfaces for sensemaking. Proceedings of the 10th international conference on Intelligent user interfaces (2005). doi:10.1145/1040830.1040831. Retrieved 2023-03-02.
  5. ^ Hill, William C.; Hollan, James D.; Wroblewski, Dave; McCandless, Tim (1992-06-01). "Edit wear and read wear". Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. SIGCHI Conference on Human Factors in Computing Systems. Monterey, California: ACM Press. doi:10.1145/142750.142751. Retrieved 2023-03-02.
  6. ^ "Eclipse Mylyn Project". 2009. Retrieved 11 Sep 2009.
  7. ^ "Using a Degree-of-Interest Model for Adaptive Visualizations in Protégé" (PDF). 2006. Retrieved 11 Sep 2009.
  8. ^ "Netbeans Cubeon". 2009. Retrieved 11 Sep 2009.
  9. ^ "Eclipse Mylyn Extensions". 2009. Retrieved 11 Sep 2009.
  10. ^ a b "NBTaskFocus Project". 2011. Retrieved 21 Oct 2011.
  11. ^ a b "NBTaskFocus Tutorial". 2011. Retrieved 25 Oct 2011.
  12. ^ "Using Task Context to Improve Programmer Productivity" (PDF). cmapspublic.ihmc.us. {{cite web}}: |first= missing |last= (help)CS1 maint: url-status (link)

External links[edit]