While software systems, frameworks, and tools can evolve indefinitely, the ability of developers to actually process information has an upper limit. Most integrated development environments (IDES) try to use structured views, editors, and advanced search capabilities to address this limitation. While these mechanisms can make navigating large systems easier, they are often not enough to help you manage the vast amount of information that you must handle to accomplish typical programming tasks. As a result, structured views are becoming overloaded--for example, even when navigating a small enterprise application, Eclipse Package Explorer often displays thousands of of source files--you waste a lot of time scrolling, navigating, and tracking this information.
Interestingly, in most cases, you do not need to look at the entire hierarchy of the system or each reference to a particular method to complete the programming task. For example, you are interested in just one part of the system for any bugs that you want to fix or any features you want to add. Mylyn is an interactive technology that highlights the system content that you are interested in by adding the two features of integrated task management and automatic context management to Eclipse. Task management integrates the Task/bug/defect/ticket/story/issue tracker into Eclipse and provides advanced task editing and task scheduling capabilities. Context management monitors your interactions with Eclipse, automatically identifies information relevant to the current task, and focuses on structured views and editors to display only relevant information. Together, these two features form the Mylyn task-focused (task-centric) UI, making multitasking easier and dramatically reducing information overload. (For actual research results, see the links in the Resources section for the "Using Task context to improve programmer productivity".) )
This two-part article is a Mylyn use guide. Some of the contents of this article, especially those concerned with programming rather than task management, assume that you are familiar with the Eclipse IDE. The 1th part is an introduction to Mylyn and describes its function in task management. The 2nd section describes the context management capabilities of Mylyn and discusses the impact of its task-focused UI on programming and development methods. For convenience, both parts will be published at the same time.
Part 1th does not apply to programming activities, and it applies to the use of Mylyn in any Eclipse release or in an integrated Mylyn stand-alone application. The 2nd part focuses on Java™ programming, but also discusses some of the features that apply to all Eclipse based tools. In the example of this article, I use Bugzilla as a task repository, but the concepts and UI are also applicable to other task trackers supported by Mylyn. Even if you intend to use Mylyn through different connectors, it is recommended that you look at the steps to use the Bugzilla Connector to familiarize yourself with the key features.
Mylyn Introduction
Mylyn extends the Eclipse SDK through complex mechanisms such as task tracking (see supported versions from the Resources section). A task is any unit of work that you want to recall or share with others, such as a bug reported by a user, or a description of a feature improvement. Mylyn enables you to store tasks locally in the workspace, or to work with tasks in one or more task repositories. (the task repository refers to issue trackers such as Bugzilla, Trac, or JIRA). To connect to a specific task repository, you must also install the Mylyn Connector for that repository.
After the integration task, Mylyn monitors the activities on these tasks to identify information related to the current task. At this point, Mylyn creates a task context-a collection of all artifacts associated with the task. This can include browsed documents, edited methods, and referenced APIs. Mylyn uses task contexts to focus the UI on information that is of interest, to hide information that is not of interest, and to automatically discover related information. With the information you need to complete a task, you can increase your productivity by reducing the time it takes to perform search, navigation, and scrolling operations. By highlighting the task context, Mylyn also helps with multitasking, planning, reusing past work, and sharing expert experience.
After using Mylyn for a period of time, there are subtle but important changes in how you work. Once you get used to the task-centric approach, you're likely to find that productivity has improved dramatically. It's easy to get your work organized, manage dozens of collaborative tasks and track processes.
The numbering area in Figure 1 shows some of the task management and context management features of Mylyn:
Tasks list with active tasks (Task list) and planned Bugzilla report for the day
Set of changes managed by the task context
Rich task Editor with offline support