This post is actually the initiator of another, which was already published earlier. I was really surprised that about such an interesting thing as Mylyn, so little is written on Habré and I would like to fix it a little. Under the translation, the translation is quite an interesting article, in my opinion. I hope for an interesting discussion.
Modern development environments have given a lot of tools for accelerated work, when a lot of actions can be done with just a finger. The integration of editors and compilers for a wide variety of languages, tools for working with databases, development tools specific to a particular framework, as well as many others are already familiar to us and are based on smaller but key things. But often at the time of integration, they forget about the key part, about the end user - the developer.
The various development tools created to date, on the one hand, are working reliably, and on the other, not properly built into the interface, help the developer to be more productive. However, with the increasing complexity of integrated development tools, only the presence of such small tools help to navigate the capabilities of these systems. In this regard, modern developers need an environment that will allow focusing only on those artifacts that are of interest to the user, and, in addition, will display only the functionality of the system that is really important to the user. And here comes Eclipse and a plugin called Mylar, later renamed Mylyn. Mylyn changes the principle of software development as follows. Instead of installing a ton of tools to work with artifacts arising from the development process, and using ex-post, Mylyn helps to process these artifacts at the time of creation.
So, having fixed this key idea in the head, let us move on to a more detailed description of the possibilities of Mylyn.
Number of timesMylyn allows you to concentrate on your tasks.')
To feel the full power of Mylyn, you need to process all your activities (both related to development and non-core) into tasks. Each task contains a small part of the whole work, which will have the final result. Of course, at first there will be problems with the wording of the tasks (“To write an application” is clearly not the best option, since it is not clear what the next action should be), but over time, experience will come and the tasks will become clearer (“Change the shape of a button from square to circle "). Such self-development is connected with the fact that it becomes easier for you to perform and plan tasks that are formulated more competently (in principle, a person unconsciously seeks for such planning activities). It is clear that all tasks will be formulated differently, but it is precisely the most clearly formulated tasks that show how effective Mylyn is.
Another advantage of the tasks - they show the condition of the work. You can always see what has been done and what is left. The ability to filter tasks by type will help determine the same, but for a particular direction. While priority filtering shows how many key tasks have been done. (Fig. 1)
Number two.Mylyn shows only what you needWhile you are in your workspace, Mylyn records all of your actions, such as editing files, classes, specific methods, and so on. Thus, every time you touch upon an artifact during the work (by opening the file, editing the type, and so on), Mylyn will mark this activity, which will allow him to organize a collection of all that you need and need. And in the future you will only see what concerns the sphere of your interests. In the process of increasing the number of artifacts that fall into this area, their mapping will change, for example, those classes and methods with which you work most often will be highlighted in bold.
Figure 2 shows the new task, after opening a particular class. It is important to note that in the hierarchical list (Package Explorer) only the class that is mentioned in the task is shown. In addition, the list of methods (outline view) is empty, in fact, because none of the methods of the open class have been affected yet.

The third figure shows the same workspace after small changes made to the class. The drawImage () method is now visible in both the hierarchical list and the list of available methods. As other methods are changed, they will also be in scope.

There is also a backlash. As soon as you become less interested in the artifact, its selection becomes dull (from fat to normal, from normal to gray), and gradually the artifact disappears from its scope. This mechanism is based on the following point of view: if you make a change to an artifact, you will definitely return to it at least once more. In the future, completing the task, you may again return to the same artifacts that you worked on most actively. The reverse is also true: the less often you turn to an artifact, the less will be the need for it in the future.
This mode can easily be disabled by simply clicking on the "Focus on Active Task" button. This is done so that you can find the artifact hidden by Mylyn, make it active and return to the previous mode of operation. However, Java developers use this less frequently, due to the reasons inherent in the Eclipse Java Development Tools (JDT), which allow you to easily view related relationships. It is also possible to postpone the current task in order to work on other artifacts, or, for example, another task, and return to the first one.
Number three.Mylyn remembers what you did last summer — a translation.) What you did while you switched between tasks .
In the following two pictures you can see how the workspace looks while working on Eclipse bugs: 138600 and 164658. The difference is visible to the naked eye. Thus, we come to another important feature of Mylyn: the preservation of a specific working context for a specific task.


Thus, switching between tasks, you will see only those artifacts that relate only to this task. It is important that only one task can have active status, but no one bothers to switch between tasks. The task can be done in an active mass of ways: through the drop-down menu in the task editor, by working with the record in the “Navigate” menu or by clicking on the first column of the line where this task is described. To make it all very simple, you can switch between tasks using the drop-down menu that appears when you click on the title of the “Task List” tab, as shown in Figure 6.

The name of the current active task can be seen at the top of the “Task List” tab, as well as highlighted in bold in the general task list.
By managing the context for each task, Mylyn allows the developer to focus all his attention on a well-formulated task and spend as little time as possible to switch between these tasks. In other words: as soon as you switch to another task, you see the material you need to work with. And no extra time costs.
Number fourMylyn can hook up to control systemsOn the Mylyn website, among other things, you can find plugins for integration with
Bugzilla ,
JIRA , and
Trac . In addition, there are opportunities to integrate Mylyn with
XPlanner and other similar services. This functionality allows you to manage tasks outside development environments, as well as see them to other developers.
For example in Figure 7 you can see a list of tasks obtained from various systems. For example, the “Open Harmony Bugs” item allows you to connect to JIRA used by the
Apache Harmony team. Other menu items get let you see the tasks received from
Eclipse Bugzilla .

Adding tasks to your list comes down to sending a request to the server. It returns your tasks, after which you can start working on them. There is also support for offline operation; all changes made in it will be sent to the server after the next synchronization. Creating operation requests is more than simple and is easily done using dialogs, as shown in Figure 8 for example.

Tasks received from the repository are regularly updated automatically. Those tasks that have been changed are marked in the general list, which immediately makes them noticeable. Mylyn allows you to add additional information to tasks, including information relating to time (for example, when you start working on a task), how long you will work on it, and how much it is completed. You can also set the duration of work on the task.
There is also the possibility of attaching the working context (see Figure 9), which allows you to archive the working context of the task and send it as additional information to the server. The context contains information about all the artifacts that you have worked with. Besides the fact that everyone can see the area of ​​your work, they can also expand their working context with your artifacts. In the following, you can work together on the same context.

Creating additional connectors for task repositories is possible thanks to the open API. As for connectors to other task sources, including web services, databases, and corporate task management programs, creating them is also possible, which makes Mylyn a single tool for working on tasks.
Number fiveMylyn has a thoughtful look and feelMylyn is very well integrated into the Eclipse interface. The developers of Mylyn followed the rule “Better less and better” and, as a result, got an intuitive and powerful enough design that is not overloaded. Mylyn can be found everywhere, but he never cries out about his presence. Most tabs (including Navigator, Package Explorer and Outline) contain functionality from Mylyn, but their working principle remains the same, Therefore, it takes very little time to get used to Mylyn. At the same time, innovations have appeared (such as the temporary disclosure of hidden artifacts with the Alt button), but this serves more for convenience. Continuing this strategy, the menu items related to Mylyn were simply added to the list of already existing ones, but they didn’t add anything new.
Mylyn looks good and works predictably. For example, the unobtrusive blinking of a pop-up window in the lower right part of the screen notifies you of changes made on the server above the task.
Thus, Mylyn is an elegant, yet powerful tool for the user to understand.
ConclusionFor any proposed task, Mylyn provides exactly those artifacts that will almost certainly be needed in the future. Mylyn surely pushes the prevailing ideas about integrated development environments: instead of selecting tools to solve a problem, problems should be distributed among the available tools. Perhaps this is not entirely obvious, but nonetheless it is so important. Mylyn integrates with other essential tools and makes development more efficient and productive than the environment originally allows.
In order to realize the potential of Mylyn, you need to learn how to correctly formulate your tasks. If the task is too wide, Mylyn will not be as effective (mainly because the number of artifacts viewed will be too large, and we come to what we started with).
UPD. Transferred to the Eclipse blog.