Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

For those of us in consulting OR settings where you bill your hours whats the consensus on this?

Should a client be billed for a certain amount of the learning curve? Should your employer be picking up the tab on overhead? Should it be you yourself the developer? Or perhaps a combination of all 3?

I am conflicted on this - I've heard it being said both ways - that a client (or project budget) should not have to include the inefficiency of a lesser experienced programmer. And again I've heard it being argued that people learn on the job so projects should include a certain amount of training budget.

I usually find that I (and other devs that I work with) work off hours or weekends reading up on technology , design patterns etc, sometimes struggling with a small piece that may go beyond contingency budgets - so most projects that we work on take up a bit more of our un-billed time than whats budgeted.

I thought I'd open it up to the Stack-exchange hive mind for more insight from folks with much more experience. I am going to post the same question on the Project Management StackExchange and look at the delta.

share|improve this question
add comment

3 Answers

It really depends. If the client wants you to explore an unfamiliar technology, then yes - you need to be compensated for the time you put into researching and learning it. This can happen mid project, especially as a result of scope creep. The client may want to accomplish things that are simply outside of the domain of the tools that you chose to use based on the original scope of work.

If you are 'learning as you go' while offering yourself for hire as a programmer or consultant, then it's a different story. But again, this is subjective. You might be a seasoned [xyz] programmer and the problem at hand just threw you for a loop. You need to be compensated for that.

In short, if you are studying basics 'on the clock', you might be tickling an ethical issue, especially if you bill yourself as an expert.

If you are a regular employee, you'd ideally be working for a company that paid you to learn and get better at your craft. Still, you should be starting at the experience level that you provided on your CV.

share|improve this answer
    
"Still, you should be starting at the experience level that you provided on your CV" - Very true –  ved Mar 31 '11 at 15:24
add comment

It really depends on the situation.

Something New If you told your client/employer that you knew how to do something, then I personally would not charge for learning.

However, if you told your client/employer that research would be needed (and they were ok with that), then yes I would include it as that was an expectation for the job.

Efficiency The third leg of this stool, would be if you found something that will be beneficial for their project then I think you have reason to include it in the bill. Meaning you got something to work, but then you happened to read something on SO that made what you were doing more efficient...

Just my 2 cents.

share|improve this answer
add comment

My view on the subject is that "it depends" on where the learning curve requirement came from. Here's a couple scenarios to consider:

  • The client hires you on the basis of doing one type of work, and then throws a new technology that they require you to use. Because the requirement came from them, you need to make it clear that you are charging for the learning curve.
  • Your company is standardizing on certain technology stacks to make it easier to move developers across projects. Because the client didn't ask for the technology, but your company did, they pay the cost of training--i.e. the learning curve.
  • You stumble on a cool new piece of technology that looks like it can really help. Neither your client nor your company asked for it, so you'll have to spend your own time learning it. Once you've got a good working understanding and it's clear that it will solve problems at work, you can set up a technology introduction session. Some companies reward this type of activity. If the company/client agrees to use it, then they pay as the rest of your team gets up to speed.

There are quite a bit more scenarios that can play out here. For example, if a project is stymied by the current algorithm/design, and the client needs a certain performance or feature you can't currently get, then the client will most likely pay while you work out the alternatives.

The important issues are: is this billable work, is this addressing a process problem, or is this for my own curiosity? If it is billable work, the client pays. If it is a process problem, your company pays. If it is curiosity, you pay. The toughest choice is when the line isn't really that clear between billable work and employer concerns. If you see that you can gain a competitive edge by learning a new bit of technology, then the lines start to blur between your own personal responsibility and your company. Propose it to the company saying you want to spend some time researching it. The worst that can happen is that they tell you to do it on your own time.

Finally, if you are expecting the client to pay for the learning curve, make it clear to them that is what is happening up front. They will either back off of the new whiz-bang technology they asked for, or they will agree.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.