Even though there are plenty of advantages to outsourcing your software development, it's not without some challenges. Fortunately, these challenges are entirely manageable if you prepare for them.
In this article, we will go through the most common challenges you might experience when hiring an outside development team. We will also explain how to solve those challenges in order to have a successful relationship with your vendor.
Project Control
As the product owner, you are ultimately in control of the entire project. But even though your decision is final, you shouldn't be making every decision. It’s tempting to micromanage the development team (especially if you have a lot of money and your reputation staked on a good product), but it’s important to cede some control to the product manager. Sadly, a lot of product owners can’t let go enough to let the product manager run his team properly.
Image: medium.comA great example of this challenge happened between IBM and the State of Indiana. Indiana outsourced their welfare processing systems to IBM. IBM hired subcontractors (as many outsourcers do), but the state interfered with these players. Ultimately, the project failed because no one had control.
How to Solve It
Clarify your relationship with the product manager early - before you hire the team or sign a service contract. Define the extent that each party may exert control over the project. It should be absolutely clear which types of decisions the development team can make on their own throughout the project.
You Aren’t Tech Savvy
Outsourcing technical projects when you aren’t a technical person is problematic. How do you know if the outsourced team is building what you need? How do you communicate with them properly if you don’t understand their language?
How to Solve It
You could either A) Bring a technical person into the project to help you understand software complexities, or B) Use a development team with a product manager who’s willing to walk you through everything. Furthermore, instructed the development team to create robust documentation and commenting within the code. This will help you and future developers understand the product.p
Confidentiality Concerns
Whenever you outsource, you inevitably share some confidential information about your organization, such as customer data, trade secrets, employee details, and, of course, your product plans. It's natural to worry about the risks of releasing this kind of information and whether your outside development team will keep it secure on your behalf.
How to Solve It
First, choose a vendor with a reputation of respecting their clients' data. Second, make sure the vendor is compliant with international security standards. Third, have the vendor sign a nondisclosure agreement. The agreement requires your outsourcer to protect your IP. It should also include penalties for sharing your sensitive data without your consent.
Code Quality
This is one of the most significant challenges of hiring an outside development team. You need your vendor to craft quality code, but that’s a hard standard to judge. “Quality” is an ambiguous term when it comes to code because there are no strict definitions for it.
Obviously good code should be clean, clear, efficient, and maintainable, but you won’t know whether the vendor’s code meets those criteria until after delivery. If you need the team to refactor a portion of their code, you may have to pay for their time.
How to Solve It
Make sure the team you hire has checks in place to ensure code quality. This should include code reviews, unit testing, documentation, benchmarketing, and refactoring. Ask about these checks before you sign the team. In fact, it’s best to get their assurances in writing. If you don’t know what good code looks like yourself, share the team’s work within your organization.
Image: quickbirdstudios.comCommunication Barriers
Outsourcing development gives you access to the global pool of talent. Some organizations hire developers from overseas in order to take advantage of better pricing. Inevitably, this creates communication problems. Just because the vendor speaks your language doesn’t mean they grasp it well enough to discuss complex topics. If you use a translator, it’s quite possible to lose some meaning during the transfer. And of course, there might be cultural differences that are hard to anticipate.
How to Solve It
The easiest solution is to hire an outside development team within your own country who speaks your language proficiently. It isn’t always necessary to hire developers from Asia. You can find attractive pricing right here in the U.S. if you’re willing to hire outside of Silicon Valley.
If possible, hold regular video chat meetings with the team so they can absorb your tone and body language. This makes your communication more robust than mere text in an email.
Furthermore, it’s important to use a project management tool that removes all ambiguity about tasks, who is assigned to them, and their deadlines. This is not the same as the development team’s Scrum board. Use a tool like Jira, Asana, or Rally.
Time Zone Issues
Time zone issues are frustrating because they never seem like a big problem in the beginning. Everyone is always willing to “work around” each other’s work schedules. It doesn’t take long for resentment to build between one party has trouble contacting the other.
If you hire a team that doesn’t share your work day, there will always be at least a day’s delay between communications, even if they reply the moment they return to work. Coordinating video meetings is problematic as well, since one or both parties will have to attend outside of their normal working hours.
How to Solve It
Hire a team that shares at least part of the work day with you. They should overlap at least two or three hours, but four is better. In the US, that means hiring a team based somewhere in North or South America.
Cost Overruns
Cost overruns are a big concern when it comes to outsourcing, especially if you’re like 59% of companies who outsource to reduce costs. If the outsourcer handles the project poorly, you could end up paying additional fees that overrun your budget. An inexpensive hourly rate may sound tempting, but development teams work at different speeds, so it’s hard to predict the real cost of your product.
How to Solve It
Work with a well-respected development team with a history of reliable time and cost estimates. You may have to speak with some of their past customers to learn whether their estimates are accurate.
Further, make sure you own whatever code is created throughout development, even if the product isn't finished. This way, if you have to switch to a new development team, you can at least supply them with a portion of the product.
Mismatched Expectations
Imagine spending a year or more on a project only to be dissatisfied with the product. Frustrating, right? Sadly, this scenario happens often when people hire outside development teams if the right precautions aren’t taken. Unclear goals, a lack of understanding, and poor project tracking could cause the outsourcer to believe they understand the client’s needs even though they have vastly different interpretations.
Further, some dishonest outside development teams overpromise what they can accomplish. They might exaggerate their skills and experience with a particular technology. Or they might promise to hit an unrealistic deadline.
How to Solve It
The best way to solve this challenge is to perform proper due diligence when you choose an outside development team. Carefully select a team with a history of making good on their promises. Set your expectations at the beginning of the relationship and insist on regular communication to identify mismatched expectations as early as possible.
It also helps to work with the outsourcer to identify potential costs and risks associated with the project and the arrangement. Consider anything that could inflate the cost, extend the timeline, or reduce the project’s functionality.
Going Forward
We’ve covered the most common challenges of hiring an outside development team, but this list isn’t exhaustive. You will undoubtedly come across your own challenges, including obstacles unique to the product you’re building. If you hire carefully, think strategically, and communicate clearly with your outsourcer, you’ll be able to overcome any development challenge.