Although TimeTracker was a relatively small coding exercise, it was quite
enjoyable and refreshing in itself. For those who don't have the context of this blog, this is the
last of a series of blogs on my journey to capture time :). You can read the earlier posts by following
the links below.
Ok, now coming back to this blog. TimeTracker turned out to be a sweet struggle between two
conflicting objectives, 'intrusiveness' and 'ease of use'. The tool had to be intrusive to
gather information from the user, but not so frustratingly intrusive as to drive the user off.
Making the tool intrusive was not too difficult. A modal popup window, which stubbornly refused
to go to the background was the logical choice. The difficult part was to make
the beast likable.
The easiest way to tackle this problem of usability was to introspect on what makes the modal
window an ugly beast. The solution was to try and negate the concerns.
- Concern : Volume of data entry. One of the major pain points in the traditional
time tracking applications is the volume of data the user is required to enter in a
session. I have taken some statistical measurements and have seen that it takes between
15 to 20 mouse clicks and atleast 40 key strokes for a typical time entry session.
- Remedy : The input requirements for the tool are quite simple, all is requires as
primary inputs are the task name, the start time and the end time. The start time of the
the next task is the end time of the current task. Essentially, two inputs. There
are three primary use cases for the application, Enter a new task name,
Continue the current task, Switch to a new task. Of these three, the most commonly
executed use case is continuing on the current task, followed by switching to a new
task and the least used is entering a new task. Continuing on the current task can
be indicated by a single mouse click, without and mouse movements. Switching to
another task can be accomplished by a double click. And hence, in the best case
scenario, it would take the user a single mouse click or keyboard entry (Enter or Space)
without any mouse movements.
- Concern : Distraction. When the window pops up, the attention and focus of the
user is broken. For one, the user has to readjust his field of vision. Secondly, the
user has to transfer input focus to the time dialog, in most cases moving the mouse
half the screen across.
- Remedy :
After a lot of usability testing, I realized that a 15 minutes
auto popup interval, which translates to 4 popups an hour is the least intrusive.
Also, if the size of the popup window is made to fit the entire screen, the current
field of vision is not broken. In terms of shifting the input focus, I have done
some analysis and have realised that 85 to 90% of the time, the user's input focus
is concentrated on area (A) as shown in the figure to the right. The three primary
use cases described above (Continuing on current task, Switching to another task
and Entering a new task) can be arranged as per the hot screen areas as shown in
the picture.
Since, continuing on the current task is the most commonly executed use case, the
area (A) can be converted into a single button, which can receive the user's input
without needing for the user to shift his input focus or changing his field of vision.
Area C can be devoted for the second use case, from where the user can double click
and choose another task from a list of tasks. Area D can be used for the third use
case of entering a new task name, which is very infrequently used once all the
tasks are loaded.
- Concern : Motivation. Time tracking tools are not motivating, primarily because
they provide no means of feedback. They are just one way tools for extracting data.
- Remedy :After implementing the first two remedies, I realized that the
tool lacked the zzing, it was too dry. To spice things up, I added some real time
graphs on the button in area A. The gantt chart was very interesting to look at.
Also, I used the screen area B to show the current task and made it dynamic by
updating the time. The feedback thing was quite addictive. Soon, I started missing
any kind of feedback when the tool was invisible and I added a tiny window which
I call 'Cute Window' on the top part of the screen - the cute window is dynamically
updated every second with the time spend on the current task and also serves the
purpose of summoning the tracker window by double clicking on it. The summoning
is required in case the user wants to switch tasks when the tool is in a hidden state.

Report generation was an offline feature added to the tool, which could help the user
generate time reports for a period of time in a paged HTML format. The reporter application
can be invoked by a script and presents the user with a form as shown below:
A sample report looks like the image specified below. The table contains links to day based
reports which give a task break down and provide graphical analysis in terms of
bar graphs, pie graphs and gantt charts.
You can find the detailed software description, usage instructions, downloadables etc in the
software section. I would love to hear your views
on this.
|
|