How Harvest and DoneDone make time tracking accurate and low maintenance

Much like the origin of Harvest, DoneDone is a tool that spawned out of our own frustration when trying to manage a daily work task in a straightforward way.  In our case, it was trying to log and manage software bugs with our various client projects for our consultancy, We Are Mammoth.

When we began developing DoneDone as a side project in 2008, the landscape of web-based issue tracking software leaned heavily toward enterprise-level software for larger teams.  For smaller teams like ours, a disjointed combination of Excel spreadsheets and email was the general way to go. DoneDone, like Harvest, focuses on a digestible user experience for a very common, often tedious business task.

For the very same reasons, we adopted Harvest as our time tracker in 2011.

While I loved its simplicity, I wasn’t initially enamored by the idea of using the timer feature. Tracking my time on a minute-by-minute basis felt way too disruptive. On hectic days where I was solving bugs for multiple clients, it was easy to forget to stop and start a new time entry. By the end of the day, the timer had just sat spinning for the past eight hours, tracking an abyss of intertwined coding exercises throughout the day.

Tracking time had always felt like a zero-sum game: Tracking what I was doing at a very detailed level distracted me from working at the tasks-at-hand. But, leaving time tracking until the end of the day (or even week) meant my time was being tracked pretty imprecisely.  When billing by the hour, this wasn’t doing our company or our clients any good.

Clearly, something about my approach to tracking time against my code wasn’t playing nice with the tools I had in front of me.

When Harvest announced the release of the JavaScript plug-in, Jeremy (our front-end developer) and I thought we’d take the plunge and see what an integration between our issue tracker and time tracker felt like.  The integration is magnificently easy and slick (Well done, Harvest team!).

In about an hour, we had time tracking plugged into every issue in DoneDone.  In the comments section, you simply click the Harvest icon to reveal the time entry form for the issue you’re viewing. We decided to automatically populate the tracked time description with the issue number and title of the issue.  Here’s what it looks like:

Harvest time-tracking directly within an issue

Harvest time-tracking directly within an issue

With the timer implemented, some things began to magically change in my workflow. Here’s what’s changed since we released (and began using) the Harvest timer within DoneDone.

One thing at a time. No more multi-tasking.

Because I can easily track time on a per-issue basis, time tracking no longer feels like an extra task in my normal workflow.  Every time I begin working on a new issue, I click the timer and go. And since Harvest conveniently allows only one timer to run against a user’s timesheet, I can now freely track time against the next bug without having to stop the timer on the previous one. As I resolve bugs, it almost feels like I get the time tracking benefits for free.

More descriptive issue writing.

One thing we’ve always preached to our DoneDone customers are the necessary ingredients to writing a great issue. More descriptive issues (those that describe the problem, the details of the environment, the result, and what the user would have anticipated) generally lead to quicker resolution and less back-and-forth discussion. With Harvest integration, this becomes doubly important. Broader, less focused issues are harder to time track granularly. So, internally, we’ve doubled down on our issue logging descriptiveness so that our times more accurately reflect specific issues.

Better accountability with our team.

As seamless as the integration feels on the DoneDone side, timesheets are just as seamless on the Harvest side.

DoneDone-tracked time entries within Harvest

DoneDone-tracked time entries within Harvest

Clients and our co-workers can quickly access the original DoneDone issue on Harvest timesheets, which naturally will expand on the detail of work being done by the developer. This makes a world of difference for our billing department, who vet our timesheets before invoicing the client. In the past, we’d often have little context on our own hours because we weren’t descriptive in our notes. Lazy time entry description like “Worked on a browser bug” are mitigated because now we get the technical details by going to the linked issue.

As happy as we are with the UI integration of Harvest, we’re even more thrilled with how it’s truly change the experience of tracking time.  Time tracking now feels like a very natural part of daily work, and not a dreaded (and often inaccurate) extra task at the end of the day or week.

And, our customers think the same way too. Since we integrated with Harvest in December 2012, DoneDone customers have logged over 28,000 time entries into Harvest.

Ka Wai Cheung is a partner at We Are Mammoth, developer of DoneDone, and author of The Developer’s Code. Follow him personally on Twitter via @developerscode and read more at Life Imitates Code.