

Outsourcing Doesn't Work - thekguy
http://www.codeanthem.com/blog/2010/07/outsourcing-doesnt-work/

======
chanakya
I've read many articles critical of offshoring to India over the past few
years, and they all seem to have the same pattern. The authors all seem to
want to describe what's wrong with offshoring, but what they end up describing
are great examples of the kind of thinking in American companies which leads
to failure. The pattern is almost identical:

\- It all starts with, out of nowhere, 'pressure' to 'outsource/offshore' a
specific project against the will of the developers/managers in the US.

\- These same devs/managers are entrusted with the project and told to 'get it
done in India'. They have no idea where to hire great developers, or what
these developers want after they're hired, but they set up a project anyway.

\- They either go to an outsourcing company or set up a small office in India
to get a 'bunch of developers'. There is no discussion in the article of a
management structure in India and it is assumed the experienced devs in the US
need to do the management and review of the work.

\- It's amazing how often the result cited is that 'it would take us less time
to rewrite what these guys did than to ask for rework'.

\- The company, having learnt its lesson, presumably never ventures into these
waters again.

Meanwhile, companies which know anything about a global workforce have a
center in India set up not by a group of devs who don't want to do it, but at
the topmost level of the company. They hire or send someone really bright who
understands India and the talent market here and spends real effort and
investment into hiring great people and building a real techie culture.

They protect their India teams from the I'll-spend-more-time-reviewing-it-
than-writing-it-myself crowd, and give them real ownership and responsibility,
often starting small but prepared to give more ownership as the teams grow in
capability. They don't set them up for failure by givening them US managers
who want them to fail.

I work at a large setup like this (and there are many others), where teams
aren't 'sending code to be reviewed' by devs in the US, they're defining the
specs and technical direction, shipping products to customers directly, often
much better than the US teams they took the product over from. Not always, but
very often. All the technical management for the product is in India and
they're given real responsibility and authority to set directions for the
technology.

Yes, as the article says, there are great developers everywhere, but they need
to be found, they need to be attracted and appreciated and they need to be
given real ownership. Then you find out if offshoring works or not.

~~~
jtbigwoo
What you're describing doesn't sound like outsourcing or even offshoring to
me. It sounds like expanding the business in new geographic areas.

Successful manufacturing companies would never think of sending off a spec
sheet to the cheapest contract manufacturer and then just sitting back and
waiting for the first production run. But somehow, companies have no problem
sending off a software spec and just sitting back and waiting for a product.

~~~
chanakya
I see what you're saying, but 'expanding the business' is a bit of a
euphemism. The article gets almost everything wrong, but I think it has a good
definition of outsourcing/offshoring that works: save a ton of money and ship
quality software. The article claims this almost never happens, but make no
mistake, this is exactly what is happening from the better centers. The cost
differences are enormous, Indian cost often being no more than a quarter to a
third of US ones. The article has a lot of nonsense about why great Indian
devs will 'charge' the same as what US ones do (as if they have the power of
market makers), but the reality is that you really can get great teams at a
fraction of US costs.

Another reason to call it offshoring is that every time the company stock is
under pressure, US top management wants to let go some people in the US and
move more to the India office. This is often not what the India teams want.
Over the years, they've developed strong relationships with devs in the US
office, with respect for their abilities and acknowledgement of having learnt
a lot from them, and don't want to see themselves as taking away the US devs'
jobs. The best devs in india want to go off and do new things they've thought
of themselves, but are pulled into 'transitioning' new stuff. Managements are
the same everywhere, and these kind of things don't figure in their calculus.

------
plinkplonk
"Outsourcing doesn't work" is as extreme as "Outsourcing always works and is
the cool thing to do". Like many other things there are successes _and_
failures, but I guess that doesn't make for a very sensational blog entry or
discussion.

~~~
mavelikara
She admits as much in the post: "The title of this post isn’t exactly true.
Outsourcing (the way everyone does it) does not work (where work is defined as
save tons of money and produce quality software)."

------
gte910h
1> Vast difference between domestic and overseas outsourcing. Domestic
outsourcing gets rid of a lot of his beefs.

2> You're not paying the developers to develop software, you're paying them to
go away afterwards (so you don't have to keep paying them a salary). The big
savings don't come from the hourly rate, but instead the fact they're not
employees. You get this same benefit domestically.

Disclosure: I run a domestic product development company.

~~~
gaius
No, you're really paying your developers to build domain/business knowledge
and familiarity with the codebase. Then when you need a bug fixed or a new
feature, it's a snap. You're also paying them so the competition can't hire
them. Remember the value of any company engaged in IP is not in the stuff it
owns and not even in the stuff it's already done: it's in its ability _as an
organization_ to identify and solve new and commercially relevant problems.
The value of such an organization is quite literally in the heads of its
people. Without those people what is it? A brand?

Contractors, no matter how individually talented they are, can't do any of
this. You can outsource payroll and catering; you can't outsource IP creation
and survive.

~~~
jpdugan
These are all valid points, but I think you're overstating the case a bit.
Certainly, IP creation should not be routinely outsourced, but it can be
outsourced in limited cases to the benefit of the organization.

I think there's a common misperception that outsourcing firms charge higher
rates because their resources are (supposedly) more technically proficient.
But, at least at my company, this is rarely what's going on. Most of my
clients have excellent technical staffs. Our clients hire us in part, of
course, because we are talented technologists, but the larger part, I believe,
is because of our ability to acquire domain knowledge rapidly and our ability
to retain that knowledge over long stretches of time when we aren't actively
involved in the development process. Finding a comparable resource to hire or
contract is so onerous that it doesn't make sense when what the company really
needs is to achieve a goal now.

In other words, any product development company worth a damn hires as much for
business acumen as it does for technical acumen. Otherwise, what would be the
point?

~~~
gte910h
>any product development company worth a damn hires as much for business
acumen as it does for technical acumen. Otherwise, what would be the point?

Oh most definitely.

------
idoh
I've been the PM on a couple outsourced projects and they both shipped on
time, in scope, and made the users happy.

It does add some load to the PM side of things for sure - the project has to
be really well documented and it is really important to have good
communication channels.

I have noticed that the Indian dev team I worked with was a lot less likely to
challenge the design / schedule of a project, or ask questions when they don't
understand things. This isn't ideal of course but it is manageable by making
sure that the team on both sides communicates well and has trust / good
relationships.

------
RiderOfGiraffes
When you have developers given specs for small parts of larger systems, no
stake in the outcome, small amounts of money, and no say in the design of the
system, I'd expect bad results.

Generally speaking you get the best from programmers when they have a stake in
the larger picture, some say in how and why things work the way they do,
responsibility for their work, and at least _some_ autonomy.

Why should it be different for outsourced work?

------
jister
In my experience it would be the opposite so I guess there is always two side
of every story.

>> The entire idea of paying dirt cheap prices for an overseas developer
defies a basic logic test. Let’s say you’ve got a really bright developer in
India who has managed to overcome the cultural differences to work well
remotely. Why wouldn’t he charge $40 an hour?

Cost of living in other countries are different.

>> If an overseas developer is good, he can charge a comparable rate to
American developers and will stay busy.

That would defeat the purpose of "outsourcing" is it? Again, cost of living is
different.

>> A good developer in any country does not have to fear outsourcing or other
cost-saving trends. Good developers are scarce everywhere. That scarcity
ensures that good programmers will always be able to find jobs and command a
certain high-end rate.

I just wish that all companies would think like you do.

------
jeb
Outsourcing works, else it would not still exist.

~~~
praptak
This is also true for astrology.

~~~
kranner
and homeopathy.

------
dagw
I once worked as a sys admin to a company that decided to outsource all of its
development to Romania. The project failed miserably, but not due to the
Romanians. They where on the whole professional and delivered what they where
asked for. The problem was that management had only a vague notion of what
they wanted, changed the spec all the time (and not just small changes), and
didn't really know how to make money from the software once they got it.

From that experience I gathered that the reason that most outsourcing doesn't
work has little to do with the actually outsourcing and much more to do with
the type of management that thinks that outsourcing all their development is a
really good idea.

------
DjDarkman
Well the funny fact is people outsource their project to me, after a
previous("overseas") developer failed.

The article isn't bad, my problem is that in the beginning it is too damn
general. Yes there are a _lot_ of fails, but there are also successes.

My points are: \- in house developers can fail just as well \- outsourcing can
be done right, and can be almost bullet proof \- management is what really
kills these types of projects

If the management is fit for the task, it can make outsourcing work.

------
senthilnayagam
having a general controversial topic would get lot of discussion

first 3 paragraphs, 3 failure examples.

project size, scale, delivery timeline, expectation, process followed, vendor
rating, vendor capability nothing ever is mentioned, this is worse than
statistics.

I can make some similar absurd claims

"consulting does not work" , they don't tell you what you did not know, right?

"medicines do not work" we know about placebo effect

all this is absurd, insult to our intelligence

------
kranner
"A good developer in any country does not have to fear outsourcing or other
cost-saving trends."

So the attention-grabbing headline is a statement on 'outsourcing' in general,
which I believe means just delegating services to a third-party supplier and
not necessarily to save costs, and the very last line of the post qualifies it
to a 'cost-saving' sort of delegation, so as not to detract from the intensity
of the arguments and yet leave it just about politically correct.

Nifty.

------
fara
The title should be "Outsourcing (offshore) doesn't work (for me)"

------
ivenkys
This article doesn't say anything new that hasn't been said before and has
been said better many times.

YES, outsourcing "almost" always doesn't work.

------
clueless123
The "lower cost of living" argument, is misleading. Yes it is cheaper to live
in many other places, but competitive forces make smart developers gravitate
towards high paying jobs.. if you are paying $7/hr for a developer and you
consider the overhead of management layers,communication costs, cultural
diferences, productivity etc etc.. you end up getting about $7/hr type of
product. If your project can live with $7 components fine.. if you need
better, you usually throw it away and get a new one... ( Exactly as I did last
time I bought a cheap set of tools at home depo.. yea they where cheap, but
lasted a week and gave me a whole lot of trouble and aggravation)

------
IgorPartola
I wonder if a kind of TDD system could work. As in I write a test case and a
function prototype, then send it off to a Mechanical Turk type community.
Someone picks it up, fills in the details, sends it back. Obviously wouldn't
work for some of the more complex parts of the project, but it would save me
time from having to build the almost trivial parts.

~~~
petervandijck
You can still get crudgy code with TDD.

~~~
IgorPartola
Yes, but I might not care. If I ask for a function that takes a particular
data structure and writes it to a particular file format, as long as it's not
in my hot loop, I don't care how badly it's implemented (assuming it works on
all my edge cases). On the other hand I might want to make sure it's
maintainable or fast enough, in which case I might just write it myself.

~~~
dagw
But then you better hope that your tests are near perfect and covers every
single edge case you can think of (and most of those you can't). For any given
collection of tests it is quite trivial to write code which passes those tests
but fails on all other input.

------
rokhayakebe
Outsourcing can work.

The problem biggest is most people who outsource do it to save money. So
naturally they end up selecting programmers who offer a cheap price (which has
nothing to do with they skills).

The second biggest issue is the type of people who outsource have no technical
skills, hence they cannot interview developers.

------
charlesju
Outsourcing definitely works.

The main problem that I with your company is that you guys have poor managers.
A good manager will know how to modularize code and quality assurance in such
a way that outsourcing will be a well-oiled checked and balanced machine.

------
zavulon
I would've changed the article name to "Outsourcing to India doesn't work". I
fully agree with that, and can share many more horror stories.

However - domestic outsourcing (such as to the company that I run ;)) does
work. We use TDD, source countrol, iterations, product roadmaps, daily
standups, code reviews, continuous build integration, and all the good stuff.

Also, all the good domestic outsourcing companies approach the projects with a
"let's build a long-term relationship" mentality. Why wouldn't we? It's much
more profitable and less of a hassle to do a good job and keep getting repeat
business from the same customer than to do a crappy job and keep spending
budget on marketing to attract new ones.

~~~
clueless123
Yea.. and you probably don't charge $7/hr. Maybe the name of the article
should read "Cheap outsourcing doesn't work"

~~~
zavulon
Sure, it's not $7/per hour but it's not $100/per hour either. You'd be
surprised.

