views:

251

answers:

7

This is probably subjective as it is a dilemma between what is good for you and what is good for your customer, but I as a programmer, would really like to know what is the commonly accepted way of doing this. I will keep these answers to my question in mind for future projects.

I've personally never sold any of my work using a set rate per hour as I treat each project individually. However, if I do decide to set a price for every hour of work, would processing code (for example: compiling, downloading, uploading, auto-correcting/modifying) while walking with the dog or enjoying a cup of coffee count as "working"?

This example assumes that you can only continue working on the project when the processing has completed. Is it fair to keep the timer running during these hours of "work"? Absolutely not? Or is there a balance to be found somewhere?

+4  A: 

If it keeps you from doing any other paid work: Yes, definitely. If you would have walked the dog anyway: Probably not.

EricSchaefer
What if it's draining too much resources to continue using your system, which is what you prefer to do at that time, though you could still do some lower priority job using a pencile and paper?
Tom
It depends on your work. See it that way: You are not only selling your time but also your computers time.
EricSchaefer
@Tom: If it's interfering with other paid work, and you aren't on a personal task like dog-walking, it's paid work.
David Thornley
+2  A: 

Absolutely yes, unless it's a task that can be left to out of hours times.

spender
+4  A: 

As with most things, strike a balance. I would consider building a deployment package to be chargeable hours because you're still tying up resources in a significant manner that prevents you from performing other productive work.

I wouldn't consider nightly builds to be chargeable, however, because you're asleep- you wouldn't be doing anything else anyway.

Greg D
+12  A: 

Compiling, downloading, uploading are all valid work tasks that should be billable. However, if you are leaving to go walk the dog I would not count that time. However, if you are sitting in front of the computer drinking coffee while the code is compiling I'd consider that billable.

Taylor Leese
+1 good examples
peterchen
+2  A: 

So lets qualify this a bit.

Are your builds <1 minute? - Easy answer - Yes, bill it.

Are your builds >5 minutes? - Bill it, and figure out a better way to structure the application to allow for quicker builds.

Do you have time to walk the dog while it compiles, returning prior to it's completion? Stop walking the dog and fix your compiling issues. Refactor, refactor, refactor!

In general, yes, compiling time is billable time. As with long downloads, software installs, etc. The walking the dog comment might step into a gray zone a bit, but as long as you're not stepping away for 20 minutes when you build only takes 3 minutes, I'd say bill it.

levi rosol
How do you refactor a 500 kLOC C++ project so it compiles in under 5 minutes?
EricSchaefer
re-write it :) Seriously though, an effective way of reducing build times is to break up the application so that as a developer is working, they don't have to compile all 500k LOC. Obviously there are trade offs (project management, deployments, etc), but saving time during builds goes a long way to improving developer satisfaction.
levi rosol
+1  A: 

I assume you mean off-site at home?

If you mean on-site development, then start of work to lunch, and lunch to end of work = billable. There are employment laws that means you are entitled to splash your boots or grabbing a cup of tea. Even you are the hired help.

If you have to shovel coal in before you compile and it's unnecessarily long then I'd still bill because they should buy a developer's PC from this century.

It's all down to "reasonableness". I'd bill if I'm chatting to my colleagues (via chat program) or reading a blog or answering another SO question. But not walking the dog.

gbn
+1  A: 

A question that comes to mind while looking at this post and question / dilemma is : Would you find it billable and substantially justified if you were the cleint ??? Would you be OK to approve a categorically divided Bill from your programmer with these items in it ??

Of course this is on a radical tangent to sensible business bottom line thinking and I am surely not suggesting that stop charging the client. However, I think it is an interesting view to look at in terms of justification for the charge.

Please do not think that I am not in favour of making money but certainly wanted to you to consider this perspective as well.

Regards,

Andy

Andy