Elegant solutions

Developers are always thinking about how to find elegant solutions to the problems we face every day. Whether it's automating the mundane process of setting up an environment, using version control to work seamlessly across large teams or streamlining our workflow with nifty keyboard shortcuts and macros. We constantly experiment with Agile methodologies, sprint planning, and Kanban boards. However, the simple task of keeping track of our time seems to elude all of our futile attempts at an elegant solution. 

Whether you are a programmer in a large corporation or a freelancer you need to be able to keep tabs on how long you are spending on different tasks. Time tracking is important not only for billing customers but also for a business to gather insights. Whether it's your clients or your manager, you always have someone nagging you to keep accurate timesheets. If you're like me, you dream of being able to spend many beautiful uninterrupted hours deep diving into a developing new feature or fixing a bug with no distractions. Keeping on top of my timesheet interrupts the precious programming flow state. If I leave it to the end of the day or the week, I'll have forgotten what I was doing and end up piecing together a questionable timesheet out of my browser and Git history. If I keep adding to my timesheet as I go I run the risk of losing focus of the task at hand, losing precious mental overhead to constant context switching. I just can't seem to win.

Automation 

"Why do you have to tell your computer what you were doing on the computer?" 

This is the basic idea behind automated time tracking. We should just be able to generate a time sheet from a recording of all of our interactions with a computer right? That seems like the elegant solution we have been looking for. Job done. Unfortunately, we have huge privacy concerns with that kind of totalitarian surveillance. I think a lot of developers like me aren't comfortable with having all of their interactions recorded by a desktop app or by their employer. This kind of 'watching over your shoulder' does not foster the kind of trusting and honest working environment that I am proud to be a part of. Even for employers, it is not exactly ideal to have potentially sensitive company information being stored and analysed by a third-party time recording app. 

As a developer, I want an automatic time-tracking tool that is tightly integrated into the trusted software I use every day. I don't need every interaction recorded, but I do want the critical moments to be tracked in the places where I get most of my work done.   

Made by developers, for developers

And that's where we hit upon the idea for EasyTime – a tool designed to address these very frustrations. EasyTime is a plugin for Jira first and foremost, but we have a growing number of integration plugins that can track those critical interactions from wherever you spend most of your time working. As a plugin for Jira, we are able to record work logs against the issues that you and your team are working on. While you are viewing an issue, commenting on, or resolving an issue our automatic time tracking will unobtrusively kick in. While this works great if you spend a lot of time in Jira, this is only one part of the suite of tools we offer. EasyTime for Jira is the centre of operations where time is logged for all of our integrated plugins.

Please note that for now all of our integrations only currently work with EasyTime for Jira Data Center or Jira Server. We are currently working on connecting integrations to the EasyTime plugin for Jira Cloud.

EasyTime for Bitbucket 

Atlassian's Bitbucket is already neatly integrated with Jira. I can start developing a new feature or fixing a bug by simply creating a git branch from within a Jira issue. This is why we have made EasyTime for Bitbucket which closely integrates with Jira too. Version control is arguably the most important tool for a developer, especially for working in a team. I spend a good chunk of my time in Bitbucket whether that's giving or receiving feedback, or just pouring over the details of the diff on a pull request to find bugs or conflicts. It's handy to have an EasyTime for Bitbucket plugin where all of this time is automatically tracked. So how does it work? 

EasyTime for Bitbucket tracks time spent looking at, reviewing, and commenting on pull requests. It automatically detects a Jira issue key in the title of your pull request and sends the tracking information back to Jira so that work is logged against the correct issue.  

Recently I took over a new feature on this plugin, which we referred to as 'continuous tracking'. This feature detects you are active on the page for a pull request and after a short period, it starts tracking your time. This is a noticeable difference from how it previously worked where time was only tracked during key events such as commenting and starting or ending a review. We found that this didn't capture the whole picture of the time we were spending on pull requests. A lot of the time simply reading through previous comments and looking at the diff without necessarily starting a review. 

We've also added pop-ups to our Bitbucket integration that let you see when your time is tracked. This gives you more control without having to leave Bitbucket with new options to undo or pause tracking. These pop-ups are already one of the key features of our Jira plugin. Getting this instant feedback that automatic time tracking is happening can reassure us and allow us to focus on the important work without any timesheet anxiety. We understand that not all of you want pop-ups like this though and we are working on having a configuration option to disable it in Bitbucket just like we have in Jira. 

Beyond Atlassian

Although I spend part of my day checking my board and looking at issues in Jira and reviewing pull requests in Bitbucket, I spend most of my day in other tools where I actually code, test, and debug the products that we make. I am fortunate to work in a team where I get to work with a huge variety of tools and platforms. I enjoy the breadth of work that I get to do, but unfortunately this means that EasyTime for Jira and Bitbucket is only able to capture a small part of my work as a full stack developer. We don't think an effective time tracking tool should force you to change your behaviour. This is why I was thrilled to hear that we have started to expand beyond Atlassian's tools to make sure all of our teams' time is being recorded automatically.  

EasyTime for Visual Studio Code

I use VS Code as my primary text editor for writing code. Most of my time as a developer is spent here, especially when I'm working on the front-end code in Javascript or putting together a quick script in Python. We recently finished working on another integration plugin for this. Our VS Code plugin works quite simply by detecting which branch you are on and looking for an issue key in the branch name. I've had this plugin installed for the last few weeks and I've watched all the gaps in my timesheets fill up with accurate logs of my time spent on various coding tasks. It was very easy to install from the VS Code plugins tab and edit the settings to add my username and token to link it up with Jira. Now I can trust that while I'm deep in the zone my timesheet will be taken care of. 

EasyTime for IntelliJ

Another tool I use every day for development is the JetBrains IntelliJ IDE. The built in debugger and code completion tools help make writing Java code almost bearable. Since at TechTime most of our backend code is written in Java, I inevitably spend a lot of time in IntelliJ. I learned Java during my computer science degree at Victoria University of Wellington, but after a couple of years making web apps using JS frameworks I found myself a little out of practice when I started at TechTime. Although I've become a lot more confident writing Java now, one of my main goals is to become as proficient and quick with Java development as I am with something like React JS. 

Since Java development is such a big part of the work we do at TechTime it made sense for us to make another EasyTime integration as an IntelliJ plugin. This plugin works in a very similar way to our VS Code plugin. Simply ensure that your branch name corresponds to contains a Jira issue key and your work logs will appear in Jira while you write code in the editor. I will often switch between working on the frontend part of a feature in VS Code and delving deep into debugging some part of the backend using IntelliJ. This plugin ensures that all of that work is captured in my timesheet without me having to change my behaviour at all. 

This plugin for intelliJ still isn't available on the intelliJ marketplace, but we're working on getting this to you as soon as possible. Watch this space!

EasyTime for your browser

During my day as a developer I spend a lot time in my web browser doing all the other things that support my development work. For me a lot of this is using google's suite of office tools, especially the calendar, google meets, and google sheets. EasyTime has a browser extension available for chrome and edge that scans your history for issue keys. If it finds one it just sends this information back to Jira to log work under that issue. For me this really helps to fill in the gaps in my timesheet, picking up things that the other EasyTime integrations might have missed. 

Try for free

Talk to your system admins about installing EasyTime on your Jira and Bitbucket from the Atlassian Marketplace now. The other integrations you can install yourself from the appropriate marketplace - VS Code, Chrome, and Edge.  If you have questions about EasyTime or about how we do development at TechTime feel free to get in touch.   

Try EasyTime For Free!

Try for free



Return to blog