Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I know there has been a fair amount of discussion on here about outsourcing/offshoring, and the general opinion seems to be that at best it is difficult, and at worst it fails.

I have direct experience of offshoring myself; a previous company, where I was a development manager, wanted to send some development offshore, and we ran a pilot scheme to see how well it would work.

Of course, it was a complete failure, although it is not completely clear to me whether this was down to the offshore developers being less talented, the process, or other factors (no doubt it was really a combination).

I can see as a business how offshoring looks attractive (much lower day rate), but as far as I can see, the only way it could possibly work is if you do exceptionally detailed design up front, with incredibly detailed specifications; and by the time you have invested in producing that, you have probably spent as nearly as much as if you had written the actual code locally (which I think is an instance of No Silver Bullet).

So, what I want to know is, does anyone here have any experience of offshoring actually working ever? Especially if there are any success stories of it working in a semi-agile way?

I know there are developers here from all over the World; has anyone worked on an offshore project they consider successful?


migration rejected from Nov 3 at 14:42

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as too broad by MichaelT, Snowman, durron597, GlenH7, Bart van Ingen Schenau Nov 3 at 14:42

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

It can work rather well if the country that is being outsourced to is less than 8 hours diff and has strong engineering education but not great economy, say Czech Republic or Serbia (relative to New York) AND everyone on the team has at least 30k score on StackOverflow and they meet other criteria as well and you send one of your senior guys over there for a month or two AND you pay them very competitive salary. It helps if they also have 5+ years of experience working for real companies, so that they have seen the good, the bad and the ugly. – Job Sep 11 '12 at 18:09
possible duplicate of Advice/guidelines for managing a distributed development team – gnat Aug 6 '13 at 6:21
@gnat the question is different and the character and content of the answers are different, so it depends whether one's criteria for marking a question as a duplicate requires that a question is a duplicate or not. – glenatron Aug 8 '13 at 12:21
@glenatron well to me, connection is more than apparent: one who has "worked on an offshore project they consider successful" is qualified to share "advice/guidelines for managing a distributed development team ". That is, answers in target duplicate address the issues raised in this question... unless of course one reads this question as a blatant opinion based polling, proven bad fit for SE Q&A model: "does it ever work? - yes / no". Actually, if you take a closer look at best answers in this question, you will also notice that these would make a better home in targeted duplicate – gnat Aug 8 '13 at 12:38
@glenatron that makes sense, thank you (retracted my vote) – gnat Aug 8 '13 at 17:58

3 Answers 3

Let's rephrase the question:

Does remote development (i.e. telecommuting) ever work?

Because take away arbitrary borders, and that is what your question boils down to. The IT crowd has a firm belief in the enlightenment of telecommuting, but only if you're local. This makes little sense.

I know of one company that offshores their entire development team. A couple of years ago, I spotted a job advertisement that was in my "sweet spot" as they say, and so I applied. The job advertisement was basically a duplicate of the bullet points on my resume, yet I got the standard:

We're looking at more qualified candidates, blah blah blah.

I was somewhat taken aback, as having been in a hiring situation before I knew this is a rare combination of skillsets, so I emailed the guy and asked what gives... He says they don't hire North American programmers.

Your cheese is being moved.


The question brings forth the well known problem of "Sampling Error" known to science.

I have worked on both sides (as a manager outsourcing and as an entrepreneur running offshore) and the only thing that comes to my mind is that one pilot project is not sufficient to judge the quality or feasibility of offshore development. The economies of scale do not come into picture.

As mentioned earlier the SWITCH companies rely on repeat work and that is working greatly for clients.

There are a lot of assumptions made while the client out sources their project (culture, work ethics, expertise, etc) which is not shared/known with the off shore team. The offshore team has to learn these things by trail and error method, this is a huge task. And the manager outsourcing does not consider it worth telling before-hand and creating a well laid out document detailing all these.

As mentioned in another answer in the thread, for porting and existing application to new technology went smoothly. Mainly because the offshore team had a reference which they can consult whenever there was a confusion.

As far as over-budget, under-featured or delayed is considered, the problem is universal to software development and out of scope of this question. So offshore development cannot be blamed for this.

If you want to test the feasibility give the offshore development companies a proper sampling. i.e. instead of jumping to conclusion after a single project, wait for second project. Check the performance metrics of second project with respect to the first one. Generally the second project is better performing as the offshore team has been acclimatized to the philosophies of the outsourcing company.

Offshore development is here to stay, mainly because of internet and cheap labor. It would be prudent if we do not make this mistake of comparing apples with oranges. If you want to compare an outsourced project, compare it with another outsourced project or the same outsourced project with different company.

Furthermore, it would be enlightening to all of us if you put some more pondering into the failure of your out-sourced project and share your findings.


Offshoring: does it ever work?

Yes it does since many (large) companies recourse to offshoring/nearshoring/outsourcing and many (even large) companies make revenue out of it.

The main two reasons that offshore projects tend to fail more often than in-house ones from my POV are:

  1. The people from the hiring companies responsible with offshore projects are those who are actually mediocre.
  2. Brain drain from the offshore countries.

I am going to try to argument this statements bellow.

Are offshore programmers mediocre ones?

The assumption that programmers who are developing/maintaining code in offshore are mediocre programmers while the others are not is generally false. It can be asserted that are (on some degree) more mediocre but not that those in in-house projects are great while those in offshore are mediocre; actually generally speaking most programmers are mediocre no matter how they write the code.

A basic rule of sociology says that people are the same everywhere when observed as large groups; this obviously applies to programmers too. There is no reason to believe that in the US more people are born, with capabilities of being great programmers, than in India for example. The only way to measure a good programmer is the natural wish for learning new things in the domain and how these things work and brain capabilities. With a connection to Internet anyone with help from brain and eagerness of learning can know anything.

US programmers have advantage over Indian ones by being better educated (better universities) and invested more on; on the other hand many say that university does not really matter in the long term. Also they are better experienced since the software tradition is older in US and they worked on more interesting projects with larger budgets. But all of these do not really matter if the programmer does not like what s/he is doing or if the brain does not help, even if s/he graduated some Top 10 University or has worked on some kick-ass project; s/he will not be a great programmer but a mediocre one.

Brain drain from the offshore countries.

The main problem in the offshore place is offshore brain drain; many good programmers (not all) tend to leave the country and thus an offshore job for a better job (better salary, better working condition, more interesting project) working probably in an in-house project in a developed country. Probably a myth, but may be half true that the second most spoken language at Microsoft is Romanian. Speaking of language, offshore programmers speak at least two languages English, the native one and possibly the clients' if they are not from US/UK (German, French, Italian); this may say that they are not so mediocre, at least as people (not necessarily as programmers).

The people from the hiring companies responsible with offshore projects are those who are actually mediocre.

The great programmers that remain doing offshore programming may be arranged in a Surgical Team (somehow the way Fred Brooks says) and still do great jobs, but the problem comes from the other side. Suppose I am a higher manager and I have 11M $ to build to projects: one in house with a budget of 10M $ and one offshore with a budget of 1M $; I also have 2 lower-management/designers teams who are going to be responsible for each: one team is a great with lots of experience but the other not so great. How am I going to appoint them? Should I put the less experienced/mediocre project manager(s) and architect(s) to the in-house project which costs 10M $ or in the offshore one which costs 1M $ ? The answer is pretty simple: since offshore projects are not so expensive and thus not so risky as in-house ones they are going to be designed/managed/watched-over by more mediocre programmers/managers from the in-house company. The great programmers which remain in the developing countries for offshore programming often complain to their (offshore) managers that the clients are mediocre, they do not understand what are demanding, are having overrated estimates etc.


protected by ChrisF Feb 11 '11 at 23:42

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.