Part of this is project planning, and part of it is genuine curiosity. If I know how much time I'm spending on various tasks, I can provide better feedback to management and better estimates of my milestones as whole.
Accurate time tracking is the core of PSP, and a number of people have independently recommended the practice. Time tracking for programmers is a hard problem in general though, because it must be done on a minute by minute basis. So most programmers don't do it.
There is software that does time tracking, but if you look more closely at it, you realise that it tracks hours for billing purposes. For that particular problem, my needs are met. I use Punch Time Clock on the Palm, and it does exactly what I want it to.
No, for this particular problem I need software which would automatically look at what I was doing on the computer, and feed it back to me, while I'm focusing on something else. It needs to be able to look over my shoulder when I work, and tell me when I'm writing an email, looking at a database or writing code. Ideally it should be able to tell me what files I'm working on. Hackystat tries to do this, but it really only keeps track of programs which have specific plugins that talk back to the Hackystat server.
Time tracking applications exist in a sea of applications, and there really isn't one central place where they're reviewed. (Sadly, this is the best I've found.) I reviewed many of the Time Tracking applications (chucking most of them), and have narrowed it down to three candidates:
Allnetic Working Time Tracker: Some limited automatic tracking, and very good manual tracking. It seems to be the leading contender in that it comes up many different times on different sites.
Worktime: This is a good solid automatic tracking utility. It has a nice UI, stays out of my way, and is reasonably powerful.
Smart Worktime Tracker: This is currently the frontrunner. It looks a couple of years old, but has features which seem specifically designed for programmers, such as regex matching on the title so that you can match which files are being worked on inside an application. More importantly, it can do "smart stuff" which apparently means it'll group applications automatically according to how you use them. More in the FAQ.
We'll see how useful this is. Now to go block the comment spam from the blog and add tools to remove the existing spam without pain...