One of the hardest things I face as a developer is to get the number of billable hours right in the timesheet. Traditional office work always meant to be hours present in the office to be equivalent to the number of hours worked as there was a structure and flow to the work. It is unfortunate that the knowledge workers fall into the bucket of hours of work at the workplace as a measure of billable work.
Knowledge workers have to do a good deal of home work to stay up to date. Any task at hand they pick, will involve some amount of deep thinking and application of knowledge. Thinking can happen anytime and not necessarily at workplace. Hypnagogia has provided me some solutions for some pressing problem, it is also famous for discovering Benzene ring structure. If a scientist can benefit (eventually monetary) from that kind of discovery, then why not we bill the time we spend in thinking about the problem in hand while waiting at the traffic signal lights or having a shower.
In the book Pragmatic thinking and learning, the author mentions about L-mode and R-mode of the brain; there is an example of that here. What we usually end up billing as a knowledge worker is what is done by L-mode, but the many of the inputs comes from the R-mode of the brain. The bias of billing for the L-mode makes people spend a good deal of time with tools rather than thinking about the solution and constantly striving to update themselves. It leads into a vicious cycle of working too long without success if the task at hand requires deep knowledge and application, which leads to more hours billed without any work done.
We should look at work as a whole outcome than measuring it in terms of man hours or lines of code. In that way it provides the individuals the freedom to plan their day and deliver effectively at their job.