The Offshore Software Development Myth
When I started at my current company as a Product Manager, I was working directly with six on-site developers. They were dedicated to my project. We worked closely together, collaborating. I was able to learn of technical complexities before I wrote the specifications, as opposed to learning of these limitations 24 hours later, and then having to redo all the work already done. We designed, built, and launched an entire e-commerce site in less than three months.
Two weeks after we went live, the company brought in a new CTO. He was a very friendly and extremely technically competent gentleman from India. Two weeks after he was hired, our new CTO fired all six of our on-site developers and replaced them with twelve developers from an offshore development team based in India. The CEO raved about how we now had twelve developers for less than we had been paying for the six on-site guys.
For the next year, we engaged in an endless game of “telephone.” Projects that had taken one two-week sprint with our onsite team now took months to release. More often than not, these months-long projects had to be rolled back due to incomplete or inaccurate implementation.
It wasn’t that our Indian crew were bad developers, but the overnight punch card approach to development was not conducive to speed or quality. I would explain the specs and designs to an Indian onsite coordinator, who would then attempt to communicate them to developers in India in a different language than they were written in. Those developers would then ask numerous questions, which the coordinator would often answer incorrectly due to not fully understanding the specifications and my not being available to consult at 2 a.m.
I would generally catch these problems in testing, which was not my job, but Quality Assurance was also offshore and could not read the specs either. This resulted in significant delays due to constantly having to redo development. Or worse — customers would find the issues live and everything would need to roll back. But this was saving us SO MUCH MONEY, exclaimed the CEO, echoing the the CTO. You just can’t find local developers for this price.
One day, I did the math. Most of our onsite developers were making between $60-$85 an hour. But I gave the offshore group a head start by using the salary of our senior onsite guy, who had been leading the group before the new CTO fired him. He had been making $100 an hour. It had taken them three months to complete and launch the site — which was a significantly larger project than any of the improvements and new features we were adding with the offshore group. That’s $16,000 per month, or $48,000 for the three month project.
The company was paying $55 an hour for the most senior development leader at the offshore group. Practically twice cheaper!!! A steal, right? It would have been, had it not taken the offshore team no less than triple the amount of time it took the onshore devs to get it right. That’s $8,800 a month per offshore developer, or $52,800 to complete the same project the onshore guy would have done in less than half the time for $48,000. The company was losing profit from not getting to market quickly and losing funds by paying more for the development in the long run.
And then the limitations began piling up. There was constant turnover of who specifically on the offshore team was coding for us, and each time a new guy took over, he built his code on top of the last guy’s code without cleaning anything up or focusing on quality or organization. By the time these guys had been working in the product for a year, we were unable to do most of the things we wanted to on the Product team because the code was too messy and “would break” if we so much as asked for a popup on page open — too many things to load on the main screen, ya know.
I pointed out the issues and asked why we don’t hire at least a few onshore developers — we could get so much more done for less and see higher quality. They’re too expensive, I was told. I offered my math. Well, that’s fine and good but the fact is it’s IMPOSSIBLE to find local devs. This has been the new mantra chanted at me ever since they could not argue with my math. And it, too, is a farce. And I have proof. Read on…
Alas, the Indian CTO moved on to another company, leaving the Russian VP of Dev in charge of things. Everything would be better now, the new VP claimed, because he was bringing in a whole new set of developers who were so much better than the Indian offshore group. They were so good, in fact, they could replace our designer and me and do all our jobs too. So the Indian offshore group was fired and in came the Russian offshore group. These guys were more expensive, but worth it, we were told. Oh and they were going to have to rebuild EVERYTHING, so don’t even think about releasing any new features this year.
Over the course of the next few months we grew from 12 India-based developers to 35 developers located in various places throughout Eastern Europe, for which we were paying between $75-$85/hr. each. I won’t bother to do the math on that one for you — partly because every time I do, it triggers my anxiety and I just want to scream. I think you can tell it’s a lot more than the Indian guys and a ridiculous amount more than the onshore guys. And of course the VP had to add a layer of coordinators and project managers to help manage the exponential growth of developers, further increasing the overall spend. All of these were added in Russia.
Six months later we were given the result of their rebuild (which they also designed and then I was told to write specs against — I guess because they were too good to document their own work? Not sure, but ok). Imagine a user experience designed entirely by developers who don’t speak the language the specs or the product is written in. Yep, it was a nightmare. And the best part was it came with a whole new set of limitations absolutely preventing us from doing ANYTHING to improve the product. It was so complex that we local folks could not possibly be expected to design or spec for it. Thus the VP set about trying to pitch hiring the offshore team to backfill Design and Product Management as well.
Meanwhile, I was asked to take on another project and agreed under the caveat that I would be allowed to staff the project myself, developers included. The CEO agreed, despite the VP’s protestations that I would never be able to find developers in the U.S. — it’s just impossible to find good talent here. And even if I found them, they would be far far too expensive.
I found a fabulous development company who staffs only developers in the U.S. I built a team of three developers, all U.S. based and in my timezone, within a month. We had a finished product, built to spec, clean, reliable, and scalable, in under three months. New features were easily added to it. It was a beautiful thing. A thing far more complicated than the rebuild it had taken 35+ developers double that time to complete badly. That’s 23 times less money spent than on the “so much cheaper” offshore development team, for higher quality work produced in half the time.
So what did my company do? They fired my local development team after transitioning the code to the offshore team and promoted the VP of Development to President of Technology. Why would a company reward the person responsible for costing them so much money? Because at this point his offshore development team owned every product in our portfolio and they could not be easily extrapolated from the process without all new development grinding to a halt. And because of traps laid in the contracts of both the offshore development agency and the now President of Technology who brought them in.
This is not the first company I have seen this happen to. The previous one folded after all local employees were replaced by offshore team members and only a single layer of local coordinators were left behind. I hear similar stories from my colleagues every day about the companies they have worked for which have fallen to the offshore myth.
So, what is the solution? Companies need to start really doing the long term math and understand the difference between cheap immediate labor versus longer term return on investment.
Are you in the tech industry and working with offshore vs onshore development? What has been your experience?