Leading an IT services company for the last five years has given me some insights about development and hiring contractors that I want to share with you. This might be valuable for product companies who are growing and need to hire additional software developers. In this article, I’ll focus on three questions:
- How do companies usually fail in working with remote contractors?
- How can the risks involved in working with remote contractors be reduced?
- When is it good to think about adding new team members?
How do companies usually fail in working with remote contractors?
When you lack adequate resources in-house and can’t find new resources locally, it might be good to hire a contractor. But it’s crucial to do it right. Usually, choosing a contractor has a significant influence on how development turns out. If you want to make it cost-effective, look for developers outside the US. Prices can differ dramatically, with ranges of $30-100 per hour, compared to $100-250 per hour in the US. There are quite a lot of regions that can be considered for outsourcing.
Based on my experience, here are the areas where mistakes can be made in building a team:
- Technical skills and experience: Sometimes what you see on a CV can be different from the skill set that the candidate really has, or their level of experience may not be enough for your needs. So it’s important to check this, with the assistance of other developers and by using technical tasks for testing. Technical tasks should be relevant to your project. Another good option is to ask the candidate to provide code for review and have another skilled developer look at it.
- Soft skills and team compatibility: It can be one of the most important factors. A person can be withdrawn and not work effectively in the team. Moreover, some people can be toxic and can be a negative influence on the whole team, and the project as well.
- Proactivity: This is very important for team leaders, but in general it’s helpful when everyone on the team has this skill. When developers, designers, QAs, and PMs are involved in product development — by generating ideas, asking questions and predicting issues even at the initial stages — it can save you money and avoid mistakes. Unfortunately, it’s really hard to find such people; most candidates can be good performers if you define an exact task for them and they execute it without adding any value or thought. They can’t or don’t want to think outside of the box. In some cases, it’s OK to have these types of people in the team, as long as the other members are stepping up.
- Communication skills and English: There can be a huge gap if one or more team members have bad communication skills in English. It can influence a lot of what they do and how. It’s one of the basic things you need to check. Some people think it’s enough that the project manager knows English well. But even if the project manager is the only contact person, it’s important for all team members to speak English and there are no language barriers. It will help to achieve better synergy.
How can the risks involved in working with remote contractors be reduced?
You can hire a team on your own, or through a recruitment agency or software consulting/service company.
Usually, when you use the first two options, it’s great to have technical experts who can check for relevant skills and experience. But it’s also important to develop a selection process to identify the right candidates who can fit your needs. Usually, such a selection process is firmly in place in some bigger software companies or in some software consulting/service firms.
Of course, there are some key points you should consider when looking to work with a software consulting/service firm.
It’s important to define in detail the main criteria that should be checked for each company and each particular developer.
So, let’s start with the company. Look at these factors:
Feedback from clients:
- there are websites that provide feedback about IT companies, like clutch.co or goodfirms.co. They usually conduct a personal interview with clients and add what they say to their websites. It might be quite a good source of information.
- ask the company for references and call their clients directly. It can be quite useful in order to better understand how this contractor works.
Talk with the CEO or someone else from management and ask about all the things you’re interested in and how they act in critical situations that might arise. Some good questions to ask are:
- What’s your hiring process?
- How do you manage projects in your company?
- What if you fail to deliver on time/budget? What do you do?
- What if there are still bugs after delivery of the final product?
- What are the strong points of your company?
- What are the areas you would like to improve?
But the most important thing is to check the talent you’re going to hire. If you have a CTO, a technical advisor, or developers who can examine each candidate directly, that can really help.
If you don’t have such expertise, you’ll have to rely on the contractor and review the criteria mentioned here in detail.
As described above, it’s good to check technical skills and experience, soft skills and team compatibility, proactivity, and communication skills in English.
I would recommend paying a lot of attention to proactivity and creative approach. It is one of the most important things we look for in people. It’s usually not enough for team members to have only good technical and communication skills. Beyond speed, quality, and communication — or, as we call them, "the essentials" — the primary challenge in development lies in committing to a process and taking a team-based approach. When each team member asks good, challenging questions, proposes relevant ideas and helps other team members to improve their work, that’s what will eventually make your product better.
When is it good to think about adding new team members?
It usually makes sense to have new team members when you already have a core team, as well as a technical leader or CTO. If you’re just starting the company and need the help of contractors to build your product, it’s best to use the outsourcing model, where a service company helps you to create a product from scratch.
Once you have a technical manager, it’s possible to start hiring a team either remote or in-house. And when you choose a good IT service company, usually you can expect to need technical recruiters who will help to check the hard skills of candidates in detail.
It’s important to scrupulously prepare and find partners using the most important criteria, in order to increase the chances of successful delivery. The principle “Hire Slow, Fire Quickly” works well here. If there are signs that a contractor is not a good fit for you according to any of the above criteria, it makes sense to go to plan “B” and find a better alternative. Usually, things can get worse if you give it a second or third chance. Choose partners/contractors thoughtfully to avoid paying twice or more.
DOIT Software has experience working with companies from Austin and Boston remotely, as well as hiring software engineers (including MEVN full-stack, PHP, NodeJS, front-end JS frameworks, etc), UI/UX designers, and QA Engineers. From this experience, we’ve learned to treat hiring as one of the core aspects of our business, which is borne out by clients’ feedback. If you fail to meet your clients’ expectations by not providing qualified candidates, it can easily ruin relations that are very hard to build. It can also make it impossible to build long-term work. So choose partners very thoughtfully to avoid paying twice.
Vitalii Makhov, CEO @ DOIT Software | 02/13/2020