Outsourcing your software development simply makes sense. Unless you really need a dedicated team of programmers for ongoing work, there is no need to hire internal employees.
You can outsource in a number of different ways
- Contracting people to augment your internal team for a specific project
- Outsourcing an entire project with a company close by, so you can have regular face to face meetings or drop by the office
- Or outsourcing to a remote location,
- Or even with a worldwide, remote team
No matter the type of outsourcing that best fits your business and development project, there are a number of pitfalls that people unknowingly fall into time and again, if they don’t already have the experience in this process.
Today we’ve rounded up some of the biggest mistakes that you can make when outsourcing - and how to avoid them.
1. Choosing your development services provider based simply on price
So, you chat with several companies and give them an outline of your project and ask them for time and budget estimates, any complexities they might see up ahead. Not long after, you receive your quotes. “Great, let’s go with the cheapest one then, I already researched these companies” you think to yourself.
This isn’t the best strategy - particularly if you’ve already put a fair bit of time into your research! Instead, you should pour over each of the proposals and see where their similarities and differences lie.
You might find that the cheapest estimates:
- Provide far less information in their proposals than their counterparts
- You’ll have more junior developers working on the project
- Or it just doesn’t “look quite right” as compared to the competition
Use the docs and your better judgement instead of just checking on a dollar sign.
2. Using a provider that works in a completely different timezone
If you’re 12 hours ahead or behind your outsourcing provider, it can be difficult to oversee projects, as by the time you’re having your morning cup of coffee, they’re just about ready to turn in for the night! It helps to choose an outsourcing provider who operates in a timezone where you’ll have at least 1 or 2 hours of overlap in working hours per day. This way you have a bit of overlap for meetings and catch ups should you need to work through any issues.
That being said, most outsourcing businesses are happy to arrange meetings at any time convenient to the project owner (within a reasonable amount). Some may even agree to work to your timezone should the arrangements fit.
3. Not nailing down your project management and communication channels in the beginning
If you are outsourcing developers who will be working from their own office or home, and not augmenting your in-house team physically, then communication is key. While it’s now possible to have an entirely remote working arrangement, this needs to be well-managed to be successful. As all your interactions will be digital, you should ensure that you have systems in place for confident management and communication.
This may include:
- Using specific tools like Slack or Jira
- Having set hours you will both be available for contact
- How to manage progress updates
- Whether time tracking will be used
- Having multiple means of communication (i.e. not just email but Skype, WhatsApp, etc.)
Arranging these before you start working together (and adding or subtracting processes/methods along the way depending on what’s working well) can save you time overall. Your outsourcing provider, if they are remote working company or solo contractor, will usually have a system they use frequently with other clients. Mix and match both of your preferences to suit the project.
4. Working with an outsourcing provider where the cultural differences make working together near impossible
Every country on Earth has different ways of doing business. Not just by law, but culturally, too. Some cultures will take a lot of holidays or have a siesta every afternoon. Some cultures, it is rude to make suggestions to the boss as to how to do things better. In some places people are very friendly or playful in conversation. In others they are direct and may come across as rude.
Working with an experienced software development outsourcing provider, who has successfully built projects for happy clients all over the world should be proof enough that the cultural divide between you and the developers, no matter where they are located, is small enough to not be a big impact on your project.
But buyer beware! Do your research about both how business works culturally in the country you’re outsourcing to, as well as the international reputation of the company you are considering.
5. Being unaware of software quality indicators
You’re not a software expert. No one is expecting you to be. But to be able to assess the quality of your project you’ll need to have a little bit of an understanding of a few markers of software quality. Software quality is gauged by things such as how few bugs there are in the project, how easy the code is for other developers to build on in the future, how complex the codebase is, and whether the documentation is sufficient.
You should look for outsourcing providers that note items such as
- Following an in-house or community-accepted coding standard or convention
- Using Agile practices
- Doing pair-programming, or peer reviews
- Using testing frameworks
- Using diagrammatic system plans for initial design, such as UML
While having these markers in place doesn’t guarantee quality software, you are more likely to have successful outcomes by following set standards - like any industry. You wouldn’t want a builder to build your home without conforming to construction safety standards. The same goes with building your software.