When a project needs specific knowledge, skills and abilities (KSA) there are, in most cases, two options: either to train existing project team members or to buy new ones on the market. What are pros and cons of each option?
Here's a rudimentary answer (I'm sure someone will provide a more detailed one): the trade-off is essentially long-term vs. short-term, and cost vs. time.
Training your own people is both long-term and time-intensive. You have to spend time (and money) to train them and retain them; and if they leave after training, well, you just paid for someone else to reap the benefit of their skills.
On the other hand, hiring people is expensive, but quick. Contractors can be very specialized, and once they learn your project needs, they can apply themselves quickly and efficiently. But it comes at a premium.
Personally, I feel that if you can retain people long-term, training is more efficient and effective in the long-term. Contractors have a way of jumping quickly if they can get more money elsewhere.
There is a huge dependence on your specific context when making this decision. Some of the things you may wish to consider are:
- What level of expertise is needed? Training to a basic level of competence is fairly easy, while attaining expertise is very difficult. Consider exploring the Dreyfus model of skill acquisition.
- How urgent is the request? Highly urgent requests push for contractor-based solutions, with hiring being a possibility if the local market is conducive to fast hiring. Careful planning can allow a longer-term perspective, making training and development more effective.
- Is your business in an active growth mode? If you're going to hire anyway, hiring somebody with both growth potential and a unique skill they can share across the business makes sense.
- What are your cash constraints? Sometimes, you just can't afford a hire or contractor within the budget, and training (or even self-training) becomes the best option.
- What are the ramifications of failure or poor quality? If you're dealing with situations where poor quality or failure is not an option due to safety, business criticality, or regulatory concerns, go for the existing experts and have them mentor others in the organization.
- What is the duration/scope of the need? If you need the skill on an ongoing basis, then you probably won't want to continue paying for a high-powered consultant. On the other hand, if you need somebody to perform an initially technically complex activity that then requires minimal ongoing support, a consultant can do the hard work and train your team for the much less intensive ongoing work.
Finally, you don't always need to make an extreme decision. Options may include hiring an expensive contractor to cover an urgent situation while you hire a full time employee, or my favorite, hiring the contractor to both provide expertise and train your existing staff to a sufficiently proficient level.
I think the general pros and cons are the same or very similar whether it is labor or product or tool. When you buy, time to deploy is minimized, costs should be less, what your buying has been demonstrated to work, whoever built is is an expert in the area where as it is outside of your core competency. When you build, you can tailor it to meet exactly your requirements, you can evolve it as your requirements or business environment changes, you can build it to fit in your existing organization versus modifying your organization to fit what you bought.
While there exists general pros and cons of each, I do not think there is a general best answer. Each case needs to be analyzed by itself to identify the best answer. If you adopt one answer over the other, you are biasing your approach and that usually spells disaster.
You need to ask yourself whether you will need the skills in the future. If so, it's worth the time to train, if not, go external. If you go external, remember to include some time for the effort of bringing them up to speed on the project and the culture.
I want to emphasise the importance of the relationship between expertise and time here.
A business I owned often found itself in a situation where we needed to add a team member (or two) within five to ten days or we would lose business. So the time available to act was negligible. However, the skills I needed from the newcomers were skills that took years to acquire, so training was out of the question.
In these instances hiring, not training, was the only option.
For me the pros to hiring in this scenario:
- Team members walked through the door possessing the skills we needed that day
- If everything fell into place, immediate customer satisfaction (our hiring process was vigorous)
- Expensive; graduates were tried but not an option - working as we did needed grounded pros with years of experience
- No time to acclimate the new team member to the culture of the workplace
- Mistakes had significant impact. If we got the hiring wrong, it required a significant effort to rehabilitate the situation (note to self: never trust a single reference no matter who they are)
Couple of things should take into account are:
Would your team require these particular KSAs in the future? or, are you or the Company interested in investing on development for your existing team? (this question is crucial in a lot of organizations) - If you would like your team to become stronger or is part of your duty as their manager to develop them, then I would suggest reviewing the available budget for training and support your team acquiring the abilities you need.
When does the project require these abilities? Is the need urgent? - If you need them now, it's better to get external help that already meet the desired KSAs.
If you decide to go on with the first point and develop your team, you need to understand the implications of the time that your team will require aside the project to acquire the additional knowledge. Resources must be allocated correctly. Moreover, once your team is fully trained stop and think, am I going to assign additional workload on to them? Be careful here, if your team already had a heavy workload according to their abilities and you end up adding more they will struggle anyway.
Rather generally aceeepted opinion by a lot of veteran managers is that train your people if it is it related to your core intellectual property, buy go with external, if it is non-related to your direct bread and butter. A rather hypothetical but simple example but this should help clarify: Let’s assume you are in the business of building search engines. There is something seriously wrong if you out hired programmers on a contract to build your search or ranking algorithms.
That’s your core knowledge essential to the functioning of your business (your intellectual property if you will) and hiring contractors to build that would be a losing proposition in the long run; having said that if you wanted cool paging component to page your search results and you hired a contractor to build a paging component (or just bought one online) that would be perfectly fine.
Facebook going with contractors to build the wall would be a losing proposition for them, but they can easily allow external parties to build Farmville and other games on the platform. Yes face book is not a project but they have drawn really good lines on what they control vs. what they let the community build.
A lot people seem to be highlighting the cost aspect the time constraint aspect etc. all of which are valid but the primary governing factor, especially if you are working on a project that you are going to support and maintain for a long time after you’ve built it or if you are working on a product must be that you should keep knowledge internal as far as your core intellectual property is concerned and go with consultants with for add on stuff if you are running low on time.
Start by building a solid platform using a good design (interface driven or service driven), control the basic core functionality, the core business logic and allow external consultants to work on building plug-ins of external services which your core can consume for add-on functionality, that is functionality that is not deciding factor for the success or failure of your product or project.
I know training can take time but if it’s pertaining to your core intellectual property or critical to the success of a long term project you are better off spending some time and effort as an investment since it tends to pay off in the long run specially if you can pass the knowledge around as the team grows, retain the knowledge, grow on top of it and cultivate in specialization.