views:

1218

answers:

19

Hi all,

I'm working on a personal project and I'd love to be able to say at the end:"I've spend X hours on this project". Now one way to solve this, is to use a manual time tracker (worked from: to:). I've ran into problems with this, because I only manage to use it consistently for the first week or two. So I'd like to track development time automatically.

One idea I had was to insert a short script into the build process that that would insert a time stamp into a log file every time a build process is called. Later, I could analyze the intervals between each build and hopefully calculate a somewhat accurate picture of what's going on.

Does anyone else have an idea of how such a time tracking tool could be implemented? Are there any existing tools out there?

Quick follow up based on the answers already provided: 1. Stop/start trackers aren't bad, but require a lot of discipline, something that I perhaps should be working on. But they dont work for me. 2. Specific app-tracking programs are great, but I'm current on Mac OS X. Thanks

+9  A: 

Checkout timesnapper: http://www.timesnapper.com/

interesting solution
Zac Thompson
+4  A: 

You can use Productivity Meter:

http://www.fruitfultime.com/products/productivitymeter/personal/fruitfultime-productivitymeter-personal-edition.php

There is a nice overview on Lifehacker as well:

http://lifehacker.com/5123041/productivity-meter-tracks-your-computer-usage

Once you do this, you can tell when you are active in which programs, and use it to more accurately track your usage.

casperOne
This looks cool but, from what I can tell, it will tell you the total time you spent in your IDE, but it can't differentiate between projects.
Outlaw Programmer
+3  A: 

Allnetics' Work Time Tracker has an option to turn on and off when it detects keystrokes and idle periods.

MaxVT
+1. I use this since 2001, and I'm happy. There is no OS X version as far as I know, though.
Pekka
+2  A: 

We wrote a plug-in for our IDE (IntelliJ in our case) that keeps track of time spent per project automatically. The IDE's API lets you list for events like edits, changing windows, etc., so we log a record every time something like that happens. The reporting module looks at this raw data and determines the total time spent per project by comparing timestamps between records. If the difference is greater than 5 minutes, it assumes no work was done during this time.

It's not perfect and it's not 100% accurate but you do eliminate all the overheard of manually tracking this stuff yourself through some external tool.

Outlaw Programmer
+18  A: 

My opinion is that you would greatly benefit yourself in keeping a light-weight development journal. Notes, sketches, times, dates, etc, designs. It's not an answer to your question, but it is a discipline that few developers have and one that they desperately need.

Life is busy and people must learn to track / budget their time and discipline themselves to take on good behaviors and habits.

I encourage you to fight and win this battle. Don't compromise something so easy to automation when there are greater gains if you improve your skills. You might also want to check out LifeHacker for some ideas.

A bit of a non-answer, but I hope you find it helpful.

sam
+1 That is excellent advice.
David Robbins
+1 Good advice, but you have to seperate between "open-source", "hobby", and "commercial". Discipline is needed everytime to suceed at a minimum level, but the importance of periodic-repeated controlls like "coded from 11 AM to 3 PM" has not always the same priority to suceed in this specific domain.
daemonfire300
+1  A: 

kde has a neat time tracker with an option to start/stop tracking when you are on a particular desktop. so you can keep that project on the timed desktop and everything else on other desktops.

+1  A: 

Check out Intervals, which is a web-based time tracking program that works like a stopwatch. It's a lot easier to track your time that way and much less of it slips through the cracks.


jjriv
+4  A: 

Probably not the answer that you're looking for - but thought I'd mention this, in case it turns out that an automated system isn't feasible.

This isn't automated, BUT it works and works well. The tool is called Hamster and it's now part of Gnome (http://live.gnome.org/ProjectHamster). Once installed, it can be loaded as a gnome panel applet.

  • It provides a simple interface to log the task you're carrying out, and allows you to export the data to a number of different formats.
  • Shows you the current activity directly from a panel (+ how long you've spent on it)
  • It remembers the tasks you've carried out, so you can easily recall and carry on a past activity.
  • If you started the task previously, you can specify start times in the past - which is useful if you forget to start logging at the beginning of your session.
  • It regularly reminds you what you're supposed to be doing - which is a great prompt to ensure you're logging the correct activity.
codeinthehole
Thanks for the tip! I was salivating over all of the other solutions and I felt left out because none of them worked for Linux.
John Bellone
+3  A: 

I know you said start/stop-style trackers didn't work for you, but for others who can use them, check out the free Process Dashboard, which is useful for time tracking all kinds of business processes, not just programming.

Dour High Arch
PDB is a useful tool if practicing PSP (http://www.sei.cmu.edu/tsp/)
hexium
+1 for suggesting a free option
Adrian
+3  A: 

If you use source control you can use svn (or any other) hooks on commit and checkout that log timestamps to a db, etc when you check your project out and when you check it back in.

The trick to making this work - and it is easiest on single developer projects - is to MAKE SURE you check your work in when you are done working for a period of time, and that you check it out immediately prior to doing actual work.

This might not be feasible for your project. Build process checking etc suffers from the same issues - namely that you might work for 3 hours and then build 8 hours after that.

Abba Bryant
+1. I think version control based tracking is the best (and most platform independent) way to go if you don't want to use a start / stop application. It's fairly easy to force oneself to, and it has the great advantage that you are forced to document your work, as well.
Pekka
+1  A: 

An alternative might also be a simple time tracking web app like freckle. I won't post a link here since I don't want to spamvertise and have no affiliation with them anyways. Google for it and you should be able to 'track' it down.

Abba Bryant
+7  A: 

If you need an automated time tracker, consider RescueTime. This is a background app for Mac OS and Windows that logs the time you spend on applications.

It is granular enough to separate time spent on different documents or web sites open in the same application to different tasks. For example, it can log time spent at StackOverflow to a different task than time at BBC News, even from the same web browser.

Dour High Arch
Yes, it works great as long as you spend the time to set it up and detail which of each of your apps/sites are "wasting" time.
Xeoncross
Xeoncross makes a good point; any application that is going to "automatically" track time spent on projects will have to know which project to apply the time to. You can do it the Process Dashboard way where the user clicks a button when they start on each project, or the RescueTime way where the user has to predefine which apps and sites apply to which projects.
Dour High Arch
+1  A: 

It requires a little discipline, but is very easy to get used to...

I've been using Harvest for time tracking across various projects, both for myself and for different clients.

What's really nice is that there is a Mac dashboard widget that, once you have some projects set up, makes it super easy to start/stop and switch between projects during a day. There's also an iPhone app that syncs with everything in the same way, in case you remember on the way out of the office that you forgot to stop the clock.

It will then give you some great reports, over time, about time per project, and allows you to invoice different clients very easily.

philfreo
+1  A: 

I use Hourglass (Windows version). Although freeware, it is promoting other applications from the same company which can be a bit annoying. Quote:

HourGuard is completely free. We make HourGuard free in the hope you will like it so much you will try our other business related software.

But hey, it's free and it works.

Alternative download locations and reviews Windows or Mac

Adrian
+5  A: 

Well if you use eclipse you can try Mylyn it automatically keeps time track and a context of a tasks.

Nikolay Ivanov
+2  A: 

Personally I've found it impossible to remember to use any form of software for tracking development time. I think having a physical device like a stop watch or even the timer on your phone can work much better. Just put it in a prominent spot on your desk and you will remember to use it.

Mike Weller
+2  A: 

I've been using "manictime".

It keeps track of your activity on your computer and generates detailed reports. You can then infer and annotate how much time was spent on which tasks. It runs in the background and you can bring it up anytime from the tray.

alt text

Angelo
+1  A: 

I used FogBugz on my previous project and the time tracker built into it (intended for reporting directly on what tasks you've been working), though manual, was fantastic once I got used to dealing with it.

Not only was it nice to see but the simulation that followed was helpful for my project: on more than one occasion, we were able to demonstrate that our two man team wasn't going be able to accomplish the wealth of work we were given and we were able to work with our managers to prioritize.

I probably sound like an advertisement but seriously, it really is a nice tool!

antik
+2  A: 

I use Toggl for timekeeping. It has a little popup window where you simply click the start button when starting work and click again to stop, switching between projects as you go along.

I'm actually so happy with Toggl I ended up signing up for a paid account... it works that well.

Jonas