Time tracking is usually required for most projects. I've had to do it with both my freelance work, where I charged per hour; and also in my full-time position where we each submit a weekly timesheet.
Ever since I first started freelance years ago, I've experimented with different methods of tracking my time. Initially I just used a stopwatch, then if I got interrupted, I stopped it, then started it again once I continued working. At the end of the day, I'd log the hours in Freshbooks.
In my current workplace, I'm always having to switch between multiple tasks, and am frequently interrupted during the day with either a question or problem. These interruptions need logging too. This makes the stopwatch approach much less usable.
Looking into the different tracking solutions, I came across Manic Time, and have now been using it daily for the past year or so. It makes it so easy to track time, especially with the global hotkeys and stopwatch tagging functionality.
For me, this functionality is what makes ManicTime so useful.
When you click on start, you're greeted with a popup allowing you to tag that time. You can assign multiple tags, and the dialog lists your recently used tags so you can quickly swap between them.
Note that the stopwatch functionality is only available in the paid version. You can still tag your time, but it's more of a manual process rather than explicitly starting and stopping in real-time.
It would a bit of a pain if every time you needed to switch between tasks, you had to alt-tab to the ManicTime window, find your mouse pointer, click start/stop, then choose the relevant tag. This is where global hotkeys come in...
Below are the hotkeys that I use:
win+q: Start tag win+w: Stop tag win+z: Tag previous untagged time
So as an example, if I'm working on something and someone comes over to my desk, I now automatically press
win-w to stop the current stopwatch. They don't even know I've done it. Once they leave, I press
win+z and the ManicTime 'Add Tag' window pops up allowing me to tag the time and reason of the interruption. I then press
win+q and select the tag that I was previously working on from the list, and continue where I left off.
At the end of the day, I then take the information from the tag summary pane, and put it into my timesheet spreadsheet spreadsheet. This is what best suits my work's 'weekly timesheet' format. However, the paid version of ManicTime does support timesheets, so this might be the better option for you if it fits your requirements. If not, it doesn't matter because it's so easy to transfer the aggregated data from the summary window to your chosen solution.
So far I've only mentioned the features that I personal use heavily in ManicTime. However, a big area is it's automatic application and document usage logging. The interface provides you with a really nice graph which you can mouse-over and review what you were doing at a particular time. I haven't discussed this more in depth, as it doesn't really fit into my use-case. But I do find it useful from time to time if I forget to tag something.
After looking at various solutions (I even started to write my own at one point), I've found what works best for me. However, I'd still love to hear what time tracking solutions you've found and what you've come up with to solve what should be a simple problem!