I’m looking for a tool able to automatically track the time I spend coding. A plus if it detects also the programming language I’m coding in (even if it’s a simple approach based on looking at the file extension instead of something more accurate like the GitHub’s Linguist language savant or Enry).
It turns out, the number of programming time tracking tools is rather limited. Sure, there are tens (hundreds?) of time tracking tools out there (I use toggl), but very few have explicit support for coding related tasks. These are the ones I found (pls, point me to the ones you use if not in the list).
WakaTime
WakaTime is by far the most well-known tool in this area. With Wakatime you know exactly how long you spend coding. The tool automatically tracks when you start and stop working, with detailed metrics per: project, file, branch, commit, feature, operating system, editor/IDE or language, that are then presented in your private dashboard with a number of useful charts and project usage stats, commit metrics
and even a leaderboard that adds “gamification” to the process by showing how well you fare against your fellow programmers
WakaTime has a free starting plan but you’ll need to pay for more advanced features. On the Pro side (beyond all of the above), WakaTime is compatible with basically all editors and languages you could ever use.
CodeTime
CodeTime is a solution specific for Mac users. It’s completely free but also much simpler than WakaTime. CodeTime monitors your file changes and adds up how much time you spend on each language. CodeTime has also a status bar app that keeps track of the amount of time that you have worked each day but lacks most of the reports and gamification aspects of WakaTime. Still, if you are fan of free and Mac-specific tools, CodeTime could do the trick
Coding Tracker
CodingTracker is a Visual Studio Code coding tracker. CodingTracker is defined as a VSCode extension. Basic behavior is like previous tools: you can know how much time you spend on each project/files/computers/languages/branches. Beyond its tight integration with Visual Studio, this tracker may be especially useful to Chinese speakers since it supports both simplified and traditional chinese. Moreover, it’s fully open source (see the CodingTracker GitHub repo).
CodeAlike
Last but, definitely, not least, CodeAlike is more than a simple time tracking for your coding activities. And that’s what I like the most about this tool. Sure, you still get the time you spent coding and the distribution of that time per language/technology, but its focus is really on analyzing your coding from every possible angle so that you better understand how you code and how you could improve your productivity.
As an example, CodeAlike shows your “focus curve” where you can see how many times you got interrupted while coding. Or, it can explain to you whether you spend most time coding, debugging, reading or building your code. The following 2-min video will give you a great overview of what CodeAlike could do for you.
As WakaTime, it has a free plan but you’ll have to subscribe to a premium plan to get advanced features and team dashboards.
Code Time
Code Time is an open source plugin for automatic programming metrics (and no, it’s not the same CodeTime mentioned above). It started as a VS Code extension but it now integrates with a variety of other IDEs. Some of the metrics they compute (see also the image below) are the programming time, the lines of code, the number of keystrokes, the main languages,…
They also help you to identify your ideal programming hours (i.e. those where, according to your programming history, you wrote more code) so that you can then try to “block” and “protect” those time slots. Some of these data is calculated and visualized via the web app linked to the plugin you install on your IDE (which means that you need to be online while using this time tracker).
For now, they provide 90 days of data history for free (and they commit this will always free forever but in the future, they will provide premium plans for advanced features and historical data access).
CommitSheet
CommitSheet is a free tool to automatically generate timesheets from a GitHub project. It basically looks at the history of the commits in the project to create a report sheet like this one:
The tool is still in its early stages. For instance, right now is more of a “Git time tracker” than a “GitHub time tracker” since it doesn’t seem to track other project-related activities (like interacting and managing open issues) beyond development-oriented tasks. And, of course, it cannot calculate how many hours did you actually spent on a certain task (it just assumes that if you work X hours a day and there is a commit that day, you spent X hours working on it).
Still, a nice complement to some of the tools above.
(featured image by frankieleon )
There’s a real danger to software productivity and quality, if automatic coding-time trackers were ever mandated by management to assess programmer productivity. I have yet to encounter a quality programmer who can think out a good analysis and quality design while typing code.
Just to clarify, I don’t pretend to suggest that you could use these tools as the main factor when evaluating productivity, quality or any other metric of your team of developers.
I’ve extensively used time tracking tools for a few years now, but just for myself, not for a boss or to decide how much to charge a client. And I’ve learnt a lot about myself and the way I work in the process. Examples would be to realize that some types of tasks take much more time than I thought (so I need to say NO more often to those things), whether I’m able to block time slots for uninterrupted work,…
Quote: When a metric becomes a target, it ceases to be a good metric.
when a metric becomes a target, you become the target.
I recently launched a new time tracker for developers https://www.codermirror.com/. Currently it supports only Jetbrains products, but provides unlimited data history for free and allows to create custom reports.
The plan is to add with each iteration new reports focusing on each aspect of software development, trying to give hints to coders on where they might have room for improvement.
As Lee mentions, indeed there’s a theoretical danger of misusing these kind of tools by managers, howeve I’ve only came across with coders interested in self-improvement.
In TimeCamp, we recently released a brand new plugin for Visual Studio that helps track time spent on VSTS without leaving the app using a button. You can find it on VS marketplace: https://marketplace.visualstudio.com/items?itemName=Timecamp.timecamp-time-tracking. Hope it helps!
Ola at TimeCamp
For time tracking let me also suggest ProofHub here. It’s a great tool for saving time on Project Management. It eliminates the need of having too many different tools to run your business. It is designed in such a way that appeals to creative and technical teams.Projects are grouped under various attributes like – Workflows and Boards, Proofing, Reports, Gantt Charts, Time Tracking etc. Try Once!
TMetric would make a helpful alternative to the tools covered in the post. It’s a solution for time tracking, project and task management, reporting, and much more.