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.
Before I get started, let me say that I use mailx more than I use Outlook.
There's one feature of Outlook, though, that I used to use: the Journal. If you're in Microsoft Office, it automatically tracks the time every document opens and closes in a little timeline. If you're not in Office and you remember to use the feature, you can add arbitrary items to the Journal much like you would add address book entries. It's a great way of watching how much time you spend on documents.
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.
buy a cheap timeclock, and some time cards... set it on your desk.
punch in, punch out, per job.
every day http://en.wikipedia.org/wiki/Special:Random
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..."
A *very* simple program i use myself is gtimelog (http://mg.pov.lt/gtimelog/). Your main problem doesn't seem to be lack of programs but rather lack of discipline though...
The timer thing is not a bad idea, but it still has to be recorded somewhere, so it's not necessarily a good answer if you can't just say "eight hours billed between four clients, 2 hrs/client".
Paper can work great. I used a notebook and followed a methodology more or less laid out in a software engineering textbook that I took at Uni. Essentially, list out tasks and assign some identifier (i.e., as a penetration tester & computer forensics consultant, I have a code for Googling/researching/footprinting my client, and a separate one for port scanning, etc.) A few pages farther back, I have a listing of client/project identifiers. A few pages behind that, I have a slot to tally project/time expenditures and begin to get a feel for time spent on each client/type of task. A few pages behind that, I record start time, end time, a column to indicate breaks (i.e. 5, 10 mins for coffee or something), a delta, client number/indicator, task number/indicator, a description, and a checkbox to see if I've aggragated that item, recorded it in my billing system, etc.
I omitted the breaks/delta columns because every break tended to be a different client or project; coffee breaks waited until some other distraction broke me away from what I was doing. This worked fairly well, and eliminated having to mess with another software interface. Of course, the system I use dictates this time be entered manually, so a CSV export or something akin to it doesn't really help.
Now though, I track my time where I track my appointments, vacation, etc. by creating appointments for each client or job I work on. It's a little more time consuming to enter, but my PDA supports this time tracking method inherently, and I can use the Categories listings to indicate the client, I can summarize my work in the subject, I can track the task type in the location, and I can include notes or comments (say, if it's a phone call) all in the same spot. When I have to enter my time, I can just open my calendar and go back a few days. I can also (as someone else mentioned) use the Journal function in Outlook to augment this.
For me and my work habits, this seems to work out well, plus it's a little comforting when I have a good day and it's a solid block of blue (the label color I use for billable work).
Linux: The world's best text-adventure game.