LiquidPlanner task timers, a 1-click obsession
Task Timers were released a couple of weeks ago (the reward for getting rid of the old Auto-Track feature) and I want to share some of the thinking behind the design.
This was an interesting challenge mainly because of the “1-click” expectations we all have around timers.
The time trackers of this world want just 1-click to start, stop, re-start, switch, use, or find the target task; I don’t blame them because time is money. One customer told us that timer use improved their client billing efforts by 15%. Specifically, they were able to bill their clients for 15% more time; these were hours that they had been previously eating.
In short, everyone wants timers to be fast, easy, and always right.
Edit Task Details:
The first thing we had to do was create a recognizable, consistent, and small timer control UI that we could use in all the places where LP users interact with their tasks.
We tried lots of different ideas, but in the end settled on a play button and a standard time display (ie.HH:MM) because pixel per pixel, it communicates the best.
The detail edit pane passes the 1-click test because the start timer button is immediate (no save required). We had to write some tricky code to handle the cancel edit case but it was worth it to get to 1-click.
Adding timers to the personal task list was straight forward. We quickly realized that starting a timer on a new task should stop the previous timer. We tried multiple concurrent timers, but that way insanity lies. This way, you get 1-click to switch tasks.
Likewise with timesheets. The sharp observer will see we moved the timer to the left; it just made more sense with the layout and we figured people live in either my timesheet or my tasklist.
See the little rectangle? It’s a very small animated GIF that throbs left and right, without it you just don’t trust that the timer is running. We thought about showing seconds, but it’s just too annoying.
In practice, you might need to stop or pause a task at any moment (ie. your significant other calls). The last thing you want to do is go to a task list and root around looking for the right button.
One look at iTunes and we saw this was a solved problem. Whenever you have a timer running, the task and the total time accumulated are displayed at the top of the application. The smart part is that the most recent task with any accumulated time is always shown until you use or clear it.
Using accumulated time is easy, go to any detail box, click use and it moves the time into the log progress field. We decided to keep the time running when you hit use based on the assumption that logging incremental progress is common.
The final design challenge was using timers on the main planning grid. First, we added start/stop to the right click menu.
While the right click support makes sense, it’s barely tolerable at 3-clicks. To get to 1-click in the plan grid we had to provide a custom column that can be turned on.
The My Timers column lets you start a timer on any task, even if you don’t own it.
There is still some uncharted territory with LP Timers but we feel it’s a pretty good V1 feature.
One thing we’d like to do is improve the use function since we have a pretty good idea of what your actually availability is/was. For example, if you let a timer run for 2 days, you probably want to log 16 hours, not 48. We opted for the simple what-you-time-is-what-you-get in this release.
We also need to add timer support to the API and iPhone app (still waiting for Apple to approve the app). Support in the API will allow the creation of timer desktop apps which I’m sure will take 1-click to a new level.