Mylar is an Eclipse project that aims to integrate task management and bug tracking within an IDE environment. Mylar project lead Mik Kersten's IBM developerWorks article discusses the concept of task-focused programming, and how Mylar implements those concepts for the Eclipse IDE.
Development almost always centers around implementing tasks, fixing bugs, or refactoring existing code, and those tasks are often specified outside the IDE, in project management or issue tracking system. While many issue trackers integrate with source code control systems, there is also an advantage in making an IDE more integrated with issue tracking, says a new IBM developerWorks article by Mik Kersten, lead of the Mylar project. Mylar is an open-source task-oriented Eclipse plug-in that integrates with Bugzilla, Trac, and JIRA, and can also track issues within the IDE's workspace.
The article, Task-Focused Programming with Mylar (Part I and Part II) starts out by defining the benefits of IDE integration with a task manager:
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 note to yourself about improving a feature. You can store tasks locally in your workspace, or they can come from one or more task repositories... A task repository is a bug/ticket/issue tracker such as Bugzilla, Trac, or JIRA...
Task management integrates your bug/task/issue tracker into [the IDE] and provides advanced task editing and scheduling facilities. Context management monitors your interactions with [the IDE], automatically identifies information relevant to your task-at-hand, and focuses [IDE] views and editors to show only the relevant information. When combined, these facilities drastically reduce information overload and significantly enhance developer productivity.
In addition to displaying items from the issue tracker, and allowing editing of issue-related information, Mylar identifies artifacts related to an issue and customizes the IDE's view of a project around issue-related artifacts:
Mylar monitors your work activity on ... tasks to identify information relevant to the task-at-hand. From this, Mylar creates a task context, which is the set of all artifacts related to your task. These can include methods you have edited, APIs you have referred to, and documents you have browsed.
Mylar uses this task context to focus the Eclipse UI on interesting information, hide what's uninteresting, and automatically find what's related. Having the information you need to get your work done at your fingertips improves your productivity by reducing the time you spend searching, scrolling, and navigating. By making task context explicit, Mylar also facilitates multitasking, planning, reusing past efforts, and sharing expertise.
The rest of the two-part article provides a tutorial on integrating Mylar with Bugzilla, and on using Mylar to work on issues entered in the issue tracker.
The question of integrating requirements and use-cases come up in Artima discussions from time to time. Integrating issue tracking adds another dimension to this debate. What tools and techniques have worked for you in minimizing the context switch between the human-language description of problems in an issue tracker, on one hand, and source code and other artifacts related to an issue, on the other? Is an issue tracker's integration with the source code repository sufficient, or could you benefit from better integration between an IDE and the issue tracker? What do you think of Mylar's approach to that integration?