views:

2110

answers:

22

I work for a small-ish company, 70 people or so, 10 of us are developers. Every month we submit a timesheet tracking the hours spent on the projects we're involved in. Because we leave this until the last minute, we spent up to an hour going through our daily svn commits to reconstruct the hours spent.

This is clearly a waste of time, I'd be interested to hear of a "system" that works in other organizations. Maybe it's just a case of being disciplined to complete a paper timesheet every day, but I'd prefer something electronic and unobtrusive.

+4  A: 

I worked at a company where we had to put in a timesheet on a web form, but since the developers on our project only had one charge code, and since we didn't get paid overtime anyhow, one of the developers hacked up an application to automatically generate a random but plausible looking 40 hour time sheet for each of us. It was very useful.

Paul Tomblin
+13  A: 
Prakash
That looks interesting, thanks
Paul Dixon
This solution would never work for me. To illustrate with an example: all time spent on stackoverflow.com would be counted as 'firefox' time, wether I spent it looking for the answer to a current problem or stumbled upon something interesting, useful, but related to a completely different project.
Twan
Similar problem here, I need to track time to tasks but most tasks are done in the same application. Screenshots would help to some extent but I'd have to read through lots of code to decipher what I was actually doing!
roryf
>all time spent on stackoverflow.com would be counted as 'firefox' timein the latest version we split time up by domain.So you can say that stackoverflow.com is productive, while blog.stackoverflow.com is not.similarly, you can use keywords in the title to split up an application.
Leon Bambrick
Why not use different browsers for different tasks?
Phil Nash
Seriously, this app looks great. I started writing something similar a few years ago for exactly the same reasons. Ironically enough I ran out of time to finish it - but keep thinking about it. I'll give this one a spin. Thanks Prakash
Phil Nash
TimeSnapper (PRO at least) logs per browser address: you can mark certain urls are productive (like stackoverflow.com) or unproductive (like meta.stackoverflow.com) Highly recommended for people who put of time loggin until the last possible moment (like me)
edosoft
wow this is great. there is such app for mac os x ?
Werner
+12  A: 

Unless you go for the option of clocking in and out (be it electronically or not), keeping your time record is always going to be obstrusive. You are always going to have to go out of your way to record how much time you spent on doing what you just did.

So you really answered your own question there: it's discipline. And it doesn't have to be paper. Is it possible to grab the timesheet at the start of the week, keep updating it (every time you switch projects/tasks) and then submit at the end of the week?

Twan
I agree ... the real issue is discipline ... doesn't really matter what type of system you choose.
mattruma
I know, you're right. I knew as I wrote it, it's just a reaction to spending my last hour at work yesterday trying to put one together. Mind you, at a company I worked at years ago, I wrote a taskbar app that popped up and asked you what you were working on. Everyone hated it :)
Paul Dixon
+3  A: 

You should consider using FogBugz for time tracking on projects. It has the side-benefit that it can be used for delivery estimation on the next project, correcting for statistical errors in estimation. Also it is web-based so everyone will have access, even if they are remote. We use the hosted version for our bug tracking.

Turnkey
+1  A: 

We built a system in-house with a few alternatives, because different work modes require different types of time recording. The main modes are:

  1. Real-time start/stop task button. This is the most common mode; it lets you click a button when you start work on a project and click again when you stop (or just click the start button on your next task). It does require getting into the habit, but once you do, it's very convenient. We just keep the app open in a browser window at all times. Much easier to record small units of time this way, especially if you switch projects a lot, than try to remember everything.
  2. Daily calendar which can be filled in retrospectively. You put in the start and end time for each piece of work, and it calculates the amount of time.
  3. Weekly calendar where you have a view of the whole week, a list of projects and you can record the number of hours per project for each day. In this mode you don't care about the start and end time of each task, just the total hours. Useful if you have been out of the office at meetings for example.
  4. Project mode, where you select a project (and/or task) and then enter a list of hours worked on that project, in different categories such as 'coding', 'debugging', 'meetings' etc. Slightly more hassle but it gives you a more detailed breakdown of the type of work done.

One key insight that made a difference for us is to model the time records in the same way in all four modes, so that you can use different modes at different times and still have a single consistent view of all your data for reporting. This is especially useful if you start in mode 1 and leave your clock running, because you can go into mode 2 and fix it afterwards!

We have released the system for free single-user use, so please feel free to visit Inon Pulse and let me know if you find it useful - or just have a look and use it to inspire your own ideas.

p.s. it helps a lot to have a business process that inspires reliable use of the tracker - every Monday we review the number of hours recorded the previous week, and so if anyone isn't using the system, they get called on it fairly soon.

Leigh Caldwell
+5  A: 

Check out keeptempo.com for logging and billing.

Check out rescuetime.com to have a great way to track what the hell distracted you so much today :-)

Both have free versions of the service and both offer clients for Windows and OSX.

webmat
A: 

Over the years, I've gone from system to system and back again. Here's my current list of things I've done:

  1. Text file. Any time I start/finish a task, I just jot a quick note down in a text file, noting what I was doing, what I'm about to do, and the time. Then, at the end of a billing cycle, I just go through and sum up the hours for the task I'm billing for.
  2. Spreadsheet. Basically the same as the text file, but instead of a log, I use columns for {Task, Start Time, End Time}
  3. Custom application. This outputs the same format as the spreadsheet, but automates it with a little button to start/stop a task, and prompts for a task name when you start one.
  4. I've gone back and forth using Klok. It's great in concept, but using it on a day-by-day basis gets tiresome due to some bugs, so I tend to fall back to the custom app after a week or so after a new version comes out.
Alex Lyman
A: 

To start with, you need to keep track of what you've done when you're doing it. Your problem is that you ignore your projects until the end of the month. It doesn't matter which techy solution you come up with - the answer is simply to mark down '2hrs x, 3 hrs y' either as you do it or at the end of the day at worst.

I keep a desktop calendar for this, it only takes a couple of seconds to scribble a project initials and a time on each day's area. Because it takes a second or two to pick up a pencil and make a mark, you'll do it. If you have to start up some app to edit, and it takes 5 seconds to find the link, 5 seconds to start, 5 seconds to scroll to the end... you'll stop doing it.

Print out a month-view from Outlook or your favourite calendar app and get yourself a nice pencil, the old ways are the best sometimes.

gbjbaanb
You make a very valid point about the latency putting you off. This is the main reason I'm so against the web based solutions everyone seems to rave about. For me, any tech. solution needs to be as immediate and unobtrusive as possible This is possible without having to resort to a pencil ;-)
Phil Nash
A: 

If you're using outlook, set up a separate calendar for time tracking.

I find that outlook is always open, and I just add tasks to the calendar a few times a day.

Sometimes, I'll just roll up a few events into one Support calls - 4x 15 minutes will usually go in the 4-5 pm slot, as a single one hour task regardless as to when they occurred.

chris
A: 

I've created an application, which allows me to define some projects and I can enter the tasks in there. The application creates an XML-File out of this stuff and I can use it to create the bills or import this into another system.

Read more about this tool

MADMap
+2  A: 

I beleieve that there is no such thing as the best way in timetracking. It heavily depends on the company, your team and your customers.

But I'm sure you can answer How do you track your time?

Andre Bossard
+34  A: 

If you're on Windows, there is always a simple option of using Notepad's hidden feature.

  • Create a new text file with first line containing .LOG and cr/lf
  • Save it, close.
  • Every time you open the file, a current timestamp and a cr/lf is appended automatically, so you can start typing what you're doing right away.
  • Pin the text file to start menu or whatever's convenient
  • The file then can be somehow parsed and a report can be created based on it.

Official description here.

macbirdie
+1 for enlightening us about a feature that should, IMHO, be glaring rather than hidden!
Adam Liss
Whoa, that is amazing.
kitchen
A: 

I have a yellow notebook. When I get there in the morning I begin filling out a daily form I draw up. The headers would be like this: date goes over the 'table' and then the rows look like this--> startTime - stopTime | duration | task description

This has worked for me great. I usually round to the nearest 15 minutes and if I only spend a couple minutes on something I don't record it. The notebook is always sitting right next to me.

Joe Philllips
+1  A: 

We use Web Timesheet which I find very easy to use.

You set up a customer and then assign a variety of tasks to them. For example we have:

Customer Meetings
Template Implementation
Design
Development
Research
etc...

Web Timesheet allows you to start and stop a little clock and simply drop the amount of time spent on each Customer/Task. It really saves having to work out exactly how much time was spent as it does it all for you.

You can add comments to each task to keep track of what you were doing, manage holiday requests and sick days and keep track of overall task progress/ total time spent (great for support contracts!).

The only downside is you may find it a bit pricey

Katy
+2  A: 

The problem with most apps for timetracking is for me, that you have to remember to start / stop clocks etc. if you change to work at a different task. I always forget that.

So I started to write my own application that pops up every half an hour, hides all other applications and asks me: "What are you doing now?". So the tracking is at least vaguely accurate. Something like the mentioned TimeSnapper might be as better, though - the idea with the screenshots is great!

hstoerr
TimeSnapper actually has this auto-popup "What are you doing right now" question!
AtliB
A: 

Similar to the suggestion from Chris, I use a separate calendar in Outlook, with the addition of color-coded labels to differentiate between time spent on products, admin, and other tasks. If I remember to update regularly (and this is a big "if"), I can tell at a glance how I'm spending my time.

Adam Liss
+7  A: 

Give Harvest a try. It's intended for consultants etc., but it's essentially a time tracker. Pick clients and projects, set timers going, generate invoices etc.

There is an accompanying Twitter-ish app called Co-op which is worth trying.

I've been using Harvest for a few months and I've been very pleased with it.

Rich
A: 

We used to do this with excel spreadsheets and it just sucked. I would recommend using a time tracking application. There are many of them online. The one we use is called Intervals. It has an entire process for submitting and approving timesheets, which may work well for your department.

jjriv
A: 

I use a web based service called Tempo:

http://keeptempo.com/

Not a fan of the web based interface, but they expose a nice REST-like api so I've written a few scripts that allow you to send updates via the command line. For example

$ tempo start 'eating a sandwich'

Would start a timer for me eating a sandwich. Then if I were to enter this:

$ tempo start 'working on my tempo scripts @development @programming'

It would stop the first entry and start another one for me working on tempo scripts, tagged development and programming. You can specify other things like what project this work was on etc.

This is through no work of mine though. Tempo provides a 'text entry' syntax so I just send whatevers in the single quotes to the app and it does all the work of parsing it. The script I wrote just wraps requests with cURL.

Tempo API Documentation

It's a nice system for me because its right there in the command line so fits right in with my workflow.

If you log in with the web interface, you can generate all sorts of reports and invoices (it integrates with blinksale I think).

Ali
+1  A: 

An app that hasn't been mentioned yet (that I can see) is ManicTime

Many people in our office have been using it for a few months now - it's pretty much put an end to the 'What the heck was I doing?' question, no matter how busy you are or what other reasons there could be NOT to be doing your timesheets on the day.

ManicTime sits in the background and records what applications are active and their title bar. The latest version also captures the URLs of any sites you're visiting (it's helped when I've been bouncing between SVN branches of the same project)

It then lets you drag and select blocks of time, and 'tag' it with a title and some notes. I use this to track the project number/title, and the notes field for bug references/etc.

Unfortunately I still need to transcribe this into our in-house timesheeting system. Still - it's saved my backside several times.

Will Hughes
A: 

I've been frustrated with this problem for a long, long time (about 6 years now) and there's still nothing that does what I want, so I'm coding a commercial application which will be available mid 2010.

It's a time tracker without timers for the Mac called Lapsus. It will be aimed at Ruby on Rails developers initially, but longer term it'll be useful for any freelancer.

It tracks all documents you work on by polling the active window automatically, with no need for timers. You can add a project folder and Lapsus will assign all time spent on documents within this folder to that project.

Lapsus will also track what URL you're on in Firefox or Safari and you can assign these URLs to projects too.

You can watch a brief video and sign up for the Beta at http://lapsusapp.co.uk

John Gallagher
A: 

You may use Malcan Workflow for SharePoint ( malcan.com ) and within minutes you may build complex workflows. Solution: MANAGING TIMESHEETS is available for free on MWS. Check out demo: http://malcan.com/common/Lists/mwsVideo/DispForm.aspx?ID=22

Karol