Tasktop for Eclipse - Get More out of Mylyn
The Tasktop Plug-ins for Eclipse extend the capabilities of Eclipse Mylyn to other aspects of the developer's workweek. In this article we take a brief look at the core benefits of Mylyn and introduce the Tasktop extensions for streamlining time reporting, calendaring, email and more.
Without Myelin our thought process would be incapacitated. This amazing biological substance sheaths our neurons, dramatically increasing the speed of the signals that propagate throughout the brain. Simply put, we’d be lost without it, and as much has been said by developers who have adopted the software tool of similar name: Mylyn. In this article, we’ll briefly explain the key benefits of Eclipse Mylyn then introduce the features of Tasktop, the productivity extensions being built by Tasktop Technologies (the creators of Mylyn and its task-focused focused interface).
For this article and other publications on Tasktop, Mylyn and the task-focused interface see: http://tasktop.com/resources
Mylyn reduces cognitive overload (brain strain) and improves productivity in a number of ways, but two benefits combine to really catapult a developer to new levels of productivity. First is the elimination of extraneous information. Through the application of its degree-of-interest (DOI) model, Mylyn focuses views to show just essential program elements rather than everything about the system on which you are working. The benefits can be seen immediately when the Package Explorer is focused. A Package Explorer that would usually look like Figure 1, when focused with Mylyn, looks like Figure 2.
Now, which view would you prefer to work with? Exactly. This is probably the number one reason Mylyn has been adopted by hundreds of thousands of developers. Just ten minutes of playing around with the tool and watching one of the webcasts is usually sufficient to get the gist of Mylyn and start working productively (see the Mylyn 3.0 webcast at http://tasktop.com/videos/mylyn/).
The second key tool support added by Mylyn is the Task List. This isn’t just any ordinary Task List. With Mylyn’s Task List, you can organize your work into categories, schedule and prioritize tasks easily, and focus on just what you need to work on now. The Task List indicates the task being worked on, in order to enable the separation of your activity into a different context for each task. Each task’s context includes the degree-of-interest model that forms as a result of your interaction with code. The purple button [img_assist|nid=4269|title=|desc=|link=none|align=undefined|width=7|height=5] that precedes the name of each task in the Task List is how you work Mylyn’s magic. Pressing this button activates a task, and until deactivated, Mylyn monitors your interaction with the code forming a degree-of-interest model for the task and filtering the views appropriately. All code elements with which you interact become part of the active task’s context. Depending on the amount of interaction, the element will either stick around, or will eventually be filtered from view. Deactivating the task closes the current code elements and unfilters all views revealing everything, all of your projects and packages. Reactivating the task filters the views revealing only those few important program elements. Code edited recently is opened to where you were last working. Other important but not presently open files are just a double-click away in the Package Explorer, no digging required. This is a killer feature for those developers who work on more than one task a day and are occasionally interrupted to fix some higher priority bug. How much time and mental energy do you spend each day switching tasks? Each task switch requires you to relocate the appropriate files, determine which you were editing and where, completely breaking your flow (http://en.wikipedia.org/wiki/Flow_(psychology)). A mental shift must always take place when changing tasks, but with Mylyn the externalization of this intent is now a single click experience.
This is just a bit of how Mylyn helps developers stay in the flow - spending more time doing what they love, coding, rather than searching and scrolling though the code base. This is the mandate of the Mylyn open source project, but as developers, not everything we do in a workweek involves writing code. There are other important activities including authoring documents, reading online java doc and tutorials,g, time reporting, and email, lots and lots of email. Supporting these other realities of working life is the domain of Tasktop – the Task Focused Desktop.
Beyond the Source
Tasktop extends the reach of Mylyn’s task contexts beyond source code to the documents and web sites you work with. With Tasktop almost all of the information that you interact with while completing a task will be automatically captured as part of a task’s context. Switching tasks displays all related resources, translating into a lot less searching for documents and previously visited web sites and more time getting things done.
Folders linked into Tasktop’s Navigator are visible under the Folders node (Figure 3). Just like what happens with code elements in the Package Explorer, your office documents become part of the active task’s context when the document is opened or is interacted with. You can also opt to have Tasktop manage the editors for these external documents, closing the appropriate application windows upon task deactivation. This helps keep the number of concurrently open application windows down, reducing memory consumption and improving system performance.
When starting a new task, the files you need to work with, whether they are code, images, or other external documents, are not immediately part of the task. With Mylyn, bootstrapping the task context is usually done by either unfiltering the Package Explorer and locating the desired file, or temporarily unfiltering a portion of the source tree using the Alt+Click “trick” (http://wiki.eclipse.org/index.php/Mylyn_User_Guide#Alt.2BClick_navigation). The same can be done in the Tasktop Navigator, but additionally you can find files using the view’s find text field located within the view toolbar (Figure 4). Simply enter the file name or partial name (“*” = wildcard) and press enter. Results are instantaneous and clicking or opening the desired file will add it to the active task’s context. Clear the find filter and the view will return to the filtered state with the newly found file present in the task context.
Tip: Add Projects node can be added to the Tasktop Navigator view to contain all your development projects. Depress the focus button in the Navigator view and from the view menu select “Customize View…”. On the Content tab select Projects and the node will become available in your Tasktop Navigator view.
One of the more subtle yet immensely useful features of the Tasktop Navigator is its active monitoring of the linked document folders. For example, if you have chosen to link your Desktop folder into the Navigator, when you browse to a site and download a file, the Desktop node will appear in the Tasktop Navigator with the file below it. So instead of having to track down the file (often amongst many other files on the Desktop), it is singled out and presented to you in the Tasktop Navigator. If you downloaded a Java file, you can then drag it from under the Desktop node in the Navigator into a project with a single gesture. Additionally, from within the Tasktop Navigator, you can locate files or folders in the system’s native file explorer by right clicking on the file and selecting “Locate on Disk”. This is really useful when the extra power afforded by the explorer shell is required (i.e. to view thumbnail images of all files in the folder).
Tasktop can also manage web pages you visit in addition to your code and office documents. Tracking the web sites visited requires browsing using Tasktop’s integrated web browser (Firefox integration has been in high demand by users, and is on the horizon). As you navigate to different web sites, the URLs are stored with the active task’s context, and presented in the Tasktop Navigator under the Web node decorated with their associated favicons (Figure 5).
Anchors on web sites get presented as sub nodes in the Navigator easing navigation when revisiting specific sections of lengthy sites (Figure 6). Note that web sites are not recorded when no task is active. Double clicking a link in the Navigator will open it in the integrated Tasktop Browser. Deactivate the task and the web pages are cleared from view, only to be restored to where you last were upon re-activating the task, meaning you can get to work instantly.
Tip: If you are a developer on Linux, and don’t want to use the internal browser, you can set a preference indicating to always open web pages in your system’s default browser (See Window > Preferences > General > Web Browser).
Eventually you will discover there is little reason to create bookmarks since most of the time the pages you need are either restored upon task activation or a click away via the Tasktop Navigator. However, for frequently accessed web apps, Tasktop offers a ‘starred’ list of favourite accessible via either the Navigator or trim (Figure 7). A more traditional hierarchical bookmarking facility is also included along with del.icio.us (http://del.icio.us/) integration. Tasktop also has you covered if you have already invested a lot of time into categorizing your bookmarks, making it easy to access existing Firefox and IE bookmarks (Figure 8).
In addition to the usual features you expect from a modern browser, such as password management, the Tasktop browser includes a number of other features you are sure to appreciate including:
• Default browser support, allowing you to click on bug URLs in an email and having it open in a rich editor within your Eclipse
• Search trim – similar to the search box in Firefox but with the ability to search over integrated web applications, such as wikis and Google Docs
• Secondary browser windows, with the ability to browser focused or unfocused, and drag pages between windows (especially useful if using two monitors and keeping code on the primary one)
With all of your web sites, documents and source code linked to tasks, multitasking becomes an effortless, single-click experience. No more hunting around for the appropriate resources each time a colleague or manager asks you to do something else. Tasktop places all of the documents you need at your fingertips, meaning that you spend less time getting back up to speed and more time producing code.
The one important resource that we have yet to account for is time. Out of the box Mylyn only records the time spent in the Eclipse IDE itself, completely ignoring the time spent working in external documents. Conveniently, just as Tasktop brings external documents to task, so is the time spent editing them held accountable.
Where did the Time Go?
If work takes place but the time isn’t recorded and reported, did it really happen? Of course it did, but without a record of time spent on work activities and tool support to summarize this information, reporting your hours for timesheets and billing purposes is incredibly tedious. Tasktop extends Mylyn’s rudimentary timing facilities to make time tracking more accurate and reporting easily managed.
If you are a Mylyn user, you may already know that Mylyn tracks the time spent on each task (while active). The total time spent (active time) on a task can be viewed on the task editor’s g page. The active time recorded here is derived from all time spent with the task active and the Eclipse workbench window in the foreground. Step out of the workbench and the time is no longer accumulating. This means that time spent emailing, researching, and authoring documents outside of Eclipse is not recorded. The active time that is recorded by Mylyn gives a lower bound on the time spent and is sufficient when just getting started with Mylyn, but the limitations soon become evident once work takes place outside of the workbench.
To address this shortcoming, Tasktop hooks into the operating system (Windows/OSX) to augment the workbench timing provided by Mylyn with the time spent in applications outside of Eclipse. Now, when researching on the web or authoring documents, time is being recorded for you enabling easy and accurate time reporting.
In previous Tasktop releases, in depth reporting of task activity hadn’t been addressed. Nor is it available in Mylyn since,g and tracking tools are beyond the scope of the open source project. But since Tasktop’s first release in February of this year, Time Reporting has been one of the top voted for and discussed feature enhancements. So it should come as no surprise that Time Reporting is front and center in this summer’s Tasktop release. Use the Time Reporting editor to review the time spent on tasks today, this week, this month, or within a date range of your choosing. You are presented with a graphical overview of the selected date range with graphs of task time by day, category, and working set (Figure 9). If you only wish to report time for a specific category in the Task List or a specific Working Set, Tasktop’s Time Reports can be scoped accordingly. For those times when you know work took place on a task but you forgot to activate, simply add the task to the report and specify the time that was spent or make adjustments to an existing task time. Add generic time entries to account for meetings and add sub entries under a task for more detailed breakdown of time spent on a particular task (Figure 10). After the appropriate adjustments have been made, the report can be saved for future revision or export. Reports can be exported to CSV for import into your employer’s timing system or exported to HTML and printed off on your way to a stand up meeting.
Tip: Getting back to a task worked on in the past, be it today, yesterday or two months ago can be tricky in Mylyn. If you’re running Tasktop, simply use the Tasktop Dashboard to track down tasks you’ve worked on previously. Once located, double click to open the task.
In addition to reporting time, Tasktop also includes tool support forg your workweek and for helping you maintaining awareness of your schedule and significant events as they happen throughout the workweek.
g and Awareness
When it comes time to coordinate the tasks that need to get done in the week, Mylyn users will often use the Scheduled Task List presentation. Here, through a combination of drag-and-drop and the Schedule for action from the popup menu, you can lay out the plan for the workweek (Figure 11). Although this presentation is a great, condensed view of the work scheduled for the week it can’t compare with the tried and true calendar format we are more used to. Tasktop adds support for viewing and manipulating your task schedule through your favourite calendaring applications (as of writing tasks can be synchronized to Outlook and Google Calendars).
Tasktop will synchronize tasks to calendars based on either their due date or scheduled date. The scheduled date can be thought of as the time you intend to begin working on the task. The due date should be thought of as an all day event and acts as the hard deadline for the task. No matter which you chose as your calendar synchronization policy, the appropriate tasks will appear as events in your calendar upon synchronization (Figure 12).
To change the date on the task from the calendar, simply drag and drop the task to the preferred time. Upon re-synchronization, the task will be updated in the task list.
There are times when we need to be made aware of events that are taking place such as meetings we planned on attending. To unobtrusively help maintain casual awareness of these sorts of events, Tasktop contributes a small trim widget to the bottom right of the workbench (Figure 13) that includes the date and the name of the event either currently in progress (highlighted in green) or about to start (highlighted in blue).
The events are gathered from your personal Outlook calendar or set of shared Google calendars. Clicking the trim’s date and task name hyperlink in will reveal the events scheduled (or due) over the next few days (Figure 14).
Clicking on events will open them for viewing or editing. Clicking on tasks will result in them opening in the rich editor within Eclipse. Clicking the “Show All” link in the bottom left corner of the popup will open the agenda in a full editor window for easy review. These and other features of the Tasktop calendaring tools help developers plan their workweek and maintain awareness of team activity without leaving the comfort of their Eclipse IDE.
Email is Work
The role of a software developer often involves a great deal of team and customer correspondence, requiring significant time investment. How much email did you receive this week? How many of those email warranted a detailed response that required over 5 minutes of your time? Many of your responses were sure to require browsing through code, web, and documents in order to respond. Of these, how many of those documents can you recall in an instant? Just as you can easily track the time and program elements associated with a programming task using Mylyn, Tasktop will allow you to track the time, web sites and files associated with email.
With Tasktop, the developer is able to create Email Tasks in their Mylyn Task List from their favourite email client (Figure 15). At time of writing, Tasktop integrates with Outlook, Gmail and IMAP, and if you don’t use either you can vote (http://tasktop.com/support/survey/integrations.php) for your client of choice. So now, when reviewing your inbox, if it can’t be dealt with immediately, simply move it to your Task List for prioritization and scheduling. This helps with inbox tracking and keeps things running on a priority based schedule rather than being derailed by email interruption.
Email Tasks are first class citizens of the Task List with a rich editor and all of the time and resource tracking facilities previously mentioned. You can activate Email Tasks just as you do all other tasks in the task list, building up a context for the work you do as part of your email correspondence. The Outlook Email Task editor (Figure 16) displays the pertinent fields of the email with fields for taking notes and authoring a response.
The Gmail integration (Figure 17) is similar and has the added benefit of threaded messages (Outlook threading is in the works). When subsequent emails are received on the same thread, they are accumulated under the original Email Task in Tasktop so that all of the information is in one place under one task.
Tasktop integrates with but does not replace your existing email client. Both the Outlook and Gmail Email Task editor toolbars have buttons for reopening the original email and in the case of Outlook, the option to reply and forward the message all using your native email client.
With Tasktop’s Email Task integration, the time and resources involved with each piece of correspondence is accounted for and can be instantly recalled. Your email can now be folded into your Task List and your schedule managed on your terms rather than dictated by your inbox.
Get Started Quickly
So you’re convinced Mylyn and Tasktop are just what you need, but what is involved in getting things up and running quickly? From here you have three options:
a) Want to dive right in? Download a free trial of Tasktop Pro from http://tasktop.com/support/download (registration required). This is recommended for those who would like to explore the full suite of enhancements which includes complete Time Tracking and Reporting and much more. For more details on Tasktop Pro for Eclipse see http://tasktop.com/tasktop-for-eclipse/.
b) Would like to dive right in but don’t use Eclipse? Tasktop Pro is available as a standalone application which you can use in parallel with your other IDE or simply for managing your personal day to day activities. Visit https://tasktop.com/tasktop-for-windows/ for more details.
c) Just want to get your feet wet? Try out Tasktop Starter (free) which includes a subset of the Tasktop Pro features including a basic Time Reporting dashboard (no reporting), Gmail, IMAP, and streamlined Partner Connector installs (discussed below). Tasktop Starter, is recommended for those who would like to try out a few Tasktop features while ensuring they have the latest version of Mylyn. You can get Tasktop Starter and Mylyn from one of the following update sites:
• Eclipse 3.4 (Mylyn 3.0): http://tasktop.com/update/starter/e3.4
• Eclipse 3.3 (Mylyn 3.0): http://tasktop.com/update/starter/e3.3
For a matrix of which features are included in each of the Tasktop products, please see http://tasktop.com/support/download.
Once you have Tasktop installed (be it Starter or Pro), you will want to get connected to the task repository (bug/issue tracker) used by your development team. Tasktop comes with Bugzilla integration and includes a Partner Connectors page that makes installation of other leading task repositories dead simple. Open the Tasktop Home ( ) then select the Partner Connectors tab. From this page (Figure 18) you can easily install popular task repository connectors including: Jira, CollabNet, and Rally. Simply press the “install” link for the connector of your choice and it will be installed and ready for use after restart.
If your connector of choice isn’t offered here, see the Tasktop FAQ (http://tasktop.com/support/faq) for instructions detailing installation of other connectors including Trac and XPlanner.
The increasingly high volume of information and interruption that we have to deal with is pushing our limits of concentration. Mylyn gives developers a leg up providing tool support for tracking the code elements visited and time spent on a task, making multitasking a lot easier. Tasktop, building on Eclipse Mylyn, extends the task-focused paradigm beyond the IDE and source code to other aspects of work.
With the Summer release, Tasktop Starter is freely available and an excellent way for keeping Mylyn up to date while exploring a few benefits of the Tasktop extensions. If you’re a long time Mylyn user, Tasktop Pro is the next step to improving your productivity, extending task context to web and documents and integrating with your other email and calendaring tools.
We at Tasktop Technologies are always interested in hearing what you think of our products. Drop us a line (mailto:email@example.com) once you’ve had a chance to try out the Tasktop Summer release!
For this article and other publications on Tasktop, Mylyn and the task-focused interface see: http://tasktop.com/resources