Should a client be billed for a certain amount of the learning curve? Should an employer pick up the tab on overhead? Should it be the developer themselves? Or perhaps a combination of all three?

I am conflicted on this - I've heard it being said both ways - that a client (or project budget) should not have to deal with 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.

I thought I'd open it up to the PM Stack-exchange hive mind for more insight from folks with much more experience. I have posted the same question on the Programmers (non programming related) StackExchange and am interested to look at the delta.

  • 2
    I'm not sure that the question as asked is a PM question, although I think there may be a related PM question that can be drawn out of this. As asked, this is a commercial question between the vendor and customer, but the project question may be more related to the estimating around the use of inexperienced resources.
    – Iain9688
    Commented Mar 31, 2011 at 15:06

4 Answers 4


In the end the customer always pays one way or the other. They will also pay for lack of training as well. It may be in the client's interest to request appropriate training.

As a contractor, I don't expect the customer to pay for training. However, there are cases where they will pay for my time in training.

  • If I am evaluating a new technology for the organization, then I would expect the customer to pay the costs. This may include attending training sessions.
  • I have audited courses presented to customer staff so that I would know what the staff could be expected to know.

As an employee, I expect the employer to provide ongoing training. The training covered by the employer is one of the factors I use in evaluating them. Tuition for my MBA was covered by one of my employers. The cost of the training becomes part of the overhead of the organization. This cost will be passed the client or project. In general, training is of net benefit to the organization.

The project budget should include training under some circumstances:

  • New or existing technology is being used for which experience staff is not expected to be sufficiently available.
  • Training will be used to communicate standard approaches for the project.
  • The project is or will be using new releases and training on the new release is required or desired.

Team competency is never certain. Your deterministic schedule and cost--or your performance measurement baseline--were established under the assumption of a level of competency. The reality is you may end up with higher or lower than what you planned. This is a constant in every project in every industry since the beginning of time. It is unreasonable and unrealistic for anyone to expect that, when they purchase services, they will get the best of the best of the best every time. Therefore, I opine the customer is "always" liable to pay for the services rendered on their project.

However, there are caveats and limits to this. If you load the team with nothing but junior, inexperienced folks, then you are taking unfair advantage of your customer; plus you will likely destroy your PMB and fail to deliver to specs.. A good test is, if this were a firm fixed price contract, where you own the cost risk, how would you staff your team?


Bill's points are spot on, but I would add that it matters what the customer was told when they were being sold on the project (or when they chose you as the implementer).

When reading the court cases that pop up when big SAP/ERP projects fail, SI's often get the contract by promising a certain number of trained/experienced individuals to lend their expertise to the project. If that's what was promised, it is incumbent upon the promisor to provide those resources (rather than hiring a bunch of new employees to learn SAP while implementing the system that provides payroll and HR for a county).

If the customer requests that a new technology be implemented, and are aware that the project team does not have those skills, they should be on the hook for ramp-up time. I think the key is transparency up front as to capabilities, so the client/sponsors can make an informed decision one way or the other (use the new technology? hire a different team? postpone the project?)

As far as the developers... there are not enough hours in the day to stay on top of everything you could/should know. I spend many weekends myself playing with new technologies so that I have half a clue when the time comes to put them to use. Take advantage of every opportunity your employer provides for professional development, and then fill in the gaps on your own.


IMO, if it's customized application, the customer should pay for everything. If it's generic, the organization may chose to exclude some of the costs like training costs because it builds to the assets of the organization (It was senior and top management decision where I used to work). However the customer actually pays for the extra quality activities effort anyway that result from the extra defect rates due to developers are not yet mastering the tool or approach.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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