Live data from Hacker News

How Not to Do Time Tracking for Software Developers

7pace.com

71–80 of 136 posts

Re: How Not to Do Time Tracking for Software Developers

#72
post #59

Tracking time is part and parcel of being a consultant, at least if you have multiple clients and overlapping work. After doing it for 15+ years, I've tried it all - everything from the spreadsheet, to the apps, to forgetting and having to go back and reconstruct. I read this article and I think it's missing the point about what's so hard about time tracking. What's hard is: Implementing the trigger on the context sw…

I have this in a cron:

  * 08-23 * * * ~/.local/bin/with-i3 '~/.local/bin/record-active-window'
this is record-active-window:

  # set LOGFILE to whatever place you want to record things.

  echo "DATE = $(date +%s 2>&1)" >> $LOGFILE
  echo "IDLE = $(xprintidle)" >> $LOGFILE
  xprop -id $(xprop -root  _NET_ACTIVE_WINDOW | sed 's/.*# //') WM_CLASS WM_NAME 2>&1 >> $LOGFILE
this is with-i3

  #!/bin/bash

  source 
I was too lazy to figure out what env vars were missing from the cron (probably dbus socket) so i copied them all from the i3 process above

That plus the habit to lock the screen while I'm away from it works fairly reliable.

edit: you also have the idle time in case you want to ignore result where you've been idle for way too long (forgot to lock screen)

edit2: a sample log entry (idle is in miliseconds, date is unix timestamp in seconds)

  DATE = 1550608681
  IDLE = 2456
  WM_CLASS(STRING) = "google-chrome", "Google-chrome"
  WM_NAME(UTF8_STRING) = "Edit | Hacker News - Google Chrome"
If only Slack changed the window title when I change chats, I could also track how much time I spend talking where :) The web version does it though, so I might stop using the electron app...

Re: How Not to Do Time Tracking for Software Developers

#73
post #11

Earlier quoted context omitted.

If in the US definitely a company fail to inform. Done properly developer salary supported by time records can help qualify some portion of the salary for the R&D tax credit. At least that's what they tell us where I slave (a $FORTUNE_500) Where things fall apart for me is logging overhead time, like time spent waking up with the first cup of coffee while reading company emails or doing IT-ish tasks on my dev system.…

Ugh. I don't ever want to work for a company where my time tracking has to be so fine grained that I have to log bathroom breaks. Holy shit that sounds like a nightmare!

Usually its not that you specifically need to log your bathroom break, but rather that all your time you spent at work needs to be booked on _something_

Re: How Not to Do Time Tracking for Software Developers

#74
> It’s like the company’s way of saying, “Sure, we trust you to do your job….but–just in case–we’re watching you.”

This feels hyperbolic. There are legitimate reasons to measure time spent, and it doesn't amount to lack of trust. And similarly, failure to meet time expectations doesn't amount to shirking or lying.

That said, I personally think it's wise to track your own time for a variety of reasons, one of which is to have some defense against someone else's measurements.

I worked at a game studio where the employees were on average reporting 60+ hours of work. The managers wanted to verify the survey data, so they implemented opaque time tracking (meaning they didn't show the employees the data, and they anonymized the data and didn't use it to come down on individuals, only to collect aggregate information.)

The result was that employees were factoring their commutes as well as optimistic expected arrival and departure times, and fairly dramatically over-estimating how much they actually worked. The average was much closer to 40, and 25% of the company was working less than 40 during final production crunch. I personally tracked my own time at the same time, and it turns out I was also working less than I thought. There's no doubt that crunch feels like more work, but measuring revealed a discrepancy between feelings and reality.

Re: How Not to Do Time Tracking for Software Developers

#75

There is no technical fix that will make managerial time-tracking less of an exercise in control and relentless optimization at the expense of the developer. If you want to preserve some autonomy and dignity, you need to fundamentally restructure the relationship between yourself and management (like with, for instance, a ~union~).

I think this bears some elaboration because I feel the same way, but if we don't talk about _why_ we feel this way, it looks like we're spending our time playing video games and pretending we're working. ("After lunch I just... space out... for a couple of hours. But it looks like I'm working!") I spend a fair amount of time reading documentation; no matter how many programming languages or tools or environments I know, there's always something new to learn. This is true whether I want to learn something new or not - even if I were comfortable just using the stuff I knew when I graduated college, I'll eventually inherit or have to work with something that somebody who knows something newer wrote. As a result, learning new things, reading documentation, experimenting with unknown systems is part of the job - which is completely unappreciated. When I was younger, the managers would ask me what my plan for accomplishing task "X" was and I would start with, "Ok, the first thing I need to do is to learn the environment" and invariably they'd go apeshit when I suggested that I "waste" their time and money on something as pointless as "learning". If I was competent, I'd already know this stuff, and admitting that I needed to waste time reading documentation was sort of an admission of weakness. Of course, being young and naive, I'd try to reason with them but after years and years of having the same circular arguments I finally learned to give bland, inane responses like "research" and avoid giving specifics.

Re: How Not to Do Time Tracking for Software Developers

#76
post #10

If you are an emacs/org-mode user, it's quite easy to clock in and out of tasks as you work, and generate summary reports of your time. I've done this with good success when I was required to track my time. If I'm not required to do it, I find that I just dont bother.

I used to have that problem but now that I'm freelancing, I actually take care to always have an active clock running on a task I'm working on. It's even improving my focus in a way - I have a constant reminder in my mode line (both in Emacs and in WM) what I'm focusing on.

The key to making this work, when I couldn't make it work in Jira, is lack of friction. In Emacs, if I want to switch tasks I'm working on, it takes the following sequence of keypresses:

  C-a a -- switch to Org Agenda
  C-s taskn...  -- find new task "taskname" via incremental search
  i -- clock in, automatically clocking out the previously active task
  s -- save all open org-mode files
  q -- close Org Agenda window
It's in my muscle memory, and I can do that faster in there than it takes for a single Jira page to refresh (reason #123 I prefer desktop native over web apps, and don't consider the latter as proper tools).

Re: How Not to Do Time Tracking for Software Developers

#77

Haha, Apparently how not to host a website giving tech advice includes having SSL certificate error on the website

He had to choose between meeting his sprint "commitments" and keeping the website available. He prioritized just like management told him to.

Re: How Not to Do Time Tracking for Software Developers

#78

I'm curious if anyone here has had success with more "coarsely grained" time tracking? I've found that I'd have no issues tracking my time by day or at most half-day increments, especially since for the most part that's how I end up working on things in a lot of cases (as a developer, not a manager). I feel like it would give most of the same benefits with a magnitude less work, but I haven't ever tried it out in a r…

I was thinking the same thing about 72 hours ago, I mean 3 days ago. In certain fields, like filmmaking, freelancers don't charge by the hour. They have a day rate. You pay them for the whole day or not at all. Some let you hire them for half a day.
Post reply on HN