This is a daily question, for me, and I think one that is applicable to any professional programmer, especially those who, like myself, work for consulting firms and may have insane amounts of money billed for each hour they work.
How do you deal with the fact that if I get a call from my wife and talk for 10 minutes, that's $30 of my client's money down the drain? Or if I take an extra 20 minutes on my lunch break, I didn't really work an 8 hour day as my employer expects? What about checking email, even though it only takes 2 minutes? But what if I do it 15 times throughout the day?
Furthermore, due to the tools we're using at my current project, there are frequent 5-10 minute periods while waiting for something to compile. Is it unprofessional to go and read blogs while this happens, or should I really be working on some other trivial but related task while this happens? Or, as I have been tempted to do recently, multitask and do some research on my own projects in the gaps between my real work?
On one level, basic professional ethics would indicate that, while working, my time is not mine but my employer's and I ought to do nothing personal. But practically, that doesn't always work out so well in our field - the mind needs an occasional rest or diversion in order to perform optimally. And at any rate, where do you draw the line? Should I clock out whenever I go to the lavatory?
Plus, there's always the other excuses. For me, they tend to run along the lines of "But I'm still the most productive programmers here... Sure, I may waste ten minutes out of the hour, sometimes, but the clients are very happy with me, so what does it matter? Besides, it's a known overhead cost." And, of course, the perennial "But everyone else is doing it, and way more than I do. Hell, my boss spends over an hour every day on smoke breaks. Isn't reading programming blogs more profitable than that?"
All of these things are true, by the way. I don't struggle with self discipline, and I am doing very well in my current position. My employers and clients are very happy with me. I feel that I do get a lot of good work done. But I still feel guilty whenever I "waste time" at work.
What do you all think? I'm particularly interested in the opinions of any employers or those who pay for programmers' time.