Your Time

I have always been curious about how I spend my time. It would be useful or at the very least cool, if I could figure out what I did with the 24 hours I get each day. Considering that this is overkill, it would be useful to find out how much time I spend on each task / client at work…

This is something that a lot of companies would find useful, especially in the professional sector. Lawyers, for example need to know this information for the purposes of billing. Time tracking has always been a personal bug bear of mine and is something that I often ramble on about.

In fact, in Chris’ Blog, the team management application he speaks about towards the end is something that I have been talking about and working on in the background for about a year now (actual effort is probably only around a week since I keep getting distracted with other things)

My aim has always (unconsciously) been to have an invisible interface, more because if there is effort involved, its going to take away from the task at hand and unless you are an obsessive compulsive (which I sometimes end up being), its going to be inaccurate. More importantly, its going to take up time to track and log time and ends up being a task of its own which requires management.

The most common way to log time is to just have log sheet which is filled in at the end of the day – just putting numbers against tasks and making sure it adds up to the number of hours you worked in the day.

Mylyn for Eclipse, which is a task/bug management plugin has a cool and useful concept of task contexts. This means that when you activate a tasks, it remembers the files you are working on, as well as which lines you were on and saves it as the task context. You can then de-activate the context or activate another task. When you go back to this task, it loads up the context. In other words, the files you had open, at the lines that you were at. This is a real boon and can save a lot of time once you get the hang of creating a task for everything you are working on and practice a little bit of self discipline in terms of activating and de-activating tasks.

Mylyn could use a little more intelligence in context management and creation on activating tasks with no context. But the concept of contexts is great and it should be possible to apply this at the operating system level.

For example, I am working on Task A. This involves a number of URL’s in firefox, a number of emails from Thunderbird, some files in Eclipse, some terminal windows, couple of Documents, and a spreadsheet.

Task B involves a url in firefox or two and a document.

and so on.

It should now be possible for me to simply tell my “Task Manager” that I am about to work on Task A and have all the applications load up in the locations that I last left them and hide away or close the other applications. When I want to switch to Task B, it should close everything else and open up the applications for Task B.

My desktop environment (GNOME), like most Linux desktop environments have the concept of workspaces. You can also get this as an addon for Windows. I have used these to emulate this kind of behaviour but this is far from perfect.

In theory however, this should make it possible for an application to track the time spent in each workspace. If the application is told what task is associated with each workspace, it could automatically log time against that.

The real power for task management would come from a powerful use of task hierarchy. Lets say we have the following task list

Client A => Project A => Subtask 1

Client A => Project A => Subtask 2

Client A => Project B => Subtask

Client B => Project A => Subtask

In this setup, the task management could be told (or even better figure out on its own) that there are application hierarchies… In other words, for all tasks related to Client A – the user will always need application X (with a particular configuration – say firefox on a particular url)

For Project A, there could be the requirement of another url in firefox.

This way, when a new Project or subtask is created, the system can automatically start a few steps ahead…

Client B could have completely different application setup / layout.

Automatic time tracking, task managment and planning then becomes so much easier.

For this to be viable, however, there are a lot of things that still needs to happen.

  • Context awareness for applications and ability to save a context
  • Ability in applications to merge contexts (for hierarchical contexts)
  • Efficient Application swapin/swapout when tasks switch for instant task switching
  • Applications needs to be more lightweight to make task switching quicker

Most, if not all modern applications provide extension points and it should be possible, at least in theory to add this functionality on to most applications. More importantly, it is theoretically possible to add this functionality on to all the open source software since the source is available. However, since it requires a fairly radical shift in thinking about application state, this is probably far more complex than it seems.

Once we have something like this working, it should be much more straightforward to add workflow using the task hierarchy to make it seamless including passing the contexts to the another person if necessary…

In any case, a few years into the future, who knows, these features might be built into all applications and perhaps we will be talking about task management, not application / process management.

  • By Wesley Coelho, 13 January, 2009 @ 03:13

    Shri,

    Great post. Did you know that the full-featured product version of Mylyn, called Tasktop, offers much of the functionality that you are describing?

    Tasktop will track your time by task and working set and then generate reports to show you exactly where you spent your time. With Tasktop, your time is tracked both in Eclipse and while using external applications. Furthermore, when you return to a task, Tasktop will open documents the external applications you were previously using (currently on Windows only).

    If you have a chance to try it out, it would be great to hear your thoughts. You can download Tasktop from http://tasktop.com

    Regards,

    Wesley Coelho
    Tasktop Technologies
    http://tasktop.com

Other Links to this Post

  1. words on sand » On top of Tasktop — 13 January, 2009 @ 13:43

  2. Tasktop Blog » Blog Archive » Community News, January 21, 2009 — 22 January, 2009 @ 06:31

WordPress Themes