App development myths #1: The cheap offshore developer
In this series of posts, Glowdot’s CEO and lead developer Rick Strom discusses several myths, misconceptions, and misunderstandings that threaten to derail inexperienced or non-technical founders of tech startups.
Note: this post is reposted from StromCode – Rick Strom’s personal blog.
In the 10+ years I have been developing for mobile platforms — 15 years if you count Windows Mobile! — I continue to be amazed by the number of well-intentioned founders who fall for the trap of the cheap offshore development firm. I am not exaggerating when I say I have never heard of a development that went well that leveraged a team of developers from a shop in India. The failure rate is so insanely high that I wonder how the word hasn’t spread far and wide to stay the hell away from offshore code factories.
My best guess is that it has become a sort of industry meme, and as such it has woven itself so deeply into the fabric of the industry that it will take more than countless blog posts, post-mortem talks, and shared war stories to make it go away.
We have a somewhat cynical but also very true saying around here, which is that our best clients are those who have gone offshore and been burned — often badly — but not to the extent that they threw in the towel or ran completely out of money. Not only have these clients learned deep and valuable lessons about the process and their own product by testing the waters, they have found a profound respect for the process of developing quality software, and an even more critical respect for the people who write that code.
The misconception here is at its worst when it can be summed up as follows: all developers are the same, the only thing differentiating them is the price.
The setup looks something like this: a non-technical founder sends out an RFP to several development shops — some are local (like Glowdot), some are offshore (typically India but sometimes Russia or even China), and some are fronted locally by middlemen outsourcing — sometimes without your knowledge — the project to an offshore shop. Unsurprisingly, you’re going to get three wildly different quotes: the local shop will be the highest, followed by the middleman, who is taking a slice off the top of the Indian shop, and at the bottom is the offshore dev shop. The range in these quotes can often be incredibly bizarre. I’ve heard of projects that should not be attempted without budgets of at least hundreds of thousands of dollars getting quoted at silly amounts like $500. And that might sound crazy, but if I told you one guy was selling a Ferrari for $250,000 and another guy was selling one for $1000, and you knew absolutely nothing about cars, you can imagine how someone might be so utterly baffled that they just pick a quote in the middle.
But remember! That middle quote is just the lowest quote, with a middleman adding a little extra for himself. Its very possible that the developers that would be working on your project in both quotes is the exact same team!
So, what is really going on here? Well there are a few truths you need to know to understand why local developers are more expensive — and why that extra expense is probably justified.
Software development is a very highly skilled endeavor
It is not easy to build good quality software. A talented developer has a passion for what he does, he has a quality education in mathematics and computer science, and he has years of experience in building complex software products. That team in India? They don’t have any of this.
Now don’t get me wrong: there are brilliant programmers in India, China, Russia… anywhere. But they are all working for big companies, and they earn good salaries. They most definitely are not crammed into a tiny room building apps for $5 an hour.
We had a series of meetings about 6 years ago with a very, very large company. You have absolutely heard of the company in question, and probably bought several of their products. The product we were brought in to discuss was of such importance, that our second and all subsequent meetings were with the founder and CEO. This was his pet project, and his baby. This was the product that was intended to bring this very big, very successful company into the digital age. The problem was he could not wrap his head around the cost of hiring a development team in California to build this product. He had quotes from developers in China and the cost difference was so vast, that he could not justify going with us. No amount of explaining on our part was helping.
Ultimately, they did not go with us. Ultimately, the product was never launched.
So why did he have such a hard time understanding the cost? Because his business was built on the idea of manufacturing physical products in China, and selling those products in the US at a considerable markup. The company had made billions doing this. And from that founder’s perspective, software was just like any of the other products he built and sold — you send the specs off to a factory, they build it, and you start selling it.
Problem is: software is not like that at all. You can’t make things go faster by throwing more people at it. You can’t make things more efficient by organizing teams into an assembly line. In fact, doing those things is a sure fire way to plunge your project into chaos. Which, unfortunately, is what happened.
Good programmers are in short supply
Here in the US, its unlikely that anyone who gets through a Computer Science program in university will ever go a day without work. In fact, the supply of programmers is so short that the industry is constantly begging the government to simplify the process of giving Visas to foreign workers.
I’m sure almost everyone at this point has heard of the perks that come along with a job in technology — amazing salaries and benefits, free food, massages, and even in more and more companies, unlimited time off. I actually saw a job posting here in Santa Monica yesterday that boasted it’s employees averaged a month off a year. And these companies still have a very hard time filling their vacancies.
So with that in mind, you can understand why the cheapest developer is almost certainly not the one you want to go with. Anyone willing to drop their price to compete with offshore development quotes is desperate for work in a way I don’t even want to think about. If your product matters to you at all — and let’s be honest, anything worth doing is worth doing right — then you want the best of the best working on it.
Cheap now, expensive later
Finally, the most important advice I can give you is that trying to save money now is only going to cost you dearly in the long term. This is so incredibly true in software that I can’t overstate it. We have heard stories of companies that went offshore because a project was quoted at say $20,000, only to end up, years later, a million dollars in the hole, with nothing to show for it. In that specific example, Glowdot eventually took over development and built that product for a tenth of what the company blew on a supposedly “cheap” offshore developer. That lost money could have been better spent marketing the product or continuing the development lifecycle.
But how does that happen? How does a $20,000 project turn into a million dollar failure?
Well, first off, the quote was nowhere near accurate. Even at the ludicrous hourly rate these shops tell you you’ll be paying, $20,000 doesn’t go very far on a complex, multi-platform app with a database and backend system. Once the $20,000 is burned up, the company usually notices a few things:
- The product isn’t finished
- What is finished, is buggy and confusing and unusable
- Lots of time has passed
So here you are: several months later, you’ve burned though your budget and don’t have much to show for it. You have two options: shut it down and go find another developer, or yell and scream and demand your developer get this back on track.
The response from these shops is almost universally the same: “we can bring a few other programmers on board and work on this for another month”. This of course comes with a new quote for the changes. Now that the team has expanded, you’re burning through money several times faster. But hey! Maybe you can turn this ship around!
Months later, things have gone from bad to worse. The product is just as buggy and unusable as before, but since you requested a bunch of new features, you just have even more buggy and unusable features. You realize now that what you really should have done is fix what you had, then add features once your product is at a stable state. Why didn’t your developer give you that advice? Well, because they aren’t in the business of building software, they are in the business of invoicing you. And now you’re up to $100k invested in this mess.
At that level, you probably have raised money from friends and family who trusted you to build this thing. And you feel obligated to finish what you started. So you try to change course, scale back, strategize and plan – this time you want to do it right, and use some of the knowledge you’ve gained! But you’re in too deep to start over, so you throw more money at your developers. You yell louder, you ask for more team members. And you keep grinding away. But the project is just getting more and more complicated. The programmers who initially started your project are gone and have been replaced by new programmers. You start to realize these guys don’t have any sort of system or development philosophy other than “just start writing code”. You start reaching out to local programmers asking if they can fix the bugs, and they all politely decline to work on your project. Why? Because fixing bad code is a nightmare, and there is plenty of work on projects that aren’t a nightmare.
In the best case scenario, you have a some money left, and you decide to hire a competent local team. You meet with your programmer in person and they discuss the methodologies they use, and the structure and strategy with which they approach software development. They talk to you about their past clients, and you recognize the names. You realize you could have saved a lot of money and heartache by just hiring the right team to begin with.
In closing, I invite anyone who stumbles upon this post to spend some time on Google looking for war stories of companies that tried to go cheap when sourcing their technology. Get in touch with us to discuss your project and ask a lot of questions. Even if we don’t ultimately build your project, we pride ourselves on our willingness to help non-technical founders understand the crazy and complex business they are about to get themselves into. Glowdot has been building software for almost 20 years — and I personally have been doing this for over 30! We have seen it all, and we can help you navigate this treacherous landscape better than anyone in the industry. That’s why we’ve been trusted by some of the biggest companies in the world.
Send us a message and let us show you what we can do for your company.
No Comments