Why Software Developers Should Track Their Time
Time tracking is a surprisingly controversial topic among developers. Some swear by it, and say that it improves their productivity and helps them increase their ROI. Others say that development isn’t the type of work that benefits from detailed time tracking.
Similarly, some developers say that they enjoy switching between a variety of projects to stay fresh (in which case time tracking becomes very useful). Others say that development is best served by focusing on a single project for big chunks of time—so time tracking isn’t necessary.
But as fewer development jobs are focused on hiring full-time, in-house employees, and companies switch over to freelance and contract developers, time tracking is on the minds of the development community.
When used correctly, time tracking can be a fantastic way for developers to increase their productivity, improve their relationship with managers or clients, and—for freelancers—set themselves apart from the competition.
Let’s take a look at how those things happen.
Increasing development productivity with time tracking
Measuring productivity in the knowledge economy is difficult. We can’t simply divide the number of items produced by the hours worked, like we could back in the days where most people worked in factories.
Instead, we have to come up with new ways of defining and measuring productivity. And while some people have tried to define effective ways of tracking developers’ productivity, few people have come to any sort of agreement on what’s best.
The number of hours worked is a simple way to measure productivity . . . though anyone who’s worked in an office knows that the numbers of hours you spend at work might not be correlated at all with how productive you are.
What about lines of code written? That seems like it might be an okay way to measure develop productivity. But when you realize that different types of coding take different amounts of time, that debugging and writing code from scratch give you very different results, and that sometimes you have to do a lot of research before you can write any code at all, this measure starts falling apart.
Story points, bugs and defects, and the impressively arcane function points all fall apart when you start considering them as measures of developer productivity. So much so, in fact, that some people maintain that developer productivity is a myth.
But time tracking is different. It’s not as blunt a measurement as hours worked, but it’s not as unnecessarily complicated as function points. It shows you how much time you spend on various things in your workday.
For a developer, that might be split between writing code, debugging, researching, analysis, and the other things you do every day. This doesn’t provide a quantitative measurement like story points or bugs closed—but it gives a manager insight into what’s being done on a daily basis.
At Hubstaff, we also track activity level, as measured by clicks and keystrokes. Obviously this isn’t perfect—if you do a lot of reading for a particular project, this measure is going to say that you didn’t accomplish much. But when looked at over time, it can give managers an idea of how much work you’re doing.
And on the non-managerial side, time tracking can be very motivating. I track my own time on a wide variety of projects, including ones that don’t require it. I’ve found that it really boosts my productivity—I spend more time working, and less time getting distracted.
(Seriously; give it a shot—you might be surprised at how much more you get done when you’re tracking what you spend your time on.)
Improving relations with management and clients
It can be really hard to get people to agree to having their time tracked. Employees often feel like they’re being spied on, or that management doesn’t trust them. And it’s understandable—no one likes the feeling of being observed.
But what time tracking really does is to increase developer accountability. And that’s good for everyone.
If you’re doing your job, increased accountability is nothing to be afraid of. In fact, you should welcome it, because it means you’re less likely to be micro-managed. Managers can look at your time-tracking records instead of calling meetings all the time to find out what you’ve been doing and how the project is coming along.
Combined with a good project management system, time tracking can actually reduce the amount of time developers and managers spend on administrative and communicative tasks.
Managers are more confident that they have a handle on what their developers are accomplishing. Developers spend less time explaining what they’ve done. Everyone spends more time moving their projects forward. Again, good for everyone.
Time tracking is similarly beneficial to freelance developers. If you charge by the hour, it’s reasonable for a client to expect you to prove that you were working for the time that you’ve billed. Using an effective time-tracking solution is an unobtrusive way to do that.
Some time-tracking apps even take random screenshots, so clients know that you were working when you say you were (though if you’re delivering things satisfactorily and on time, there’s no reason for them to check up on screenshots in the first place).
If two developers have similar credentials, but one promises to accurately track, report, and bill time with a dedicated solution, which one do you think a prospective client is going to hire?
Set yourself apart
Landing clients is one of the hardest parts of being a freelancer, especially if you only have a few years of experience (our recent study shows that around five years of experience, you can start charging more . . . so you’ll probably have a better chance of landing gigs, too).
Before you can leverage your years of experience, what can you use to set yourself apart? A degree in computer science? Certifications? A few portfolio projects? Everyone can provide those.
But if you can show that you’ve used quantitative measures to track and improve your productivity (and, therefore, efficiency), you just might find clients begging to hire you.
When someone hires a freelance or contract developer, they’re looking to get the most for their money. They know that paying bottom-dollar is going to get them sub-par results. But they’re also hesitant to shell out more cash for a developer who can’t prove his or her chops.
If you combine evidence of your efficiency from time tracking with a solid portfolio of work, you’re going to start hitting homeruns with your client pitches. It’s that simple.
Now that you’ve seen the sundry benefits of time tracking, you might be wondering how, exactly, to go about it. Fortunately, there are a lot of free apps out there that are easy to use and do most of it automatically. The easier it is to learn to use these apps, the faster you’ll be able to start tracking your time and seeing all the benefits discussed above!
Some, like WakaTime, are designed specifically for developers. Others, like Hubstaff, Toggl, Harvest, and RescueTime, are more general in nature. And they all have different strengths.
Hubstaff, for example, brings many team management features to the mix. Toggl has a built-in pomodoro timer and a very simple interface. TimeCamp uses automatic task detection to figure out what you’re working on.
All of them integrate with many popular tools that you’re probably already using, like Trello, Slack, Freshbooks, Basecamp, GitLab, and Pivotal Tracker. You can even get direct integration with GitHub—Hubstaff lets you track the time you spend working on specific issues within your repository.
The best thing you can do is to grab a free app, download it, and start tracking. (Because I work at Hubstaff, I’m obviously partial to our time tracker, as we built it to be the best option out there. But everyone has their own preferences.) If you find that a particular app doesn’t suit you, try another one!
Some people even prefer to track their time manually, but writing down what they’ve been doing in 15- or 30-minute increments and storing that information in a spreadsheet. While that sounds particularly difficult to me, it’s always an option if you prefer to avoid the automated apps!
Yes, I know. Time-tracking seems like a lot of work, and it feels really weird at first. But let me tell you—from personal experience—that it’s really not as difficult as it seems, and that you get used to it very quickly.
The benefits of time tracking are huge for people in a wide variety of fields. Many developers think that it’s not a viable way of tracking productivity . . . or that measuring productivity in development just isn’t possible.
But I can tell you that it will make a positive difference in how you work. Whether you’re proving to your manager that you don’t need to be micro-managed, improving your productivity to set yourself apart from your colleagues, landing clients with great data, or just trying to figure out how you spend your time so you can be more efficient, time tracking will help.
And with all of the free options out there, you really have no excuse to not try it. Give it a shot—you don’t need to track everything you do in 30-second increments. Just think of four or five different categories of things you do in your job. Writing code, debugging, testing, research, coordination, client communication . . . any of those can serve as good general categories to get started with.
Then just start tracking. Try it for a week, and I think you’ll be surprised at what you find. You might be spending more time on particular tasks than you realized. You might not be working as much as you thought. Maybe one project is dominating more of your time than it should be.
Whatever the case, you’ll get actionable insights that you can use to improve your productivity. And who doesn’t want that?