Finding trustworthy, hard working and quality offshore development teams is a tough job. Hiring the wrong people can be disastrous for your business and a waste of your time and money. When building a technology product, it might be tempting to go with an offshore team as they’re cheap, but it also comes with a lot of headaches like:
- Communication problems
- Timezone issues
- Making them understand the business and making sure the right product is being built
- People who code are (most of the time) doing it for the money so they don’t care much for the product.
With that said, I’ve found that with the right kind of background research and vetting, you can find talented and motivated teams. Before you give out any money, make sure to evaluate them like you would evaluate any local talent that you hire.
Here are some questions I’ve used in the past to unearth quality teams:
Questions to ask your remote development team before hiring them
- Can you show us the code samples of the programmers working in the project?
- How many people will be on the team for my project?
- Will they be shuffled around projects or assigned permanently?
- How many projects have the programmers who worked on your team have done?
- How long have they been employed?
- What’s your attrition rate? (for companies > 200 people)
- What’s the experience of the project manager? Can I speak to them before starting off and get an intro and spend some time with them? (So we can get an idea of the communication skills)
- Do you use version control? Code reviews? (Actually it’d be worth evaluating how many points they score on the 12 factor app test.)
- If you follow agile – what are the sprint deliverables for each week? When is the sprint review meeting? Is this intimated to us at the start so we can follow progress easily?
- Do you use a task management board to track progress? (Eg. Trello, Asana)
- How does your team communicate with clients? Skype? Slack?
- What’s your general development process? What do you do first?
- When does database schema design happen?
- Is design done first then the programmers start integrating or does it happen parallely? How do you make sure everything is responsive? Will you use twitter bootstrap or some such framework?
- How do they handle db changes? Do they use migrations? (phinx or http://drarok.com/ladder/)
- How do you deploy code usually? Do you pull from git? Do you use deployment tools like Ansible, Puppet?
- Can you show examples of previous work you’ve done and is it possible to read the source code to check the quality? (Could be tricky as they may not have projects where they have exclusive rights to the source code, and may not be able to share it with you and the alternative will be to give them a small piece of work and evaluate as in point 14)
- How do your programmers deal with roadblocks? Are they talented enough to invest time on R&D and learn? If they lack that expertise, do you have dedicated R&D teams that do this?
- Are you ok with doing a small proof of concept work for a fee so we can evaluate your work? Can you try doing a proof of concept streaming with lighttpd, apache streaming modules as a way to show us you can handle this project? (We’ll pay you a flat fee of $200 for this)
Outsourcing can be a huge money saver if done right, like any business relationship, you have to think of the other party and their motivations as well.