Whenever I learn a new language or framework, I tend to build two kinds of applications to help figure it out: an invoicing and financial tracking application, and a time-tracking application. Moving from freelance sole-proprietorship to an actual company has made me re-examine my tools. Instead of a half-implemented expenses and invoicing tool, I went out and bought MoneyWorks; and instead of using my old home-made Notes or Java or Rails/AJAX time tracking tool, I discovered OfficeTime. What a great find!
Tracking your time is pretty simple - pick the project you're working on, either from the application itself, or the menu bar item, or the dock icon, and it starts timing. You can pause and restart the timer, or you can stop it entirely and come back to it later on.
When I built time-trackers, I always stored the start time and the finish time, and then had to calculate the difference to get the actual time worked. OfficeTime just tracks the start time and then stores the elapsed time - which makes it much easier to pause or come back later, and really simplifies figuring out the hours worked. It also handily solves the conundrum about where to put time when you work over midnight (something that happens a lot in the software business).
The thing that really sold me about OfficeTime, though, were the reports. My home-grown solutions, since they weren't billable work, never really had satisfactory reports. Figuring out the right combination of features and flexibility is tricky - and OfficeTime has struck a great balance. OfficeTime's reports are fast and easy to use, and the automatic pie charts are almost sexy - well, as sexy as a piece of time tracking software can be.
When the application first comes up, you might wonder about how little there seems to be to it - but it actually takes a great deal of work to be that simple yet effective.
Many corporate mission statements talk about "delighting our customers" but usually the fact that they need a corporate mission statement keeps that from happening. However, good software can often have a "delighting our users" moment. The first time I really used OfficeTime I was working on a project at a colleague's office, and someone came by to show me something new on their computer. I had forgotten that I was still timing my work while I took fifteen minutes away from my desk, but when I came back, there was a box on my screen that said "You've been away from your computer for 15 minutes (and counting) while timing [my project]. Would you like to a) Subtract 15 minutes, b) Keep the minutes, c) Put 15 minutes instead in [pick a project]"
I had been using the free trial version until then - I bought the full version that night.
This feature is especially good for those times when you put your laptop away for several days and come back and realize you've been time tracking for your entire long weekend.
I only have three gripes with OfficeTime: