Why Does Offshore or Nearshore Cost More than Advertised
Updated: Jun 26, 2020
Last week, I talked about why outsourcing your software development to an American-based company is a much better option than hiring offshore or nearshore software development companies. There are a lot of downsides to offshoring/nearshoring, and the only upside seems to be the lower hourly rate of hiring overseas developers.
Doing so is understandable, of course. You can hire three offshore developers for $20 per hour or you can hire one person in the U.S. for $60 per hour. Three developers are better than one, and you can build software faster for the same price. Right?
Unfortunately not. The $20 developers usually don't have the same skills, knowledge, or experience as the $60 developer. More often than not, you end up with software that is riddled with problems such as being unreliable, hard to maintain, hard to extend, or doesn’t scale well. Many times the only thing that the $20 per hour team does faster is to fail to meet the expectations of the stakeholders; the $60 developer can avoid all of those problems from the start.
Years ago, I worked for another consulting company and nearly 80% of our work was fixing failed offshore engagements. It really reinforced my appreciation of the sentiment "garbage in, garbage out."
Bad Software Leads to Unhappy Users and Lost Revenue
Cheap software bears an enormous amount of intangible costs.
To begin with, you'll have frustrated users. Cheap software is unreliable and crashes on a regular basis. If you're lucky, it's only your internal users who are frustrated. But, frustrated employees mean unhappy employees, and unhappy employees mean higher turnover and attrition. That, of course, equates to higher costs of recruiting, hiring, onboarding, and lost productivity. And if you're unlucky, it's your paying customers who are unhappy. Unhappy customers mean lost customers, and lost customers mean lost revenue.
Bad software can also lead to bad data. Imagine if you had systems that measured your factory's output, rejects, inventory, machine runtime, and machine maintenance, but the data collected was wrong or allowed for corruption over time. Very important metrics such as production output or costs could be inaccurate, and you end up making bad decisions. Have you overcounted your revenue or undercounted your scrap and inventory? It happens, and sometimes it's hard to detect until you are faced with a serious problem.
Then there's the repetition of time and investment, asking the low-priced developers to fix problems they created in the first place. Consider going to a proper steakhouse, such as Bones in Atlanta. You pay a premium for your favorite cut of steak, but you expect it to be done right every time. Contrast that with going to a cheaper restaurant and ordering a perfect medium-rare 12oz filet. You may get lucky and they may nail it. But chances are they won’t. Now imagine if you had to pay every time you sent it back to be recooked. By the time you get your steak delivered the way you want it, you could have just gone to Bones and gotten it done right the first time. And both you and your guests (the system users and project stakeholders (yes, pun intended)) would be quite a bit happier. This is how it can be with cheap software developers. You're paying for time spent writing code, not the finished product, which means you’re paying for their ineptness and resulting mistakes.
Your time as a manager is very valuable. If you have to spend a lot of time going back and forth with the developers, communicating the problems, assessing the fixes, communicating more problems, squashing bugs, communicating once again, then that costs you a lot of money. And that is time and money you could have spent doing something else instead of being spent on the software developers that were supposed to be such a bargain in the first place.
Last, but certainly not least, are the ongoing and everpresent costs associated with poorly written code being difficult to maintain or extend. When it’s time to fix a bug or add a new feature, it could very well take twice as long or even ten times as long as it should take because the code is written so badly. This phenomenon is very real, happens often, and costs the business very real money.
So with all of that said, when you're choosing an outsourced software development provider, consider more than just the hourly rate of the team or the project. It's almost always going to be worth it to pay more upfront, knowing that you're getting what you're paying for. It's worth it to get what you want and get it right the first time. Good software developers-- those who earn what they are worth-- have the knowledge and experience to build software systems that you will be happy with, from both financial and operational perspectives.
In the end, locally outsourced software developers are the better bargain. Costs are lower, mistakes are fewer, reliability and accuracy are higher, and customers are happier. And that all means more money on your bottom line.
To learn more about outsourcing your software development in the Atlanta area, visit the Elegant Software Solutions website or call us at (855) 449-4649.
Photo credit: Mr.TinDC (Flickr, Creative Commons 2.0)