DEV Community

Denis Stebunov
Denis Stebunov

Posted on • Updated on • Originally published at


Effortless Time Tracking

Why use Time Tracking?

Time tracking provides knowledge about work time spent on particular tasks and projects. It can be useful for various reasons, for example:

  • Better project planning. When we see tasks take too long, it might be a good idea to check what's going on and maybe adjust our plans. Also, if we know how long projects took in the past, we can use that information to plan similar future projects;
  • Time-based billing, which is common for contractor work;
  • Cost attribution. For example, time spent on software maintenance and bug fixes can be treated as OpEx (Operating Expense), and time spent on building new projects and features – as CapEx (Capital Expense). Financial management can be interested in these numbers for investment planning and tax accounting purposes.

Traditional solutions

Jira – Log time on an issue
Source: Jira – Log time on an issue

Time-tracking software typically relies on two main techniques or a combination of them:

  • Manual entry – people enter work hours manually for each task (or manually start and stop a timer);
  • Automated – users install tracking software that creates record entries based on their actions.

As usual, there are pros and cons. Manual entry significantly increases overhead. People may forget to update their records, or do it late or inaccurately. Automated solutions can be perceived as an intrusion into privacy (and rightfully so).

Besides, tracking based on user actions has some limitations and it doesn't account for all types of actions. For example, thinking about a task or brainstorming ideas on paper doesn't require a computer and can't be tracked automatically.

For many software development teams, the overhead caused by time tracking is not outweighed by its benefits. Developers aren't happy to enter work hours manually and would hate to install some "time-tracking spyware" on their machines. Therefore, many teams just give up or don't even try. But what if there was a fully automated, reasonably accurate, and privacy-friendly solution? If it takes minimal effort – wouldn't it be nice to know how long our tasks take?

💡Can't we get it from an issue tracker?

Nearly all modern software development teams use some issue-tracking system. Such systems use the concept of "in progress" task status. In theory, if we analyze the change history of an issue and add up all the periods when it was "in progress," we'll get the total time spent on the task.

Moving a task in progress

Well, not so fast. First, the information in issue trackers doesn't always match reality. Sometimes people forget to put a task in progress or just don't want to create a task if it's something minor. Or, they may have multiple tasks in progress; in this case, it's not clear what they're actually working on.

Second, such a method may be highly inaccurate without information about the work schedule. Suppose someone puts a task "in progress" and, on the next day, leaves on vacation or becomes sick. The task status may stay "in progress" for many days before the work resumes. Even on regular work days, an issue tracker receives no input on the actual moment when people start and end working. Today, many teams are remote-first, can be spread across multiple countries and time zones, and enjoy flexible work schedules.

Our approach

Despite the challenges outlined above, the idea of using an issue tracker to get the information we need is appealing. Having accurate task statuses is valuable on its own since it helps teams to stay in sync and reduces the need for status meetings. Teams that keep their issue trackers in good shape can get time tracking easily and effortlessly.

When we started working on the Effortless Time Tracking feature, we already had the main ingredients in Teamplify:

  • Integrations with the most popular issue trackers – Jira, Trello, YouTrack, Linear, and GitLab issues;
  • The Smart Daily Standup bot, which besides other features, helps teams keep their issue trackers up-to-date. It analyzes the team issue tracker and politely reminds people to update issue statuses if needed;
  • Built-in Time Off management system.

So we combined all of the above, added some magic, and voila – fully automated time tracking is here:

Our approach

What is great about this method is that it requires no additional setup and is privacy-friendly. Issue statuses and work schedule information are shared with other team members, and we're not asking for anything beyond that.

Of course, one size doesn't fit all, and this approach has limitations. We're making some assumptions about daily work schedules, and the accuracy is usually limited to a fraction of a day (and that's why we measure it in days and not hours). Therefore, we wouldn't recommend using it for time-based billing, which usually requires more accuracy.

However, it can work pretty well for teams that would like to have a general understanding of how long tasks take to improve their project coordination and planning. And the silver-lining of its slightly limited accuracy is that it minimizes the potential side-effect of this tool being perceived as micro-control. Better project planning is important of course, but being comfortable at work is important too.

Give it a try

Effortless Time Tracking is available on all Teamplify plans, including the Free plan. You can see how long tasks take in Team Analytics and also in Smart Daily Standup (for current tasks in progress). Give it a try – get started today!

Top comments (0)

Timeless DEV post...

Git Concepts I Wish I Knew Years Ago

The most used technology by developers is not Javascript.

It's not Python or HTML.

It hardly even gets mentioned in interviews or listed as a pre-requisite for jobs.

I'm talking about Git and version control of course.

One does not simply learn git