Michael felt a flutter of excitement when he saw the proposal from the developer in India. One-third lower costs than his US-based developers AND a more aggressive timeline? Yes please!
He could already feel the pat on the back from his boss. Maybe even a promotion in the near future. Surely pulling this off would seal the deal.
The appeal of offshore software developers is blatantly obvious. In today’s increasingly competitive market, US-based companies feel pressured to cut costs and increase efficiencies in order to stay in business.
So when it comes to outsourcing software development, offers from countries like China, India and the Philippines (with huge populations willing to work for a fraction of the wages expected here in America) are tempting. Countless businesses in the US, Australia and the UK have taken up offshore developers on their offers—some more successfully than others.
But when we talk to companies, we hear a lot of horror stories about offshore software development. It can be done well, but usually, it’s not.
Perhaps the most common oversight made when considering offshore development is the significance of hidden costs—those not represented on the bottom line of a contract. Because when it comes to technical issues, language barriers, and human error, they can certainly add up.
So what’s the real cost of offshore software development?
Some of the easiest hidden costs to recognize in any software project are technical ones–from differing platforms and methodologies to divergent documentation styles. Depending on a vendor’s location, they may even be limited by licensing and access to new technologies and educational resources. More often, the differences are in best practices and a failure to adhere to them. This leads to more time-consuming (and expensive) maintenance down the line, which makes the software less valuable and gives it less of a lifespan.
One of the most common hidden costs of offshore development is that of any outsourced software project: poorly defined project requirements. Often, in such situations, companies complain about poor quality code or a developer’s lack of understanding—but more often than not, the problem lies not in lack of ability but in lack of understanding of project requirements. Research shows that unclear project requirements are the top reason software projects fail or are delayed.
Risk to Intellectual Property
You’ve no doubt heard horror stories of hacked technologies and stolen data, even in seemingly good outsourcing situations. Some of the best ways to protect your company’s intellectual property are to carefully evaluate vendors’ confidentiality measures and to provide only the minimum proprietary information needed for the project at hand. Still, with overseas developers come overseas legal considerations, in which case even your best efforts may prove ineffective. Foreign laws are often inadequate when it comes to protecting the intellectual property of US companies.
When it comes to software development in general, there’s a tendency for companies to over-manage technical issues and underestimate nontechnical ones. Herein lies the problem, as nontechnical issues have the potential to be equally burdensome, and costly, as their technical counterparts.
The leading concern for companies in the United States about outsourcing is communication difficulties, and for good reason. Misunderstandings and lack of clarity can be a challenge in any project—particularly when it comes to requirements. All involved must have a shared understanding of expected deliverables and methods for successful software development. But when you throw language barriers and cultural nuances into the mix, the risk for communication breakdowns increases exponentially.
Even if you can avoid communication breakdowns, it usually happens because an in-house employee shoulders the burden of communication and invests far more time than expected to strong-arm the project to completion. That results in a project at the finish line and an employee who’s basically been pushed over the edge—which is still not an ideal situation.
Despite technological advances, there’s not really a substitute for face-to-face communication. So when working with a company overseas—especially on a project with some uncertainty—travel costs should be considered. When you have the whole project team together in one room, you get to benefit from nonverbal communication cues, build trust among all parties involved, and provide everyone with the same information at the same time with the opportunity to ask questions. This step may be necessary to make an outsourced project truly successful—even if you need your passport to make it happen.
Troy Hunt, an Australian Regional Director for Microsoft and professional in developer security, explained in a November 2016 blog post that one of the problems of non-technical leadership is that they directly associate work output with human resources. If you add more people, the work will be done faster. But this isn’t the case with software development.
When it comes to the low wages associated with offshore outsourcing to China, India and the Philippines, this misunderstanding is exacerbated. Leaders think, “We can add all these people, and it will hardly cost us anything!” (This mistake is known as Brook’s Law and comes from Fredrick Brook’s book The Mythical Man-Month.)
Hunt goes on to explain that the hidden costs of adding more people are the hidden costs of more connections. He writes, “When there are 2 people there is only 1 connection; person A talks to person B. But when there are 3 people the number of connections literally doubles because A talks to B, A talks to C and B talks to C. 4 people is 6 connections, 5 people is 10 and it goes up rapidly from there.”
So should my company even consider an offshore software developer?
I’m not saying the answer is a resounding “no,” but I would suggest that you and your colleagues ask yourselves some hard questions before determining whether offshore development is a realistic option for your company.
1. Have you had much experience with outsourcing in general? If “yes,” were you happy with the results? What challenges or concerns did you face along the way, and how significant were they to the overall success of the project? How will offshore outsourcing turn up the volume on these challenges? If “no,” an offshore developer may not be the best way to start.
2. Do all members of your team share a clear understanding of the goals and requirements for the project at hand? Be honest. It’s easy to say “yes,” but once you get into the details, they can quickly become messy. If there is any miscommunication within your team, chances are that miscommunication will be passed on and amplified to an outside vendor.
3. Do you have an existing relationship with an offshore developers or a solid recommendation for one? There are a lot of factors to be considered when selecting a vendor, particular one overseas. What platforms and systems do they have experience with? What are their operational practices and quality assurance measures? Do they focus solely on keeping hourly costs low, or do they also do performance reviews, mentoring and continuing education? What is their staff turnover rate?1 Sufficiently answering these questions will take time, effort, and research—regardless of the vendor’s location—and time is yet another hidden cost.
The answer to these questions will help you determine whether offshore development is the right option for your business. And that will illuminate the next step you need to evaluating your software development project.
Looking to bring your ideas to life?
We are committed to guiding you towards the best solution for your business.Schedule a Call With Us