Accurate Project Time Tracking?
Uhh-I-think-I'll-stay-anonymous-this-once asks: "I'm really rubbish at tracking the time I spend on things. That's bad for me, because I bill clients by the hour and almost always have to under-bill. I've tried a few bits of software for tracking, but none of them have suited me. What do you use? And why do you like it? If you've got suggestions, I'd love to hear them. I can't give a spec of what I want, but I can describe my habits and hardware. I use several computers, sometimes I don't use my own. I've got a short attention span when I'm not programming, and hop from task to task like an insane jack-rabbit. I'm not always on my network. I've got a couple of servers that could be used to run a web-based system. Mining my e-mail is often a good way of finding out what I've been working on. I'm rubbish at adhering to routines. I like OSS, but it's not an absolute-must-have. I'm comfortable with both Linux and Windows, but spend most my client life in Windows."
The simple solution is to estimate how much you're undercharging using standard estimation techniques and then overcharge for that amount.
-73, de n1ywb
www.n1ywb.com
I use basecamp for my project management. It has a simple and fast time entry feature with CSV export.
:-)
On the corner of my desktop I have a little stopwatch program called Watch It (actually I'm still using v0.5, I just realized). Nothing particular special about it, you could probably find a different one that you like.
When I start some work, I start the stopwatch, and when I stop working? RIGHT, YOU GUESSED IT!
Sure, I often forget, and have to check my shell history or whatever to come up with an estimate (I'm a unix consultant) but over the years I've gotten good at remembering.
I enter the time into the appropriate project and task in Basecamp, and then each month I use a Perl script to download the CSV from Basecamp and import into my ancient (as in, pre-web!) time tracking app and take it from there.
If I'm not near a web browser, I just scribble the time in a special green sheet (green == MONEY) in my hipster PDA and then enter it in basecamp later (don't do this often though, best thing is to enter the time ASAP or it becomes a chore).
You could probably use a spreadsheet or something instead of basecamp or a dedicated time-tracking app (but I really recommend basecamp, it's super-simple and responsive via Ajax goodness). Or you could use a real physical stopwatch instead of a computer program. Etc.
A couple of mates of mine wrote a software product that addresses this problem. So feel free to take this post with a grain of NaCl.
http://www.spherical.com.au/timesheet-software.asIt's a Windows app that runs in your system tray, watching what you do (browsing, email, word processing) and tracks the application and document name. You can then review the log of what you've been doing and assign applications + individual documents to projects and clients - obviously it learns as it goes so you only have to tell it about each thing once. You then set up hourly rates and stuff so that can come up with the numbers for your invoices.
If you're constantly on other machines it may be a problem, but I would note that it can sync with a Pocket PC Outlook calendar - you log time spent in meetings, etc in the calendar and sync up when you're at your 'master' PC.
Undoubtedly not a 100% fit for what you ask for, but it sounds like it could be a reasonable fit.
You're probably better off coming up with better up-front estimates on how long a project will take and then billing against that, or just billing on a per-project or per-milestone project.
As for a way to keep track of how you're using your time, I don't think there's any software that can possibly help you. You just need to discipline yourself to stay on task for a given period of time. If you don't like working in an 8-hour block then do an hour on and 20 minutes off or something like that, and just note your start and stop times.
All that said, I find looking through the svn (or cvs) log is frequently the best way to get a record of what you've done. If you see an entry in the log for Nov 18th that says "rewrote the entire shopping cart module" it will do a lot to spark your memory and you'll likely recall that it took you 6 hours to make that change. Between that and your email history you can probably piece together your work on a project pretty well.
rooooar
I don't know how much you're underbilling by, but if it's any large amount then you might want to hire some help. Let's say you're underbilling just 5 hours per week and you bill at $100/hr. That's $2K/month. For that kind of money, you can easily hire a secretary to help you record your time. You'll get the added benefit of someone to do the actual billing (so that you can work more), and get other things done as well (filing, messages, answering phones, collecting on deadbeat accounts, running errands, etc.) It's well worth the cash to have someone around to help.
If you don't want crime to pay, let the government run it.
Switch to decaf. Meanwhile, I'd hate to see your code..
As someone who sells their time, your ability to succeed (beyond your technical skills, of course!) comes down to:
- Your ability to win work;
- Your ability to price work; and
- Your ability to manage projects.
Going to flat-rate pricing or retainer models introduces risk, but it also dramatically lowers your overhead and increases your inventory of time available to sell. You get back the time you currently spend tracking time, tallying it up for billing purposes, etc. You'll find that customers like both flat-rate pricing and (for extended work) retainers because they give them solid numbers to budget against."It was a summer's tale: Just a boy, his Linux, and a head full of dreams..."