Checklist for Selecting an Offshore Software Development Team
Checklist for Selecting an Offshore Software Development Team
Mar 4, 2020 |
Now that you’ve made a decision to make use of outsourcing as a way of expanding or enhancing your business, you are likely finding yourself in the difficult situation of identifying which vendors or business partners will most effectively help you reach your goals.
You’ve gathered tens, if not hundreds of outsourcing companies, but you need a basic way of evaluating them so that you can boil down your raw samples into a few true prospects.
In this article we will share some of the techniques that we use at Accelerance for identifying the best outsourced development teams. We’ve broken these questions down into a checklist. In order to effectively use this checklist, go through each company, and for each aspect, assign a value to each aspect, and weigh each of these criteria according to their level of importance. After you have gone through each aspect of these, you will be able to total up your results and identify the top three outsourcing teams which will most likely suit your needs so that you can move to the next stage of the selection process.
Before making the decision, it’s good to evaluate the advantages and disadvantages of working with various types of outsourcing options.
You can divide these into three categories: In-house, meaning people you hire directly to work within your company, onshore outsourcing, meaning hired outsourced vendors in the same country and finally, offshore outsourcing or companies that exist outside your country.
Each will have different advantages and disadvantages, including categories such as budget, long-term need, and a necessity of new expertise (which is not available locally).
Assign each group a weight, and score each, to add them up to see which approach makes the most amount of sense.
See the below table for an example case (note: not all companies will have the same needs; this is just an example)
Once you’ve made the decision to outsource, you will want to rate each of the companies you’ve compiled to identify where their strengths lie, and what the advantages or disadvantages they may bring to the table.
It’s important to note that just because one vendor has a score higher than the others, this does not mean that it is necessarily the one you should select. This tool should be used for gathering a list of top contenders; it can be helpful for eliminating some vendors, such as those that do not have the requisite skills or domain knowledge to be truly effective partners. If you can narrow it down to, say, 10, and then further from there, this will help you decide which companies you wish to visit in-person.
Create a list of specific technical skills which are needed for your project. Weight each one, and then for each company on your list, assign them a score based on their skill level, and importance.
For instance, if you are looking for developers with skills in Java, Objective-C, and MongoDB, create a separate line for each one, and then assign a score to the company on a scale of 1-5 (5 being stronger)
Understanding of the subject matter or the knowledge domain of your product will help speed your process along. For instance, if you are working on a product for the healthcare industry, you will want to assign a score to each vendor based on their experience within this domain.
Software Development Methodology
Do they use Waterfall? Agile? Which versions of Agile do they use, and how deep is their understanding of the process. Is quality control and testing a central part of their development methodology?
Size of Team Needed
Identify beforehand how many people you will need to work with to make sure your team will succeed; the guidelines you will use here will be similar to those you would use if hiring a team locally. If a vendor has a team which can meet all these needs, give them a score of 1.
If the work you are doing requires some specialized knowledge (such as a master’s or PhD in say, data science), use this as an indicator.
Certifications and Awards
Do the teams you are evaluating adhere to well-accepted international standards, such as ISO, CMM, Scrum, etc. Assign points according to these.
What part of the world is this team located in? South Asia, Eastern Europe, Central America, South America, etc.
List the country here where the team is located for referential purposes.
Create an indicator here to identify whether this is a full day overlap, partial day overlap, or day/night difference. You may wish to give a higher score for those which are closer to your time zone.
Identify whether they have good or excellent command of the English language. You do not want to settle for anyone who does not at least have good command; you will need to be able to translate business specifications into words that are understood.
Relative Cost (Compared to Local)
Divide this into categories of low, lower, and lowest. While this won’t be your only criteria, it should go into your equation.
Is there a possibility of relocating the team back to the US? Only include this category if BOT (Buy or Transfer) is something that you wish to consider.
Is there a possibility of making this overseas team an official subsidiary of your company? Again, only include this if it is deemed part of your long-term plans.
Once you’ve gathered a shorter list of potential prospects, you can narrow these down further. You will want to check references and examine the resumes of your potential business partners, before you begin to negotiate rates and terms.
After you’ve narrowed your list to 3-5 companies, you will want to consider visiting them to get a general feel for how they operate. One of the most-overlooked aspects of outsourcing is one of the most important, the direct human connection. You wouldn’t hire employees site unseen for your home office; you need to be sure that they can work with you, that their work ethic matches the culture of your company. You should expect to be spending at least several months at the very minimum working with these companies; how you interact on a day to day basis will be a crucial factor in your success. Software development is typically not a cookie-cutter process. You aren’t simply purchasing a product; you are purchasing people – in fact, you are not “purchasing” them at all; you are hiring them because of their abilities, knowledge, and innovation that they can help bring to the table.
Remember, it will take you several months to even on-board any new employees; the same is true for outsourcing companies; you need to make sure that they are well-aligned with your personal style or goals. At this point you cannot rely on a simple checklist. A qualitative analysis will require in-person interaction with your new team.
After you’ve chosen a final company (or companies) you may wish to start with a smaller trial project to gauge how well your two companies will work together.
As Accelerance's Partner Success Manager, Ryan is responsible for building partnerships and quality management of Accelerance’s global software outsourcing network. He maintains a working knowledge of in-demand technologies, industries, strategies and practices relating to software development outsourcing. He has more than 10 years of managing software development projects, all with globally distributed teams. His experience includes enterprise project management with Bank of America focusing on core technology platforms and systems.
Learn how to use software outsourcing services to grow and thrive.