In building a team one of the first questions that need to be answered is whether you will use contractors or employees. Although this decision may be dictated by circumstances, it is important to recognize the pros and cons of each. In the spirit of full disclosure, I have been a contractor for most of the last decade.
Let’s look at the positives of employees first
Loyalty used to be a huge plus for employees, but that seems to be less a factor every year. However, an employee does still improve the likelihood of team continuity. Employees may leave your organization, but it is more likely that contractors will move on. This can cause a drain of business-specific knowledge. Consequently, employees are more likely to give a return on the investment of training them on your processes.
An employee also provides more ability for you to impact their attitude. Never discount the productivity that can come from a happy and motivated employee. There are steps you can take to make contractors happy. However, you will have much more at your disposal to keep and motivate an employee.
Contractors will sometimes talk about a partnership with their customers. This is a good attitude to have, but at the end of the day, an employee is more closely bound to a company. Their future is tied to the company success in a more direct manner than any contractor. This symbiotic relationship does not guarantee everyone works together. There are always going to be politics and personalities that drive a team. Nevertheless, employees are at least going to have some shared benefits to come from a successful company.
Finally, contractors tend to be project focused. Your company may hire contractors for the long-term, but most will come in, focus on a project, and then move on. This works for turnkey projects. However, it is not the most efficient way to build a living, growing solution. There are always ideas during implementation that get set aside but are valuable in future releases.
Contractors have a different set of positive attributes
It may seem cold, but contractors are disposable. The investment made in a contractor should always be smaller than an employee. Training and benefits are worries of the vendor, not your company. A contractor should be primarily a short-term resource and it is usually easy to end a contract. In any case, you let contractors go, but have to fire employees. This has a lower cost no matter how you slice it.
A contractor brings a new set of skills and experience. Employees will have shared experience over time. That is a strength of building a team but can also lead to a form of tunnel vision. A contractor will have a different set of experiences and often can bring a new set of skills to the team. They also will be on the hook to keep their skills current and marketable. This can be a way to improve the overall skills of the team without paying for more training.
One of the biggest strengths of using contractors in my experience is the ability to flex up and down those resources. It is almost always easier to find another contractor than it is to hire someone. You can also reduce contractor headcount quickly and reduce costs during slow seasons of business. In fact, this is my most recommended approach to software development. I recommend and have followed the process of building a core team that is small. Once the team is in place, use contractors to handle peak or high-need times. This keeps overall costs and commitments low while still getting work done.