The modern world runs on code. From the embedded controllers in our appliances to the servers that run the Internet, code is integrated into virtually every area of life. However, programming great software is difficult, time-consuming and expensive. Offshoring your software development because labor is less expensive seems like an easy solution to manage costs, however, the hidden costs make the decision a bad one.
Here are some terrible reasons to offshore that are still discussed in boardrooms today:
The hourly rate is a fraction of U.S.-based employees
This argument comes up first when you are being sold on an offshore strategy. The counter-argument is lack of productivity. Well then someone tries to take down any productivity concerns by simply saying to yourself that you can hire three developers for less than one American worker.
Adding more programmers that don’t know what they are doing to a complicated software project just guarantees you won’t finish on time and that you will spend more to finish.
You may want to ask why would your organization even consider hiring 3 people to do the job of one person. Maybe your organization values headcount more than technology innovation. I am talking to you Fortune 500 insurance company.
You will finish your project faster if you have more resources
So you think you can hire three times the workers and get done three times as fast. May I introduce you to the ground breaking book The Mythical Man Month by Fred Brooks. Adding more resources cheaply is a tired and old argument that shockingly still comes up in boardrooms every single day.
The end product will be better
Coding offshore comes with an illusion that some parts of the planet are better writing code than others. However, good code is always maintainable. Offshore code is often annotated, compiled, documented and released using tools, artifacts and languages which bind you forever to that global demographic for maintenance. Trying to unravel the decision making of a culture that is completely different than your own is an effort in futility. If your product miraculously works, just pray you never have to fix it or improve it for any reason.
There are more talented programmers because the pool of workers is so large
You literally have millions of offshore developers to choose from. You can make an army of the best developers in the world right? Except it is impossible. Identifying great talent in technology is HARD. It is so much more than being good at math or computer science. Being a great developer first and foremost is about communication. The foundation of a great development team is great communication, period. The reality of foreign language and culture simply means that searching and finding excellent international talent is incredibly difficult. You can literally interview prospective candidates for hours on end, for days on end and that would be just the first interview. You will invest a man month to find one acceptable candidate you are willing to take a chance on. Believe me because I have personally been forced down this journey many times and every experiment is the same. Most of the people you try and hire will not work out. So you will end up trusting an offshore consulting company to do the vetting for you, but guess what, they are interested in profits not in exceptional developers. You will only get the best developers that consulting company can keep on as underpaid staff, you are never getting the best developers when using an offshore consultancy.
If you are an exceptional developer in a foreign country, are you smart enough to figure out that wages in the USA are 4 times the going rate in your country? Absolutely, and that is why the USA has the best developers in the world. This is also the reason that Catalyte only hires onshore developers.
You can start your search for developers offshore, but all roads will lead you back to North America. Don’t be conned into spending more of your money chasing cheap resources. There are no shortcuts to writing great code. Save money, don’t talk yourself into any of the terrible reasoning above. Do it right the first time.