Time Tracking Best Practices
Why time tracking
There are literally thousand of articles on why you should track the time you're working on a project. (including one article in our own blog).
Without repeating the various motivations in great detail, let's just say it comes down to two main reasons:
- know how much effort to invoice your clients for and
- learn from past project efforts to be more accurate in estimating future efforts for tasks or projects.
Both make a lot of sense. If you don't know how much time you or your team spent on a project, any amount that you put on the invoice would just be random. And because we humans are notoriously bad at estimating how long a task will take, without historical data to base your estimates on would also be just arbitrary.
Another, less popular, reason could be to monitor employees in an effort to increase productivity. Research (and common sense) shows that this is a fallacy though. Most employees perceive it as being controlled, feel pressure and actually get less productive as a result.
Popular techniques / best practices
Once you are convinced that time tracking is beneficial (and let's be honest, you are - why else would you be here) the big question is: how to do it?
I categorized the most popular approaches for time tracking in three categories: The start/stop button, guess-filling and hands-off.
The start/stop button
This is the most simple form of time tracking software. Usually all you have to do is entering a project name, hit the start button when you're starting to work and (usually the same) stop button when you're finished or taking a break.
The most popular such software is toggl which is quite cheap (they have a free plan), easy to use and has a nice interface. It's available for all major platforms and has some integrations to work with project management or invoicing software.
The problem with the button
Ideally you would hit start when you begin working on a task and stop when you're done. But as with anything that we're supposed to do manually, the risk is that we just simply forget to do it. You might end up working on and finishing a task and only at the end realizing that you never hit the start button.
Even worse, the tracking software reminds you that you forgot to start tracking with a nice but distracting notification. Although this might be a well intended feature, it gets annoying really quick and decreases your productivity as any interruption does.
Guess-Filling
Probably the most used and most hated type of time tracking is what we call guess-filling.
How it works
Basically what you do is write down how much time you spent on a task after you finished the task. In many settings it's the project manager, scrum master or some similar role in a team that is kindly reminding her/his team members to fill in the time sheet.
This could be in a project management tool like Jira, Redmine, and the likes, in a spreadsheet (here's a list of templates) or, if you're really old school, on a piece of paper.
Why it's hated
The downside of manually filling in timesheets is threefold:
- It's frustrating for everyone Developers like to develop, designers like to design. No one likes to fill out timesheets. If you're a project manager, hassling your colleagues to fill out their timesheets is probably one of your least favorite aspects of your job.
- You'll never get it 100% right No matter how good your memory is, you're always end up estimating or rounding. This obviously defeats the purpose of time tracking. Even worse, when you don't track all of your time. According to an article in the Harvard Business Review, especially tasks like emailing clients are often not tracked. This costs each person $50,000 in revenues per year. Across professional service sectors this amounts to $7.4 billion in lost productivity every day.
- It costs time and money If you work for customers, as a freelancer or in an agency, you want to bill as much of your time to those customers as possible. Time spent tracking is not productive, so it's not billable. A study showed that lawyers spend on average 3.1 hours per month on filling out timesheets. It's doubtful that this would differ much from industry to industry. If you then add the time for analyzing those timesheets and converting them into invoices, there's a lot if time spent that in this day and age really should be automated.
So it seems like there is a lot of potential for improvement. Obviously we 're not the first to realize this. That's why there are many software solutions for time tracking:
The hands-off approach: automatic time tracking
Mainly to solve the problem of team members not logging their time at all, companies and agencies often choose an automatic time tracking software.
The number of different services are so big that it can be a very time consuming task to find the best one for you. Thankfully there are a lot of articles and lists about the best time tracking softwares.
Some are fully automatic, some semi-automatic. Some integrate with your favorite project management tool, others just show you the reports and it's up to you how you use them.
Challenges of automatic time tracking software
As easy as it sounds for the user, as hard it is for the developer: Don't worry about tracking your time, let a software do it for you. But how does the software know what you're working on at any given moment?
We 'll that's exactly the challenge we are working on right now. As we believe in transparency within our company aswell and especially towards our customers, here's a quick description of how we're solving this issue :
Basically we're using information that the user's operating system provides about the application that's currently open and in focus. The most valuable piece of information is the window title.
Usually the title contains which application it is (e.g. Google Chrome, Microsoft Word, Visual Studio) and the document that's currently open (e.g. Example.doc, a website like google.com, or the project which is opened in the IDE).
Additionally for some applications we might get the path of the currently opened document. This can be either the url of a website or webapp or the local path of a file on your computer.
Choose the one that's best for you
Which of these approaches is best for you or your team depends on your requirements.
- How accurate does your time tracking need to be?
- How much money and time is your company willing to spent on it?
- What exactly are you going to do with the data?