views:

857

answers:

10

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.

+6  A: 

I have to be honest I'm not working for every billable hour but then again I don't bill for the fact 24 hours a day I am solving their problems, at least subconsciously, for all the sleepless nights their problems have given me, or for the times I wished I could forget about their problems for ten minutes and enjoy some time with my family without them interfering so all in all I think 'they' get a good deal.

sparkes
+2  A: 

An hour of a programmer's time has been determined by the market. If that involves 10 minutes of coding, and 50 minutes of surfing the 'net, that's what it is.

Ideally, you're not getting repeat work as a contractor at the rate you want if you're not fulfilling your obligations in the specified budget, like doing 10 minutes of coding and 50 minutes of surfing every hour.

Baltimark
A: 

lol @ clocking out to use the lavatory. Unless you work in an assembly line...

Tundey
+1  A: 

I think most employeers would see the value in letting you go to the bathroom. After all, you can't code when you are fidgetting. :) But seriously, they know you are not a machine and don't expect you to be one. Almost all contracts I have been on are far more concerned with the progress of the project in a macroscopic way than what you did between the hours of 11 and 2. Of course there are exceptions to that rule.

Craig
+7  A: 

This is a great question - one that I've often wondered about. I'm in the same position. I feel guilty if I do things like talk on the phone or use the restroom or grab a(nother) cup of coffee.

I try to minimize the time I spend doing non-work-related things. However, I'd categorize reading tech blogs (and Stack Overflow) as a work-related thing. I realize it's not directly contributing to the bottom line, but it is important for me to be the best programmer I can be. Reading tech blogs (in moderation) can help me to be a better programmer. Judging by the people I know who read tech blogs and those who don't, I'd say the ones who do are generally better programmers.

Though reading blogs is good, I need to limit myself so that I am still accomplishing the work that's expected of me. My client wants me to be a good programmer, yes, but they also want me to get work done.

Josh Brown
+2  A: 

I think it's called the E-Factor, i.e. the ratio of uninterrupted (In the Zone) hours to the total working hours.
No one has 1.. I think if you've a ratio of 50%+, you're pretty good - So measure yourself every once in a while - remove distractions if your e-factor goes down. If you find a recurring distraction, take steps to curb it.

But for payrolling, I think you're gonna use the total working hours :).. practical.

Gishu
+21  A: 

I'm a contractor and I bill the hours I work. I use a home grown app to track my work periods and I apply common sense to what is billable and what isn't.

  • I usually don't bill for cigarette breaks, unless they are taken with another member of the team where we exclusively talk about imminent work.

  • I bill for time waiting for compilation and deployment even though I spend some of that time reading coding blogs (although I wouldn't read anything that wasn't work related such as news sites). I tried multitasking with two instances of Visual Studio using two separate repositories of code during build + deploys but it got so complicated I ended up making mistakes (checking in against the wrong repository etc) and it wasn't worth it in the long run (as the mistakes and context switching took up about the same time). As far as i'm concerned the tools being used by the employer justify this as a billable expense.

  • If I take an extra 20 minutes for lunch then I don't bill. That's my time.

  • If I take a personal call, I don't bill.

  • Getting coffee is billable so are toilet breaks (as long as they're < 5 mins) as drinks and toilet breaks are human essentials and if you don't want to incur those costs then don't employ humans!

I do know that a lot of contractors take a more liberal view and bill even for cigarette breaks when they're discussing non-work related issues. In my opinion that isn't professional.

At the end of the day I want the distinction to be clear, if some demon HR manager is going to give me grief about a cigarette break then I can explain that it isn't an issue because I am not billing.

  • I didn't bill for writing this. :)
Quibblesome
+8  A: 

By taking necessary breaks during the day, you are delivering greater overall value. No one can consistently focus at optimal levels for eight nearly consecutive hours. Periodically resting your noodle makes you much more effective in the long run.

Billing hourly is simply a gross approximation of the natural cycle of bursts and lulls in your productivity. Unless you're mopping floors or assembling identical widgets, no experienced employer realistically expects you to provide exactly $n of value each minute.

Instead of that phone call costing your employer $30, it's just as likely that you went on to provide $36 worth of productivity for the next five periods of ten minutes.

Dave Ward
+1  A: 

If I bill X hours I make sure I worked those X hours. The way I look at it, the 10 minutes I might spend going to the bathroom or walking to get another cup of coffee is balanced by the time I spend when I'm not billing that I'm thinking about a particular problem. If lunch runs over, say from 12-2, then work runs over by the same amount of time or I don't bill for it. While I'm typing this I'm running some sql on a remote server (I'm doing this on my home machine). Execute query - while waiting for query feed SO addiction - query comes back stop typing and work.

Chuck
most humans aren't so good at the "stop typing and work" bit.
Dustin Getz
+2  A: 

One thing to consider: do you think about your contract work while driving or showering? Thought so. I know, its ubiquity depends, but note this as an offset to clocking off during bio-breaks. I'm on the clock when my feet are in the building (unless I take an in-building lunch break or an explicitly non-work interaction greater than 10 mins), and I seek to check email during slack times. I certainly save emails that require thoughtful responses for after hours because it takes time to switch contexts completely back to work.