Developers working on a large code base must keep in mind an
expansive context: Source code files, configuration data, test cases,
build files, and so on. A vast context could become a hinderance when
the goal is to accomplish a quick, focused task, such as fixing a bug
that requires access to at most a handful of code artifacts.
Frank Sommers: Many developers are familiar with
Mylyn, but few know about TaskTop. What does TaskTop add to Mylyn?
Mik Kersten: TaskTop is basically a handful of extra
features on top of Mylyn: time tracking, cross-repository federation,
and commercial connectors.
One thing many developers do on Fridays is to try to figure out what
they did all week: Sort out the hours worked on various tasks and report
those hours to their managers. We all know how annoying that is. The
benefit of that reporting, of course, is that management will have the
actuals—that data will tell you what took too long, and you can
use that information to improve planning for your next release. While
the data is useful, tracking and reporting on actual hours worked is a
pain for most developers.
You can close the loop between planning and actual time tracking with
TaskTop. And you can do that in a way that's friendly to developers, and
that gives developers control, instead of taking a big-brother
approach.
In TaskTop 1.6, we have to-the-minute time tracking and time
submission on all the operating systems Mylyn supports. Mylyn, by
itself, supports time tracking because it knows whether you're active in
Eclipse. Because TaskTop provides browser integration, as well as
integration with the operating system and Microsoft Office, TaskTop
tracks the interaction with the OS as well to build up your [tasks']
context. Time tracking works similarly to your instant messenger or
Skype statuses: If you're inactive on the computer, it turns time
tracking off; if you're active, it turns time tracking on.
That doesn't mean that TaskTop imposes some sort of a Big
Brother-approach to time tracking: Our philosophy has always been to
place the control in developers' hands. Everything is turned off by
default. You opt-in by turning [the time-tracking features] on. That's
actually a change we made in Mylyn as well.
Because of the OS integration, time-tracking is very comprehensive.
And you can also add extra time, if you spent time on a task away from
the computer—looking at a white board, for instance.
The result is that you have full information on everything you've
done over the lifecycle of every task. You can bring up a report for
everything you've done in a time period, and you can submit that
[report] to a repository that handles time tracking. Everything is
stored per task. You have to submit [your time reports] manually
because, as a principle, we don't ever do anything in the background.
Frank Sommers: What kind of time tracking
repositories do you support?
Mik Kersten: TaskTop integrates with many issue
tracking and collaboration systems that support time tracking. Bugzilla
and Trac both support time tracking, for instance. You can also save
your time tracking data to a CSV file, and import that to your time
tracker.
One thing to remember is that you can submit your time tracking data
more often than you'd do without that automation. I used to submit my
time data once a week or even less often, but now I can submit that as
often as I want to.
Frank Sommers: You also mentioned cross-repository
linking as a new feature in TaskTop. How does that work?
Mik Kersten: Say you just picked up Rally as your
software project tracking tool. But you also have ClearQuest as your old
tool, and may also have customized copy of Bugzilla. You can put links
between any two TaskTop-certified repositories. You can say that, This
user story in ThoughtWorks depends on these four defects in Bugzilla, and
on this one defect in Apache Tomcat, if you're building on Tomcat, for
instance. And you can get notified inside Rally—or another agile
tool you use—when those defects are resolved. We federate those
task repositories.
Another common task developers face is having to create user stories
from email threads. Say, you discuss some issue with a product owner,
and that issue emerges into some sort of a user story. TaskTop adds the
commercial integration—GMail, Outlook, Exchange—and you can
just tag an Outlook email or label, or a GMail thread, as a task, and
TaskTop will always incorporate that thread as user story.