Thinking of outsourcing your software development to an offshore firm? If so, you’re not alone. A recent study by Deloitte found that 50% of respondents plan to outsource software development based on developments in big data, business processes, enterprise mobility, and cloud computing. And a healthy percentage of those will choose offshore companies for reasons like cost savings, fast turnarounds, and business strategy.
Still, not all companies are ready to take the leap, particularly in the United States. Deloitte found that U.S. companies are three times more likely not to outsource than those in other countries.
Why is that?
There are several reasons for the trend, including increased data privacy regulations and customer perceptions.
But the biggest reason businesses bring their software development projects back into the U.S. after a stint with offshore developers is unsatisfactory supplier performance.
The Challenges of Offshore Development
Offshore development entices companies with its dramatic cost savings potential. Developers in other countries simply get the job done cheaper because their hourly rates are far below those of U.S.-based software development firms or the cost of contractors or employees. With the advent of cloud computing, location has become almost irrelevant. But it’s not all rainbows and sunshine.
Here are seven common challenges companies experience when working with an offshore developer that cause some experts to recommend against the practice.
1. “Cost savings were less than expected.”
It’s not always easy to compare labor costs dollar for dollar. Companies lose financial ground when they work with less competent developers. A cheaper hourly rate is offset by significantly more hours of work spent because offshore developers sometimes lack experience and skills that will result in lower productivity and more debugging over the course of the project. This is Brooks’ Law at work—assigning more developers to a project actually causes it to take more time, not less. Companies also have to allocate significant internal resources to manage the project to keep it on the rails.
2. “It was a logistical nightmare.”
When you work with an overseas team, you will have to carefully coordinate phone calls, deadlines, and different work expectations to keep everyone on the same page. Drastically different time zones may require middle-of-the night meetings and almost always create longer turnaround times. Logistical problems can quickly mushroom into serious frustration for both teams, resulting in budget, timeline, and scope excesses.
3. “The code quality was poor.”
Not all developers are created equal. Quality control can be difficult when you’re working with a team you don’t know well. Developers in other countries may operate under different assumptions about project management and business practices, resulting in a product that doesn’t meet your expectations. You may also be working with inexperienced developers or recent college grads who haven’t earned their stripes yet. The software development community embraces best practices for a reason—but not all offshore developers adhere to that standard.
4. “Our team felt splintered.”
One of the worst things that can happen when you’re working with an external team is developing an “us vs. them” mentality. When offshore and onshore personnel don’t value the contributions of the other half of the team, you experience division and lost productivity. Both parties blame the person on the other end of the process rather than examining external factors. And that leads to lack of trust and a culture of blame instead of problem-solving.
5. “We couldn’t get on the same page with process discipline.”
Working across different business cultures can throw wrenches in even the most well-oiled agile machine. In a typical Scrum meeting, the entire team works together to develop requirements, choose tasks, map out sprints, and report progress. When you try to transpose that model onto an offshore work environment, you undermine the entire process. There are no face-to-face meetings, whiteboard brainstorming sessions, or even compatible working hours. Inevitably, problems arise among team members, and it’s challenging to create a solution that delivers value.
6. “Language and cultural barriers caused miscommunication.”
Operating in different languages makes it difficult to communicate nuanced needs or understand specific problems that arise during development. Cultural barriers can also throw the project off track because of different communication styles or expectations. Offshore team members may not accurately understand requirements or overall business strategy, leading to more errors.
7. “The offshore team replicated and sold our code.”
When you work with a developer, you share your intellectual property in the form of ideas. Your code becomes your most valuable asset. But business norms in some countries prevent the enforcement of non-disclosure agreements and can result in easy theft of your idea or the code itself.
Of course, not every offshore project will end in catastrophe, and you shouldn’t view developers in other countries with suspicion. But if you are going to succeed, you need to be fully aware of the potential for hang-ups and frustration, and have a realistic view that you may not save as much money as it appears at first blush.
When Should You Keep Development At Home?
Just as not all offshore contracts will end in failure, keeping projects onshore won’t magically solve all your problems. Sometimes project breakdowns occur due to internal factors like incomplete requirements gathering, poor process development, or an underinvestment in vendor management. The stats say that 70-90 percent of software projects are challenged or become complete failures—and the bigger the project, the better the chance of failure.
Still, working with a team that operates within the same basic cultural framework can reduce problems before they mushroom into big bad project-killing monsters.
To build on what we learned from the challeneges about offshore development, now let’s look at some advantages of keeping software development at home.
Increased data privacy regulation
This is the top reason companies in the U.S., Europe, the Middle East, and Africa are more likely to decrease outsourcing. Data breaches have spotlighted concerns about the protection of private information and consumer data. Working with a company that operates in the same regulatory environment eases concerns about potential violations.
Greater “soft” value
While you may pay a higher per-hour cost with a domestic software developer, the cost difference may be offset by increased productivity, higher service quality, reduced sprint or milestone development time, and fewer errors.
Improved agile processes
We’ve already discussed some of the problems you might run into when you try to conduct agile processes with an offshore team. Bringing development onshore can alleviate some of those issues by aligning both logistics and business processes more easily.
Quicker time to market
When you work with an established, reliable vendor, you can expect faster turnaround times, fewer bugs, and easier collaboration. All of these things will help you get your software up and running as quickly as possible so you can create the greatest business value.
Several factors contribute to improved communication with an onshore team, including language, culture, and time zones. But perhaps the greatest communication benefit is a deeper understanding of business expectations in your country. Onshore developers will grasp your needs and requirements more quickly because they routinely work within the same business environment you do.
In some markets, customers appreciate knowing that you don’t outsource work to another country. If this perception is important to your target market, it may affect your decision.
It’s easier to set expectations realistically when you can be reasonably certain that everyone will interpret requirements and documentation the same way. Part of the reason offshore projects sometimes cost more than anticipated is that software development relies on tacit knowledge of user expectations and market demand. When that knowledge isn’t there, your end product suffers.
Ease of pivoting
Not every software developer is a good fit for your company. If you need to change companies or developers, you need to have confidence that you can get the code for your software, and that it will be relatively simple for a new developer to get up to speed quickly.
Conclusion: Asking the Right Questions
At the end of the day, dollars and cents still prove to be the deciding factor for many companies. If an offshore company can get the job done cheaper, you can put up with a few inconveniences—right?
Well, maybe that’s not the right question.
Instead, ask yourself whether you can offset the increased cost of working with an onshore developer by closing the cost gap in other ways. And as a follow-up, seek out the best (i.e., most effective) solution for your business need. Will increased service quality, shorter cycle times, and better understanding of your needs offset the potential cost? Will an offshore project require more management, training, and debugging?
Once you know the answers to these questions, you’ll be positioned to make the right decision for your business and to overcome any challenges that may arise.