Here at Fry-IT we use timesheets, like so many other companies, to track the time we spend on each client project. Despite being a very "web modern" company we still don't use a web application to do this. What we use is a python script that I wrote that uses raw_input()
to get the details in on the command line. The script then saves all data in a big semicolon separated CSV file and is stored in cvs. This works quite well for us. It's in fact all we need in terms of actually entering our times which is usually very easy to forget.
But, here's an idea for a timesheet tracker that will not guarantee but will really help in not forgetting to fill in your timesheets. The idea is that you have a web application of some sort that is able to send out emails to registered individuals. These emails will be sent at (a configurable time) the end of the work day when you're about to leave for the day. You might have seen this before on other timesheet tracker applications; it's not new. What is new is that the email would contain lots of intelligent URLs that when clicked fills in your timesheets for that day.
Everybody can click on URLs in emails to open them in a nearby web browser. Obviously all of these URLs need to contain information about the day and the login credentials of the user so that you don't have to login on some site after you click the URL. Every URL would thus contain login stuff and a particular entry to the timesheet tracker. Something like this:
http://timesheeting.com/Xgt4q/_8_hours_Project_ABC
http://timesheeting.com/FpE26/_6_hours_Project_ABC
http://timesheeting.com/2Jt9a/_4_hours_Project_OCH
The first part of the URL is an encoding of the user's login and the date (date of when the email was created) and the second part is so readable that you can find which one suits you by simply reading the URLs. If you need to enter a comment for every piece of work you do, that comment form can be shown when you click the URL on the site.
Another very important detail is that the system has to be smart enough to know which links it should offer. It can do this by cleverly looking back at what the user entered the last time and the time before that etc. It should require much, you hash every different combination of hours and project and sort by last usage date. If you need to start tracking a new project or an exceptional number of hours then the email alert isn't for you. Remember, it's just a clever improvement to the usual "Don't forget to fill in your timesheet!".
Now, feel free to steal this idea on your own timesheet tracker applications. I've got too many other dreams that I need to try first. Writing about it means that I at least won't forget about the idea.
UPDATE
This comic is soo relevant and soo funny that I just have to include it
Comments
I wrote an automatic timesheet generator for work. Basically it just displays all the tasks within a project as radiobuttons. There always exactly one task active, and each task switch is logged. You then click the 'generate time sheet' command at the end of the day.
If you are interested I can ask my boss for permission to release it as OSS. It uses a whip-up format for the data, but trivial to adapt to whatever you need.
I guess it's similar. Thanks, but don't bother making it a OSS hack. My objective is more high level thinking rather than active searching.
Nifty idea. I'm working on a tool in python to watch current window titles and computer activity, log to a file, then later use bayesian analysis for categorization.
It's a tool for myself to see how I'm spending time... or wasting it.
More along the lines of GTD/Personal Software Process, to gather metadata about my work habits.
Cool! High aiming idea.
You could then also scan your home directory recursively for which files have youngest timestamps and thus give an indication of which directories you've been working in.
Imagine then, the timesheet tracker mentioned about + a web service that "improves" the guess based on your computers usage stats.
A tall order but you should always reach for the stars, you might reach the moon.