So you decided you wanted to outsource your software development to an outside firm? First off, congrats on making that decision. Software outsourcing can be a powerful cost savings tool to help you make the most out of your budget as well as incorporate developers from outside teams.
But in order to get the most out of your software development partners, there are a few things to watch out for. Do these, and you’ll be much more likely to have a smooth transition and reap the benefits of Software Outsourcing.
Don’t do them, and you’ll likely end up frustrated and wish you kept working with your internal team instead.
So what should you look for when hiring an outsourced software team?
1. Technical Knowledge
First off, you need a team that has deep technical knowledge in the area (or programming languages) in which you are working. You don’t want to be working with a team that doesn’t have a solid technical grasp on key concepts.
Primarily, you want to find teams that know the particular languages you’ll be building on. For example, if you’re building on the web, you need a team that has competence in the common web design and programming frameworks. If it’s a simple website, you want someone who understands PHP, HTML, CSS, and other web languages.
Compare this to building a mobile app. If you’re building for iOS, you’ll want someone who has experience with Swift and Objective-C. If you hire a web developer to build your mobile app, you’ll likely struggle. Likewise, if you hire someone with deep technical knowledge of iOS, and give them a website project, they may be able to get it done, but it will often end up costing you more and being less efficient than it would be if you’d hired a specialist in that area.
If you’re hiring a software development company, you want to understand the strengths and weaknesses of their team and make sure their capabilities match exactly with your needs.
If you’re hiring domestically, language is probably not going to be an issue. But if you’re looking to hire overseas contractors or work with a company that will send your development work overseas, then you need to be aware of language barriers that can come up during the software development process.
Specifically, you want to know who on the team speaks English (or whatever your preferred language is…we’re assuming English since you’re reading this) and you want to know how well they speak English.
This is important because outsourced software companies will often hire a project manager who may speak English, but will not allow you to directly communicate with the developers. If everything goes as planned, this may not matter to you. But often (much like a game of “telephone”) what is said isn’t always communicated clearly – doubly so when you add in a translation from one language to another.
Similarly, you want to understand how well your project manager and/or developers speak English to reduce communication errors. Often companies advertise “English speaking” but the actual staff only have a very loose understanding of the English language. These simple communication issues can cause massive delays and costs to your project if not adequately addressed upfront.
3. Time Zone/Responsiveness
If you’re hiring a team outside the US, you also need to be aware of potential time zone issues. Are they going to be working while you sleep? Or are you going to be working while they sleep and unable to get ahold of anyone on their team?
The most common problems with timezone differences are the inability to do synchronous meetings and unnecessary delays.
For example, if your development team has an important question about a feature, can they ask you in real-time, or do they just sit around and wait for you to wake up before you can answer their question?
If they are waiting, then they’re likely to also be sleeping when you’re awake. Ultimately, a single question like this can cause twenty-four hours or more in delays. Twenty-four hours might not seem like much, but if you start adding these delays over multiple issues, you realize you could easily delay a project by months or more just due to the inability to get a quick response.
One really good way to tell if a company is a good fit is to look at its portfolio. Have they worked with similar-sized businesses to yours in the past? How did it go? Did they experience success or failure? What worked well and what didn’t? Do you like the look/feel/performance/functionality of the final product?
Although there are many new companies that provide great performance, you’re always taking a risk when you don’t hire a company that doesn’t have a strong portfolio – or has a portfolio in an ancillary field or with other programming languages.
So when in doubt, ask to see what work has been done. This is one of the best ways to evaluate the ability of a potential vendor.
Finally, you want to check references. Most good-sized companies have happy clients they’ve worked with.
Whenever you can, talk to the clients and project managers. Ask them about their experiences. Figure out what went well and what went wrong. From there, you can get a pretty good idea of what it might be like to work with that team.
If nothing else, you at least want to know what to expect. Even if the team wasn’t perfect, did they work hard to make things right? If so, then it might be worth pursuing – especially if they meet the other requirements for your project.
What did we miss?
Is there anything else we missed? What do you think makes a great software outsourced team?