Throughout my life I have spent hundreds of thousands of dollars hiring contractors. I have usedOdesk, Elance, Houdini, Fiverr, Amazon Mechanical Turk and many other services that have assisted me in hiring and managing people all over the world. That said, I lost time and money before I finally started to understand how to properly hire and work with contractors. This post is some distilled lessons that I can share from my experiences.
SaleMove is based out of NYC- our business development and a large part of our engineering team work in the big apple. However, in addition to our local team here in the US, we have a second (larger) engineering office in Estonia. Through strong personal connections, we have found engineers that are experts in areas that are core to SaleMove (after all Estonia is where Skype was built). Hiring contractors is more art than science and even as I’ve become more experienced with the process, there have been times when a contractor simply does not work out. You can drasticaly reduce the risk if you have strong personal connections to the contractor by always applying the following rule:
Never contract someone unless you (or a team member) could accomplish the same task if given unlimited time.
The main reason is that it is very tricky to manage and judge the effectiveness of a contracted resource if you don’t understand the intricacies of the project yourself. Not to mention, you may not have access to the same resource after the project is complete. If the rule is neglected there are few outcomes that can result:
1. Difficult to judge issues: When issues come up you may a) not even be able to detect them or b) be oblivious to their importance. Example: A software scaling challenge that can result from poor initial planning.
2. No way to write complete specifications: It is impossible to think of every detail when writing specs if you have no experience with a task. Example: What happens to the software if the internet cuts out?
3. Confusing to gauge time estimates: Hourly project rates can spiral out of control. Example: You hire a designer for a flyer and she spends a lot of time looking for inspiration.
Types of contractors
I believe contractors fall into two buckets, Offshore & Outsourced:
Offshore: This is when the contractor is treated just as if they were an employee of your company but are located outside of your HQ. I believe the main benefit for offshoring is the ability to access new pools of talent that are excited to work with the newest technologies.
Outsourced: This is when a person or a company is hired on a temporary and transactional basis. Note that outsourcers can work either at the main office of somewhere else. This arrangement is best for tasks that the main team is strapped for time to complete.
Another critical factor is of course the economics of the project. There is a direct tradeoff of risk and reward that depends on the project’s size:
Projects under $99
Projects under $99 are the easiest to outsource as the negative impact of the project failing is normally nominal. I use a website called Fiverr to preform lots of small and random tasks. Since Fiverr only costs $5 for each task, I will often hire multiple contractors to ensure the project is completed on time and accurately.
Note: Don’t dismiss low cost labor on websites such as Fiverr- I’ve had some amazing results for my tasks at under $20!
Projects between $100 and $1,000
With projects of this size I typically ask the contractor to do a short test to ensure that they have the skills that they claim as well as to see how well we work together. I like to giving the contractor something small and slightly ambiguous to see how they can think on their own and what questions he asks. For these tasks I mostly use Odesk as I want to be able to follow their work on an hourly basis (Odesk provides screenshots)
Projects between $1,000 and $25,000
As a project starts costing thousands of dollars its important to start slow. Testing is good practice here as well so I give candidates a small part of the project first to see how they complete it. If possible, I give that same part to at least one other contractor so I have direct comparison. Only after I’ve tested out a few contractors do I go ahead and give the best one the full project. Keep in mind that a lot of these contractors have multiple clients and they will manage their deadlines accordingly. Therefore, make sure to ask them if they are working on other projects at the same time. Tell them to be upfront with you about different deadlines/commitments they have and how much time they can spend dedicated to your project every day or week.
Projects over $25,000
For long term projects I always make sure that someone on my team or myself is strongly connected to the contractor in some way. This allows me to ensure that this person is not just working for money and feels passion for the project. With this type of arrangement I tend work very closely with the person- we may communicate communicating multiple times per day.
The last thing to consider when offshoring or outsourcing is location. In terms of location preference, I have hired contractors all over the world and what I have seen is that when it comes to software development I’ve had the best results from the US and Eastern Europe. For simpler non-dev tasks I think the Philippines is an excellent option. I’ve used contractors in Indian in the past as well, but in my experience I spent more time on managing the contractors than time that it would take for me to complete the task myself. Once I switched to working with people from the Philippines, the results were far better.
The world’s labor is moving to a global contractor-based model. This means it is very important to build the skills for identifying, hiring and managing a team of workers that are not sitting right next to you. It takes time and effort to learn how to properly Offshore vs. Outsource contractors but in today’s connected world, it provides incredible edge.