I’ve seen many companies try their hand at offshore development. Some successfully, but most end with failure. The allure of more developers, at lower rates to get a quality product for less money is enticing. Often it comes with an inferior product for the same cost you could get from a local outsourcer. I want to highlight a couple misconceptions as you contemplate this options for your next project, or if you're having troubles with your current project.
1. Offshore Development is cheapest option for great development
At first glance this is amazing, but it's completely not true. Offshore development can be cheaper than what you may pay for from a larger shop but, there are many local shops to you that offer similar or comparable pricing to offshore companies. Offshore company pricing is really setup for large North American corporations. Where a large corporation would pay say $100k for an online application from a large shop, a smaller, optimized, and local shop can charge it’s clients $50k for the same application (yes, the exact same application – I have seen this exact scenario before). Larger shops come with benefits, but with that comes a higher overhead, and a higher cost.
Over the years I have investigated the pricing options from different offshore companies around the world to see if there’s a competitive advantage to gaining an offshore partner. I’m an entrepreneur, if there’s a advantage I can get over my competitors, I want to know about it. The initial numbers always look promising with the lure of a team of all senior developers, with a massive combined experience, at lower per hour costs then what I can compete at. In every single case however, the end cost for services was around the pricing I already charge my clients (that’s right, not just close to what my cost already are, but close to what I charge out). This is not compensating for the added management needed internally to properly manage an offshore project.
Do some more diligence in investigating the shops around you and you will find you can get similar pricing right in your back yard.
2. I can put a Senior Developer or lead on my side to make sure I get what I want
I can’t tell you how many times I see this. A developer on your side will help yes, but it will be overwhelming. It’s a hail mary to expect this to work. What makes me laugh most about this is that these are people that understand the risk of offshore development, but are trying they're best to mitigate it instead of looking at other options. If I have a problem with my mechanic, I don’t send and pay for my friend with who knows about cars to watch my mechanic, I get a new mechanic I can trust.
A team of offshore developers produce more code than 1 to 2 developers can review in a day. If you use more than 2 developers to review the code, then you're really close to just making a small internal development teams anyways, why have the offshore team? I know from my development background as well, that reviewing someone else's code is not an easy as it seems. Viewing, digesting, and approving someone else’s code isn’t a simple ask when you can’t talk to the person who wrote it. Ever reviewed someone else’s paper, exam, or resume right after they wrote it (first draft)? If you have kids and have reviewed a paper for their homework, imagine not being able to to ask them face to face what they were talking about. Now imagine if the paper was in code.
When there are issues, it’s 24 hours to get changes turned around. You will, and do, inevitably get behind. At this point, you, or your development has a choice; do I push back and slow the project down, or do we continue to plunge forward.
Don’t as ask a Manager (Project, Account, Client), Director, or VP that’s outsourced projects how this has worked, ask a developer who’s done this and you’ll get the real story. I’ve seen Project Managers explain how a meeting with an outsource company is going perfect to her bosses, while the internal Tech Lead who came from the same meeting says, “these guys are out to lunch”.
To be successful with development, you need a solid core team founded on the same business principals and standards you have, with fantastic and consistent day to day communication. It’s not impossible with remote teams, but incredibly harder. I have run successful projects with both local and remote teams, but it only works with remote teams where the developers themselves are committed to the same vision I am.
3. I can clear up my requirements further as we go. I can’t wait for this 24 hour turnaround time anymore
Communication and collaboration is the key to success in this industry. In outsourcing, written documentation is the golden ticket. The initial spec and requirements that you develop in the first milestone with your offshore partner is gold. Their contract is written to deliver that, often with penalties if not done on time. There entire business plan is to deliver to their understanding of that spec.
The outsourcing company builds to spec you defined, or to their interpretation of it. They won’t ask that many questions if they feel like they know or can guess the direction. Their business and contract with you is based on deliverables. They can’t wait for the 24 hour turnaround times for their own questions or they will be penalized. They have to deliver to the spec as fast as possible. Period. That's how they make money and stay in business. Changes in requirements, even if you think they are just clarifications, cost them money. They usually have some substantial mark-ups to be able to compensate for some changes, but even still if they do adapt to some of your changes, they will do it as quickly as possible in order to save time and money. If they can’t they will charge you more.
It’s simple business, if I’m crazy enough to accept a general contract where I get paid to take a spec for a house and build it in a month, I will build to that spec as fast as possible. If changes happen, I’ll make short cuts somewhere else. I don’t make money for it being insulated properly, but I get paid in full if I’m done in a month. I’ll throw as many bodies at it as I can and sure, I’ll build a house in a month, but would you want to live in it? I sure wouldn't (just to clarify I would never do that :-)
Offshore can be used successfully. The complexities of working with remote teams makes it more difficult to manage. The complexities of language barriers can make it more complex. The complexities of working with a companies who's contract is to build fast vs build right, make it more complex. The unfortunate reality however is the drastic upside to offshore development that everyone believes in is simply not there. In many cases, there are shops around you that are comparable in pricing, who will not require 24 hour turnaround on questions, and can better work with you get your website, product, or application to your envision.
I am an entrepreneur and I am a business owner, but I’m also a researcher. I continuously re-investigate this every few years, but I’ve yet to see a change in the value. Outsource companies are setup to compensate for larger businesses being over-charged for their services. A small, solid, efficient and local shop can deliver quality, fast and scale-able applications for similar costs with less cost and complexity to you. They may not have knowledge in 80 different programming languages, but do you really need it? They will have expert knowledge in the languages you need to be successful.
Supporting and utilizing local talent has always seemed like a no-brainer to me. Factor in a similar end project cost to those promised from offshore vendors, local shops for me.
Agile Cheat sheet
July 30, 2018
Choosing an IT Service Company to Grow your Online Business