This post by Nick Hodges about Brain Time vs. Butt Time does a nice job of explaining the challenge in measuring developer productivity.
I’ll confess that these days I have little reason to track my time. I don’t charge customers that way, and while I used to do this to determine how accurate my estimates were, I don’t bother any more, in part because Nick is right that “Brain Time” is harder to track and often missed. This may be even more true for freelancers like me who aren’t rigid about my work hours. My kids are grown, and I often prefer to work during normal “off hours” because it can be more productive, and also that allows me to do things during work hours that others cannot, like run errands. (It is so much more productive to run to the grocery store mid-day when there are fewer people there than weekends when everyone is there.)
Also, I’ve found “productivity” is a poor indicator of value. For example: I’ve been learning a lot of new technology these days, some of it programming and some of it related to video production. Part of the learning process is running into problems and figuring out how to solve them. It can feel like I’m not very productive, because it takes a lot of work for little return. But over time, that learning will really pay off. So am I being productive? Yes! But it doesn’t immediately translate into cash. The value comes later, but it will happen.
I get why some businesses focus a lot on “productivity”, and try to measure it. But I’m glad my situation allows me to focus on value instead.