Once you convince people to do time tracking, you need to remember that there are different goals to be addressed. If you are a consultant, you need to track time for billing purposes. If you are a project manager, you need to track time for measurement purposes (Are we on track? How's our Earned Value Management (EVM)?). If you are a department manager, you need to track time for reporting purposes. The problem is that each of those goals requires a different type of time tracking.
A common argument with my systems architect friends is over whether you should track time spent on a task or elapsed time for a task. When planning a project, you need to know what the elapsed time is for a given task. For example, if you are working with large dataset calculations the job may run for a significant amount of time but it may only take a few minutes for someone to submit the job to run. Do you track the running time or the person hours?
Somehow I can't convince them that I need to know both. One is for billing purposes, the other for project management purposes, and both for reporting purposes. You don't want to double bill your customer for time, so you don't bill the run time, just the submit time. However, you don't want to miss out on a task that could be part of your critical path if the job that needs to run takes more than a day. In addition, management has to report to executive management on staffing, project delivery dates, future staff planning, etc.
It turns out that this conflict is easier to manage than it sounds. Simply use two separate tasks - one that is a work resource for the submit task and one that is a material resource for the actual run time. This will get you all the data you need. You can track the actual time spent by your people for all the billing and staffing reports you need and you will have the calendar time for the project delivery dates you need.
Does anyone have any other (or better) ideas on how to manage this sort of thing? Has anyone worked with a tool that supported this easily?