Monday, October 10, 2005

Keeping a timesheet

I keep a timesheet to record the paid work I do. Here's how I do it.

Create a timesheet file

I create a text file using Notepad, with a filename like "timesheet.txt" -- the '.txt' extension ensures that when I double-click on the file, then it's opened using Notepad.

I put the word ".LOG" at the beginning of the file, so that it looks like this:

.LOG

A more-or-less well-known fact described by http://www.google.com/search?hl=en&lr=&c2coff=1&q=notepad+%22.log%22 is that when you use Notepad to open a file which begins with ".LOG" then Notepad inserts a timestamp. So, when I save-and-then-reopen "timesheet.txt" for the first time, it looks like this:

.LOG
1:36 PM 10/10/2005

Create a shortcut to the timesheet file

After the "timesheet.txt" file is created, I put a shortcut to it on the Quick Launch toolbar:

This means that I can open the timesheet (and add a new timestamp) with a single mouse-click.

Create a timestamp before I start work

The first thing I do before I start to work is I click on the shortcut to open the timesheet, which creates a timestamp in the timesheet, for example:

.LOG
1:36 PM 10/10/2005

If this is the first entry of the work-day, then I manually insert the date:

.LOG

[2005-10-10]
1:36 PM 10/10/2005

I then close the log again and start work.

Create a timestamp when I stop or switch tasks

When I finish a period of work then I open the timesheet again. This creates another timestamp at the end of the timesheet, for example:

[2005-10-10]
1:36 PM 10/10/2005
2:14 PM 10/10/2005

Just before the last timestamp I then insert a description of how I've just been spending my time, for example:

[2005-10-10]
1:36 PM 10/10/2005
Begin to document how I keep a timesheet
2:14 PM 10/10/2005

I also like to calculate approximately how much time I spend on each item. I try to keep this calculation accurate to the nearest quarter-hour, so in the example above I would add "0.75" to the beginning of the description line, to show that I spent about three quarters of an hour so far:

[2005-10-10]
1:36 PM 10/10/2005
0.75 Begin to document how I keep a timesheet
2:14 PM 10/10/2005

Repeat as above after each task switch

I usually don't just create a single timesheet entry for the whole day, like this:

[2005-10-10]
9:00 AM 10/10/2005
8 continued to work on task X
5:00 PM 10/10/2005

Instead I usually create a new timesheet entry several times during the day:

  • Whenever I switch tasks from one project to another
  • Whenever I'm interrupted (for 15 minutes or longer) by work on a secondary project -- for example taking an incoming phone call, or reading and replying to an email
  • Whenever I take a break (of 15 minutes or longer)
  • Every few hours, whenever I finish some natural milestone

So a completed timesheet for a day might end up looking like this:

[2005-10-10]
9:17 AM 10/10/2005
0.75 daily status telecon with A and B
9:58 AM 10/10/2005
1.25 reviewed the source code for deliverable X, sent review comments in email titled "RE: deliverable X - review comments from Chris"
11:23 AM 10/10/2005
0.75 begin to write source code for task Y
11:50 AM 10/10/2005
0.5 talk with A about task Z
12:23 PM 10/10/2005
1.5 finish writing source code for task Y
1:42 PM 10/10/2005
(lunch break)
2:17 PM 10/10/2005
2.25 finish unit testing and debugging task Y
4:37 PM 10/10/2005
0.25 send source code for task Y for review, in email titled "deliverable Y - please review"
4:50 PM 10/10/2005

Note:

  • Usually the timestamp at the end of one task also marks the beginning of the next task. The exception to this in the above timesheet is between 1:42 and 2:17, during which I recorded no work.
  • I was doing something when I was interrupted at 11:50 by an incoming phone call.
    • When A said "Can we talk now?" I said "Sure, just a second..." and I clicked on my timesheet icon to create a timestamp for 11:50 AM, which is when I stopped what I had been doing and started doing something else.
    • At the end of the phone call:
      • I created a second timestamp (to mark the end of the call)
      • I described the interruption ("talk with A about task Z")
      • I described what I was doing before the interruption ("begin to write source code for task Y")
      • I then continued with what I was doing before.
  • If an interruption takes less than 15 minutes then I may not record it in the timesheet (because I try to keep the timesheet accurate only to within about a quarter of an hour).

It takes less than minute to open the timesheet and write half a sentence to summarize what I've been doing since my last timesheet entry: so a timesheet like the above which contains 7 entries takes me less than 7 minutes in the day to write.

Sort the timesheet entries by task

I keep task logs, which record all activities for each task. These task log entries are mostly sorted by task (a different log file for each task), whereas the timesheet entries are mostly sorted by day.

To convert a timesheet like the above into a set of task log entries, the first thing I do is to remove the timestamps, which leaves only the duration and description of each entry, for example:

[2005-10-10]
0.75 daily status telecon with A and B
1.25 reviewed the source code for deliverable X, sent review comments in email titled "RE: deliverable X - review comments from Chris"
0.75 begin to write source code for task Y
0.5 talk with A about task Z
1.5 finish writing source code for task Y
2.25 finish unit testing and debugging task Y
0.25 send source code for task Y for review, in email titled "deliverable Y - please review"

Then I categorize the entries according to which task they belong to, for example:

Miscellaneous:
0.75 daily status telecon with A and B
0.5 talk with A about task Z

Task X:
1.25 reviewed the source code for deliverable X, sent review comments in email titled "RE: deliverable X - review comments from Chris"

Task Y:
0.75 begin to write source code for task Y
1.5 finish writing source code for task Y
2.25 finish unit testing and debugging task Y
0.25 send source code for task Y for review, in email titled "deliverable Y - please review"

The list of tasks to which my activities belong is agreed in advance with my project manager.

Sorting my previous day's activities, from the timesheet into task logs as described above, takes me less than 10 to 20 minutes per day. It's usually the first thing I do each day, to remind me of what I did yesterday and because that's when my previous day's timesheet is complete.

1 Comments:

Blogger AnJaka said...

Good day Christopher, This is a good article site.
i found many information here.
-----------------------------------------------
http://global-in-arm.com
Good luck, Christopher

3:42 AM  

Post a Comment

<< Home