
Why Software Outsourcing Doesn't Work  Anymore - nkurz
http://www.yegor256.com/2015/10/27/outsourcing-doesnt-work.html
======
makecheck
I would say it never really _has_ worked; there is no "anymore".

One problem in outsourcing is the thinking that programmers are somehow easily
replaced; the "just find 'a' developer" idea, with little to no thought put
into whether it may matter if the chosen team has any idea what they're doing.
Two anecdotes. Years ago I was given such a team, to maintain a system
primarily written in two different languages; the manager in charge gave me
two guys from the other side of the world who were to be "taking over" the
project despite _not knowing how to program in either language_ , and there
was no arguing this point. On another project, a resource from far away was
graciously donated to me to help with a C++ project; I later realized he had
chosen to recreate several container classes in C++ as if he'd never heard of
the STL.

Another problem is the fundamental misunderstanding of culture. Managers in
the U.S. seem surprised when they encounter wildly different behaviors
overseas (gee, it's almost as if they had hired someone from a completely
different part of the world!). For instance, I have encountered remote groups
that are _astoundingly_ good at self-preservation, who will basically change
their minds and do whatever they want at the last minute to prop up their team
at the expense of your project. Individuals, too, may have side projects that
they care about much more than anything you have asked them to do.

~~~
chris_wot
Oh boy... That leads on to another thing that most non-technical (and even
some technical!) managers don't understand: IT people are not drop-in modular
components that will instantly work!

Here's an example: I did some BI work in Qlikview. The existing reports for a
particular division were badly written, and were each loaded manually for each
client. Due to a number of reasons, we weren't able to change this situation
immediately, but we kept what we had running even though it was incredibly
inefficient.

Eventually it got to the stage where we needed to get the reports working in
an automated fashion. I had a solution I was willing to work on, but was
unable to find the time to do it as my primary responsibility was to another
BI project.

The manager kept putting off getting new resources, and tried to "fix" the
reports himself, only ending up breaking them completely.

The solution that management came up with was to employ a new resource.
However, by the time they employed the new person they had 3 days to get the
reports working. The problem was that even though the new person understood
Qlikview exceptionally well, he didn't understand (and had no way of knowing
immediately!):

1\. What the dashboards needed to show (not documented)

2\. The data sources used in the Qlikview dashboard

3\. The way the Qlikview load script had been coded

As the guy was really, really good it ended up taking just under two weeks to
get to grips with the underlying data structures and business requirements.
The implementation to fix the numerous dashboards took another week. Then
fixing any issues took another week and a half. So that was about a month and
a half of work to get the guy up to speed, then implement a solution.

Management expects someone to be like a field replicable unit, that you can
drop-in and replace on a project. But that is not the way these things work -
the nature of people and projects (which are each different) is that there is
ALWAYS a lead time - sometimes up to months depending in the complexity of the
project - where the new person you employ (no matter how good they are) needs
to familiarise and understand the systems and requirements of the business
before they can actually do productive work.

~~~
pnathan
Orthogonal nit, you tripped over one of my soapboxes: "employ a new resource".

People are not resources, like a vein of coal. They are _individual_. Which
was your point. But using the word "resource" instead of "person" perpetuates
bad ideas.

~~~
devonkim
When you deal primarily with people whose primary roles and careers have been
driven entirely by Taylorist managerial principles (fundamentally, the belief
that managers are the ones that know best and most efficient instruments to
allocate workers and efforts instead of relying upon workers themselves) then
you're somewhat forced to deal with the language of contracts where people are
interchangeable with the term and it's a reality you have to just deal with if
you do business with them. It's treating all your workers like you're playing
Starcraft rather than trying to manage an elite Navy Seals team where each
person is fully capable of independent actions and thoughts. Rather, most
large companies are used to rather low quality labor and I might dare to say
that some companies _prefer_ their "go do something" labor as fairly narrow
while their managers are showered with praise and glory constantly for the
work of those they're managing.

It's hard for a lot of people on here to imagine dealing with 100k+ other
coworkers but at a point you oftentimes have to abstract away what makes
people human to work in most large corporations. I'm not advocating that this
is correct, but much like slavery and flat world theory, I hope this becomes
outdated and struck out as both completely ineffective from a business
standpoint as well as unconscionable.

~~~
bpyne
Unfortunately I think we're still stuck in thinking of software development as
being like assembling a product on a manufacturing line. Assembly lines
reproduce a product model in volume. People forget that developing the model
takes loads of time from designers and engineers. Software developers are the
designer, engineer, and assembler all at once.

~~~
cbsmith
> Unfortunately I think we're still stuck in thinking of software development
> as being like assembling a product on a manufacturing line.

Really? Seems like most people describe it these days as a craft.

> Assembly lines reproduce a product model in volume.

Right, and software development is the process of building the assembly line.

> People forget that developing the model takes loads of time from designers
> and engineers.

But they know design an assembly line for a new task takes loads of time from
designers and engineers...

> Software developers are the designer, engineer, and assembler all at once.

You can break of that work if you are working on a project of sufficient
scale.

~~~
serge2k
> Right, and software development is the process of building the assembly line

It's more like the process for developing the prototype.

~~~
cbsmith
No, you prototype out the assembly line when you are working on it (actually
not that different from how assembly lines are designed), though I guess in
some cases you sell the assembly line itself, rather than the services it
provides or the products it produces.

------
timtas
The author is on the right track, but he fails to form a serviceable thesis.
You should never exchange cash for services if you follow his thesis strictly.
My ten year relationship with my own awesome dentist falsifies this thesis.

To find a better thesis, we might ask, what's the difference between my
dentist and WeCodeLikeNoOneElse, Inc?

I think the main difference is reputation, the role it plays the given
marketplace. I'm not sure why, but the market for offshore development has
never counted on reputation. I can't name a single firm. I can't even remember
the name of the firm I recently interacted with as a contractor coming in to
to clean up their mess. If I were to suss out any one of the unsolicited
Linked In offers for cheap development I get each week, where would I even
start?

My dentist has built up a loyal clientele by word of mouth in the community
over a lifetime. The community is small enough that a shady dentist would be
run out town in no time.

Conversely, I do know the names of some local dev shops, and I know their
reputations. The ones with good reputations do not treat their clients purely
as cash cows. Although they face the same, or worse pressures on utilization,
they do quality work, at a premium. They have built brands and will grow or
sink mostly on reputation. They still constantly face incentives to pump out
shit, but there's a counter balance that's missing in the offshore outsourcing
market.

~~~
cantrevealname
> _What 's the difference between my dentist and WeCodeLikeNoOneElse, Inc?_

Lack of reputation might be a factor in why software outsourcing sucks, but
the dentist analogy doesn't work.

How does the average person find a dentist? They ask their neighbor or co-
worker, who says, "Well, I go to Joe on Maple Street, and he's OK." Seriously,
how many dentists does your neighbor actually know? It's probably exactly 1.
How many dentists has your neighbor gone to in his _entire_ lifetime? Probably
2 or 3. He has no basis for making comparisons.

I trust neighbors and co-workers to give me movie and restaurant
recommendations because the average person has experienced hundreds or
thousands of those.

PS: Here's how I find a dentist or doctor when I move to a new city: I do a
Google search for ones nearby, look up their credentials, then choose one who
went to a recognized university and whose degree is not too recent
(inexperienced) and not a terribly long time ago (outdated knowledge,
retirement age). This can't be any worse than selecting the 1 guy that your
neighbor knows.

~~~
ThomaszKrueger
As for dentist, I found mine the best way possible - a coworker's sister
studied with this dentist told my friend she wouldn't trust anyone else. Been
going to his office ever since.

------
datashovel
I think one of the biggest problems with outsourcing comes from 2 groups of
people.

Generally these are the most vocal proponents at first, only to become some of
the most vocal opponents later. The way I would classify them, generally
speaking, are: (a) business people looking to keep costs down but don't know
the first thing about running a technology project, (b) those who think
"outsourcing" means "I tell you the idea, and you do all the work".

Technology projects (especially custom ones) are hard, and they require a lot
of due diligence and hard work from all parties involved.

I would never recommend a non-technical person / company to try outsourcing.
It's a recipe for disaster. That is unless you fully trust the person / group
of people who you're putting in charge of the project.

EDIT: Thought I'd add a clarification here. Never recommend outsourcing of
CUSTOM projects that is. Cookie cutter solutions it's obviously a different
story...

And I guess another edit would be to differentiate "scale" of a project. Large
scale projects which will be "centerpieces" to a company, are the kinds of
projects that I read about being outsourced which alot of times seem to turn
bad.

~~~
odonnellryan
> "outsourcing" means "I tell you the idea, and you do all the work".

It is okay for anyone to think this, but in any project it is not okay for the
workers to leave it uncorrected.

I do contract software projects in the US (near NYC). I get this on every
project. A loose scope and a general idea, and then the go-ahead.

It is my responsibility to refine the scope. Sometimes that takes an email,
sometimes a longer discussion, and sometimes it takes a small prototype for
the client to play with to find out if it is right for them.

It would be incredibly dishonest to just make a project based on what I saw
from the beginning. It'd be dishonest of anyone in any industry.

"This is what you asked for!!!" does not cut it.

~~~
VLM
> those who think "outsourcing" means "I tell you the idea, and you do all the
> work"

What mystifies me is people will laugh in your face if you try this outside
programming, but are taken seriously almost exclusively by the programming
field, even decades after its acknowledged most projects fail. Clearly other
forms of enlightenment have failed so far; maybe extreme sarcasm would work?
We've tried everything else and it hasn't sunk in yet...

So I've got an idea. Psychedelic accordion music. Awesome huh? Now
unfortunately I can't play the accordion, but I'm sure I can just take
advantage of some poor person on the other side of the planet who can play an
accordion and currently can't afford to eat. On one hand I have to move fast
and break things so I'll need to hire the first accordion player I ever meet,
on the other hand I need to appear to be pinching pennies so I'll need to hire
the cheapest accordion player on the entire internet (and what could possibly
go wrong with that?), and on the third hand I could only hire ivy league grad
accordion players who live in only one town but then I'd have to complain
constantly about the small supply and high salary demands and extreme
groupthink ... Eh I'll get the cheap guy, what could possibly go wrong.

I've got another idea, I'm going to disintermediate the legacy plumbing
industry by positioning my new unicorn as an intermediary (err pretend not to
notice that) in the lucrative and exciting excrement removal field.
Unfortunately I don't know anything about plumbing or sanitation or building
codes, but move fast and break things, and I can just hire some people who
know what they're doing, I'm an ideas guy you know, so I deserve all the
rewards. True, the guys who told me they know plumbing, also do not know
plumbing, and we're a little unclear on what flows downhill or uphill or
whatever hill. But that's OK because our unicorn's iOuthouse shipping rate is
going exponential. I even greenwashed my product by making it out of
organically grown free range hemp cardboard, which is a good selling point for
the tens, maybe hundreds of potential customers. Oh wait, did I say that? I
meant tens to hundreds of millions of potential customers. I also integrated
"social" and "chat" by implementing "long line to the bathroom" although the
lawyers claim professional sporting events have prior art. Oh well off to
collect the billions I'm entitled to, got an IPO to arrange!

~~~
jo909
But somehow you can build a house without knowing much about static loads,
roofing, plumbing, insulation, heating etc. Of course the less you know the
more you risk that someone sells you crap, but that is nothing special to
outsourcing.

I would of course expect to be able to tell a producer/composer to come up
with some accordion music, and that he will know what questions he has to ask
and when to send me a demo for feedback to make this a success.

~~~
chris_wot
Construction projects, if not managed by someone who knows what they are
doing, absolutely do go over budget and overtime. The difference is that on
construction projects, construction project managers who work for the company
commissioning the building work are experienced project managers who have
normally been working in the construction industry and are knowledgable and
skilled in many areas of construction and do know what can be delivered, what
should be delivered, and what they need to go when they encounter problems and
project slippage.

In fact, in construction there is actually MORE outsourcing than in software
projects, because in actual fact you'll contact out specialise work (e.g.
Electrical work) who then often five work to subcontractors.

~~~
jo909
Where I live it is very ususal to just hire an architect and then a general
contractor. So the party that commissions the project (has the "idea") really
has little knowledge at the start of the project. But of course they depend on
their partners to handle all the project management.

Which all is just to say: I think it is very reasonable and common to only
bring the idea and then hire someone to do the work. The problem with what is
mostly called "outsourcing" in the software industry is not the fact that you
want to hire someone, but more in how careful you select your partners.

~~~
VLM
If the secret sauce of unicorns were mere commodity shovelware, I would agree.
There's nothing wrong with outsourcing non-core competency side jobs or
commodity shovel work, happens all the time.

Or rephrased, is a tech unicorn not made out of tech?

~~~
JoeAltmaier
I believe it is not. There is a user behavior and a data flow that go together
to get traction. Marketing is probably the most important part. Luck being the
2nd. Tech may be way down there, alongside carbon paper.

------
cfontes
I've been part of a project that by the time was called "The most expensive IT
project on the planet" and it was planned, run, build and supported by
outsourced resources.

I can't stress this enough, this is a mistake, having your
management/architecture teams from outsourced companies is just stupid. Nobody
is responsible for anything they have no risk at all, it's the best job on
earth.

You see those guys come, change everything to their management/architecture
style, manage it like they own the company making reckless decisions and
before the boat hits the rock they jump ship preferably to join the competitor
in a similar project (because they copy each other), because now they have
experience and know-how... This cycle is still going on and I know people
making a living from this, some are completely clueless but can successfully
switch jobs because "They were part of XXXX team in YYYY company" that nobody
knows was a complete failure yet.

They still have not finished it ( 2 years after ) all personal from the
initial setup are gone, all fault of course is on them now, so new guys can
continue to make reckless calls that will probably cost billions of dollars
and they will receive nothing in the end.

This is a terrible waste of resources and it's the Cancer to business
nowadays.

~~~
toptalentscout
The problem is, internal people often are afraid to take risks to implement
something brand new because they know they will be going through performance
reviews. When the internal staff is empowered by management then it can be
done but managers are often not inclined to trust their people enough to
empower them at the required level to take on high risk projects.

There's also a liability aspect in publicly traded companies. It's easier to
lay blame on the outsourcing company when the project fails and conversely
take the credit when it succeeds. Either way, the outsourcing company wins
because they get the latitude to design and program their way and get paid as
well as experience.

For public companies, outsourcing is a win/win and the cycle continues.

~~~
cfontes
You payed a billion dollars for a solution and instead of a product that can
be used you get to throw the blame of the failure in someone else? I can see
your point regarding internal people making hard decisions, but this is simply
a "hide my ass" win/win.

If your managers/team can't manage your innovation projects you should get
someone that can, otherwise the market will eat you after a couple of those
"wins", in the long term you are losing.

~~~
toptalentscout
I wasn't advocating, just mentioning what I've seen. your message is right,
management needs to trust their people more is what it comes down to.
Incidentally, it's paid.

~~~
cfontes
Yes, I got it, sorry if I sounded like I didn't...

------
anovikov
I will add one more reason: with appearance of online outsourcing platforms,
best developers flocked there as individuals (and that is the only way to
really reliably make $4000 as a developer in Ukraine as far as i know). They
don't have middlemen, which normally only get in the way by obscuring the
communication, and easily beat any outsourcing shops (which don't do much
valuable management anyway, just lease out workers). Because individual
freelancers and offshore outsourcing companies' employees are doing the same
work, only people who left with the agencies are those who are inept and know
it - otherwise they'd go to Upwork themselves and get an instant 3x raise. So
don't expect an agency to have good people...

~~~
SimpleMinds
Mostly true, with caveat: it's hard to find big projects as single freelancer.
Simply put, you won't be able to score a client that needs (let's say) both
server side, front end, android/ios app finished in the same time. When
working in (good) outsourcing shop, you work as a team.

I worked for two good outsourcing shops and both experiences were great.

~~~
swah
Good point - I wonder how many people can do all 3 (web/android/ios)? Is it a
good strategy?

~~~
SimpleMinds
I can do all three and you can find a lot of people who can. The problem is
how many things you can do at once.

------
GregQuinn
Although his comments are accurate there's nothing terrible profound about
them.

For quite a while everybody has realized that out sourcing was never anything
more than labour cost arbitrage, dressed up with fairly empty "sales"
rhetoric.

However he misses a more fundamental way in which clients and outsourcers
interest are misaligned. Because outsourcers are essentially selling bodies
they have no incentive to become more efficient through labour cost reduction.

I suspect this failure is the real reason for the current "in sourcing" vogue.
As software development and delivery becomes increasingly automated the labour
cost component will drop, along with the pressure to outsource.

The outsourcers business model is fundamentally broken and it's only a matter
of time before this shows up in the bottom line.

~~~
quonn
> As software development and delivery becomes increasingly automated

How? Software is by definition like _manufacturing_ a single item. Production
(copying) is already free and maximally automated.

In two centuries we have made very little progress in automating development.
I don't see that changing soon, especially not for software.

~~~
adrianN
We did simplify software development _a lot_ since the dawn of computers.
Compilers, IDEs, standard libraries... it's not really automation yet, but a
programmer today is much more productive than a programmer forty years ago.

~~~
nmrm2
Right, but the definition of a minimum viable product is also fanstastically
more complicated today than it was forty years ago...

~~~
kuschku
90% of what startups recently provide is not complicated technically, but only
from legal or business standpoints.

Dropbox and Uber, just to name a few, are technically very simply implemented,
and had many competitors before and after them.

Especially in the startup scene no hard theoretical issues are solved anymore.

You don’t see a startup develop mpeg-5

------
ohthehugemanate
The argument doesn't make sense. He brings up a lot of the challenges of
outsourcing, and makes offhand remarks about good ways to address them. But if
his argument were true, no contractor would "work".

The entire contracting industry fits into his description of "outsourcers".
Lots of contractors work effectively for their clients. As a person in ANY
business, if you believe that your only incentives are to get your clients to
pay more, more often, then you will fail. Fucking your customers will wreck
your business in any market. The customer has to feel like they got some value
out of the deal.

The real incentive for a contractor is to provide the best (perceived) quality
of product, for the highest competitive price possible. Even the bottom-price
bargain barrel shops know this. They're just bad at it.

~~~
achow
I think the author has a point, as software development is lot different than
most other contracting gigs.

In most successful contracting jobs one would have a very clearly defined
scope (processes and materials to be used, what is a clear outcome, etc.).

Software development has lot of ambiguity - processes to be followed,
materials (technology stacks) to be used, what is a clear outcome (nobody
knows unless it is validated in the field - apart from internal testing
scenarios).

~~~
raverbashing
Exactly

Most of the time, the people going for upwork have no idea of what they want,
they just want 'an iPhone app'

~~~
spdionis
But don't forget that there are also good clients. Honestly it's not that hard
to tell this kind of clients from the good kind.

------
d4nt
I run a software outsourcing company and I recognise many of the issues
raised.

I did spot a few problems with the article though. Firstly, you should never
outsource in order to save money. The author kind of assumes that is why
you're outsourcing. That doesn't work.

The main reason to outsource should be to buy in expertise. Many companies do
not really know how to document software requirements, or what a non-
functional requirement is, or how to design user interfaces, or what makes
good UX, or what a good test plan looks like, or how to run user acceptance
testing.

Some companies don't even realise that those things are important. They just
think that if they just hire a few Ukrainian Java Devs, they will get good
software out the other end.

Some dev shops don't even realise that those things are important either. They
just act as a middle man. Connecting you to the Ukrainian Java Devs.

Even if the customer does understand what's involved in running a software
project successfully, sometimes it just has no desire to employ developers.
Maybe they are not the kind of company that can attract and retain good
technical talent, maybe they just prefer to stick to what they do best. Either
way, using a dev shop offers an attractive alternative to contractors because
the team doesn't disappear the moment you stop using them. The team sticks
around and retains a certain amount of knowledge ready for next time you need
some changes.

~~~
lotyrin
What's the best way, as a developer who realizes these things are important,
to end up on a team that also does?

I've tried working at agencies who were middle men as you described and faced
economic problem of the OP article -- if the client couldn't provide real
specs and communicate effectively, who cares -- we just have to bill and make
payroll.

I've tried working inside organizations to build things, but they're in a
sadder economic situation generally -- they get forced to have built a team
because outsourcing failed due to working with agencies like the above, but
they aren't a software company and don't have the budget or skills required to
build and manage a complete software team.

~~~
d4nt
I sympathise. I think the best way is to ask lots of questions in your
interview. Developers are in demand, so asking some probing questions about
the process is not going to hurt your chances at all. If anything it'll
improve your standing.

Ask about the development process, what documentation gets produced, and what
tools they use. Then listen carefully to the answer.

Ignore the buzz words, and focus on actual tangible artifacts. Saying "we're
agile" or drawing a flow chart on the white board doesn't mean anything. Can
they show you the scope of the current sprint? A Kanban board? A burndown
chart? Some wireframe drawings?

If they can't show you anything tangible, that's a warning sign.

~~~
lotyrin
This is a good point. I will definitely be asking for tangibles. My last
position actually lied (or somehow thought there was ambiguity in how they
could answer "Do you do QA? Do you have a QA team?").

------
jcbrand
From TFA:

> OK, what's the solution, then? Just pay more? I don't think that's going to
> solve the problem; I'll just burn more money.

Sounds like the author hasn't actually tried to solicit a company with higher
rates and therefore assumes way too much here.

I think a lot of devs/shops who are more expensive are so because they're
demonstrably better. According to free-market logic, they can charge more
because the market is willing to pay them more. Why would the market be
willing to pay them more? Because their services are _worth_ paying more for,
due to them being better.

~~~
morgante
You're absolutely right.

Higher rates align incentives because they make the provider more vulnerable
to reputational effects. If you're targeting $150+/hr projects, you can't use
online platforms to find clients. That end of the market simply depends almost
exclusively on reputational marketing (referrals, industry contributions,
mindshare).

Hence, as their continued ability to get contracts depends on having satisfied
customers, higher-priced shops have an inherent incentive to deliver quality.
As opposed to low-end shops who are just scooping up clients with their low
rates and therefor have no quality incentive.

~~~
gizi
> If you're targeting $150+/hr projects, you can't use online platforms to
> find clients.

Not true. I make $150/hr. The client found me online and we work entirely
online. Furthermore, it is a deeply-discounted rate because I have 15% of the
startup's shares.

~~~
kami8845
The article is talking about working with dev studios & outsourcing large-ish
projects.

If you're a singular developer charging a flat hourly rate (I am too), yes
posting on the web will likely fulfill your needs.

If you're a dev studio looking for your next $50,000 project, probably not.

------
MortenK
Outsourcing has worked for me and my clients for 10 years or so. The main
aspects of making it work is vendor selection, local manager with outsourcing
experience and proper choice of engagement model.

The author, Yegor, is arguing outsourcing categorically does not work due to
lower vendor margins from 2001 and today.

What he fails to mention is that while Eastern Europe has risen in cost,
there's still plenty of locations with much lower cost and therefore much
wider margins. In such locations, his main argument would no longer be valid.
Even in Ukraine, there's huge difference in cost of living and therefore
average salary across the country. Kiev is very expensive. Dnepropetrovsk,
Kharkiv and Donetsk, not so much. But nowhere are you going to find 300 USD a
month developers. 2000-2500 maybe, but not 300.

Further, the vendors he describe are not good vendors. Good vendors will raise
the price to provide a sufficient margin in order to provide a good quality
service. Bad vendors will sell with low price being their only parameter, and
yes, such companies will typically have the mindset of "milking the cow".
Until they fold from one day to the other, that is.

Finally, the mismatch Yegor describes between client and vendor expectations
could be entirely removed if he just chose a different engagement model. For
product development, you shouldn't do a fixed-price project model. Rather, do
a monthly retainer based model for the same employee(s), where you pay the
vendor x amount of dollars for the full allocation of person x. This way
there's no prioritizing from the vendor company that can influence your
project (unless the vendor is straight up fraudulent). And with a cancellation
notice of 3 months, the margin can be lower as there's no risk for the vendor.

------
Priyadarshan_D
Problem is not with outsourcing. Any product will fail if development not
monitored properly whether its developed inhouse or outsourced

Take example of Outsourcing Success stories
[http://www.entrepreneur.com/article/247462](http://www.entrepreneur.com/article/247462)

· Slack: Now valued at nearly $3 billion, this company used outsourcing to
develop its solution in its earliest days. · Fab: This large startup partnered
with developers in India to maximize funding while scaling up when their
business showed signs of growth. · Skype: They used a team of developers in
Estonia to help them build out their business. · Klout: To get its technology
in the right place before launch, Klout relied on many outsourced developers

A lot of start-ups coming up with good ideas and quality products doing good
in so called developing countries

Calculate Software revenue generated in developing countries, You have only
showing negative side why you dont you write article about outsourcing
guidelines?

what should they do use “Made in own country” Product strategy?

~~~
morgante
That list is bogus.

I know for a fact that GitHub, Slack, Basecamp etc. are overwhelmingly
developed by in-house developers.

Skype was developed in Estonia but the company was Estonian. That's not
outsourcing.

Fab is hardly a success story.

------
anovikov
But i agree with just one thing: don't outsource management. If you hire some
developers from an outsourcing shop in outstaffing mode, or just hire them
individually on Upwork, that's fine. But don't let the agency do the
management. If you can't do the management yourself you can't succeed.

------
PythonicAlpha
Ironically, he is bashing about outsourcing, but he himself is doing just the
same.

Of course, he does it the clever way (I read the description at teamed.io, how
he makes software-development cheaper by paying "more"):

By breaking down the tasks into 30 minutes microtasks, he will only buy the
"fat" from the programmers cow. The muscles, filaments and veins, he does not
buy.

Of course, you can buy only the raw implementation part (at best, only the
typing) of a software -- but somebody will have to do the reading of the
specs, to do some guesswork ... and so on.

By buying micro-tasks, this company does use the fact, that many people will
only count the "real" net programming time but not the time in-between those
micro-tasks -- reading the specs, preparing the next job, doing the thinking,
maybe communicating, waiting for the next assignment ...

And the final clever way is: The time estimations come from the company and
that is the base for the payment. When a contractor took over a job for 30
minutes and worked on it for 59 minutes (without all the reading and other
stuff as said before) ... will he go and reject the money because he nearly
worked 100% more on it than expected? Will he really tell the company, that he
is not that big talent, he was hired for in the first place?

------
Mimick
Guy from 3rd world country here.

There's a huge number of outsourcing companies on my country, but the ones
that are able to attract more clients are the ones who don't care for their
products, since their business model is like that.

Normally those ones focus on showing you their teams not their works.

------
Swizec
As someone who spent several years as a solo freelancer/consultant, sometimes
offshore, sometimes onshore.

The main reason this type of work is drying up, in my experience, is that
there is too much free money flowing around. Why deal with a temporary worker
when you can afford to hire them full-time and have them sit in your office?

Furthermore, full-time engineers add _a lot_ more to your valuation than
freelancers and consultants do. A client once told me that adding a consultant
to their "full-time" force increases the company's valuation by $100,000, but
a proper full-time engineer adds $1,000,000 to the valuation.

I'm not sure _why_ , but if I had to guess I'd say it's a combination of a
company showing clear signs of growth (more employees == growth), and the
lower churn because of 4 year vesting plans.

~~~
gizi
> Why deal with a temporary worker when you can afford to hire them full-time
> and have them sit in your office?

Because after paying his taxes and his cost of living, this full-time person
makes way less than the guy doing the same job from the Ukraine. Therefore,
everybody with just even half a brain will do the math and will not be
available for sitting in his office. They'll put up their own office on some
sunny beach in Guatemala and log in from there. Don't tell me it is not true,
because that is what I have been doing for the last 10 years.

~~~
Swizec
Oh I know it's true. I did it for years. But then I hit a glass ceiling when I
wanted to charge SF rates, but do the independent thing. Nobody wanted to pay
for that.

So now I'm sitting in a SF company, charging SF rates, and building my
positive signals so that I can eventually go back to the independent thing and
keep charging SF rates.

I'm only 28, plenty of time :)

------
tequila_shot
I used to work for an Indian MNC first, I was their eyes and hands in United
States so I had to work with a lot of remote teams every single day.

Like everything, working with remote teams is also a skill. May be you worked
with some team in poland and they were brilliant, good for you; you don't have
to manage. But all remote teams aren't like that. The mantra for working with
any remote teams is to micro manage. Have everyday calls with them,
specifically tell them what you are expecting.

Before that, I myself was a remote developer, before traveling to US. As many
of you already pointed, this depends on the vendor you go with. There are lot
of multinational companies who outsource work and some of them are really
good. A lot of discussion is going on that the teams have reduced the
specifications given to them again I would tell you that it all depends on the
team you choose. I never did that myself, hell the person who outsourced the
worked to me, was not very knowledgeable. So does that mean I can judge
everybody who outsourced work to us?

makecheck said, the software outsourcing never really worked, when I was
working in that MNCs we had projects ranging from huge telecom companies to
Aviation companies. And those projects ran close to 5 years - 10 years. How
did the CXO reap the benefits for 10 years if he doesn't see value in it?

~~~
s73v3r
Here's the big question, though: I have to put in a lot of work to manage an
overseas team. In many cases, more than I would have to put in to manage a
local team. And the costs aren't really that much cheaper. So if I have to put
up with all that, why would I want to outsource?

"And those projects ran close to 5 years - 10 years. How did the CXO reap the
benefits for 10 years if he doesn't see value in it?"

Did anyone ever actually do the analysis? I doubt it. They saw a cost
reduction in one quarter and called it good. They haven't taken into account
the extra work needed, the costs of reimplementing stuff after they get it
because it's so bad, or anything like that. And because the CXO spearheaded
the initiative, anyone who questions it is going to be questioning the CXO's
competence.

~~~
gaius
It only needs to work long enough for the executive to get their next
promotion or bonus, 1 year at the very most.

------
jmnicolas
I can't say much about the subject since I never used outsourcing, however
4000$ a month for a Ukrainian dev looks really over evaluated, it's much more
than most positions in France.

~~~
Avalaxy
Yea, I'm not Ukrainian but I'm 99% sure that figure isn't right. $4000 per
month is what a dev makes in the Netherlands.

~~~
w0utert
Let's not pretend software developers are paid exceptionally well in the
Netherlands. Somehow it's a skill that's way undervalued here, compared to
e.g. middle-management. That said, a senior dev with an academic background
(ie: if you can do more than just programming but also have the background to
acquire and use complex domain-specific knowledge) you can easily make over
$6000 gross a month. The cost of hiring you will be almost double that for the
employer.

You're not going to make that kind of money by working projects for a
consultancy firm though, the margins they are making on your skills are
ridiculous.

~~~
wobbleblob
You can easily make over 100k a year as a dev in NL if you're self employed,
assuming you charge 60 an hour (about half the rate a consultancy firm charges
customers) and work 1800 hours a year. That way, you have no benefits, no
insurance, and no income when you're between projects, but an income that your
English speaking peers at least don't laugh as hard at.

I don't think the wages are all that bad considering the generous benefits.
What's really killing is the cost of living here.

~~~
odonnellryan
How does insurance in NL work like that? I work for myself in the US and it is
a huge pain.

~~~
wobbleblob
You're probably referring to health insurance, but that isn't a major problem.
Health insurance is commercial, but regulated.

Employees are insured for unemployment, disability etc. Your employer is
insured to cover your wages if you're sick. If you're self employed, you
either don't get paid for hours not spent working, or you have to buy similar
insurances commercially. You will also need insurance for liability and
probably for legal costs. If you're good at your job and good at selling
yourself, you probably make more than an employee would, but the 60 an hour
are not pure profit.

------
jff
"Why doesn't traditional outsourcing work? Well, because I came up with a
competitor for it!":

> Present us with your requirements, be it a web system, mobile app, or Big
> Data who-knows-what. We will give you our best team of freelancers, all
> working remotely, and we will orchestrate their work, keeping you an active
> participant in the project.

~~~
SCdF
Yeah, his message is confusing. It sounds like what he wants to say is "don't
outsource to indian development shops, outsource to us instead"

What his company does is outsourcing. He works / runs and outsourcing shop. He
might be good at it (or not), but that doesn't change what he is. It's like
saying "don't eat hamburgers they're gross, instead enjoy our patented meat-
between-two-buns product!"

~~~
JoeAltmaier
Semantic quibbling. He's saying, don't go the usual route to a foreign
nation/language/currency/export/timezone cluster. Instead hire a local agency
that will work with you closely. Its a legitimate issue. My own contracting
company calls is 'Domestic Outsourcing' because the word outsourcing comes
with so much baggage.

Oh, and we do the work ourselves. No six-pack of random developers hacking
away.

------
MIKarlsen
A supplementary article from WSJ "Why Companies have Stopped Outsourcing IT":
[http://blogs.wsj.com/experts/2015/10/14/why-companies-
have-s...](http://blogs.wsj.com/experts/2015/10/14/why-companies-have-stopped-
outsourcing-it/)

------
zarkov99
My impression is that early outsourcing did work but it worked because the
first outsourcing in India companies were founded and staffed by an elite
fraction of Indian developers who, for the money, were in many cases
sufficiently better that the in house counterparts to overcome the very
significant problems of remote development. Capitalism works and that huge
salary differential has eroded to the point where this is no longer the case.
You can no longer get a Phd to work on your in house CRM system for $20 an
hour. Outsourcing companies tried to scale past this talent imperative through
heavy process focus but this of course only works for very well understood
problems of which there are few in the software world.

------
brightball
This is also the case with US based contract development shops. It's easy to
"run your own contract business" when it's just you doing the work and you can
decide to pay yourself whenever the client can get you the money.

The second you have a single "employee" your sole focus shifts to making
payroll on time every month. Completely changes the formula.

------
ishener
tl;dr: outsourcing doesn't work anymore because the salaries in third world
countries are way higher than what it used to be

~~~
michaelt
I think the real tldr is: Outsourcing companies and their clients have
incompatible incentives; because the outsourcing company only keeps getting
paid as long as the project isn't finished/delivering value to the client.

~~~
deanCommie
Except that would've been always true. So the "anymore" part is purely
clickbait.

The truth is Outsourcing never worked. But it was cheap enough that it could
have been considered a worthwhile attempt at cutting cost, even if it ended up
costing more with re-writes it was justifiable.

Now, you can't justify even attempting it given the high risk of failure.

~~~
spacecowboy_lon
And some UK Banks have had very high profile failures (the RBS fiasco) ie the
CEO gets Grilled in parliament.

------
soroso
This guy has an agenda. He himself has patented some way of distributed remote
teams and wants to kill enemy ideas. Look for his weird idea of XDSD.

------
dbg31415
Good article, and most anyone who has used Upwork will relate.

It's not just about off-shore devs. Any time you hire someone part-time /
short-term and pay them hourly... what's their motivation (keep in mind they
were the lowest bidder)? To give you the best quality code, or to extend /
prolong their contract?

If you want to make sure your priorities and goals are aligned with your
developer, make sure they are on-staff and have a percentage of the company.
Or better yet, learn to code yourself.

------
gadders
He seems to be talking about the low-end of outsourcing, though. I've worked
at large enterprises that have outsourced to your Tatas, Wipros etc and
although you do get some issues, on the whole it mostly works.

Obviously, I wouldn't outsource the system that is my main revenue earner, but
getting someone in India/Poland/Wherever to fix bugs in your room booking or
hr system makes sense.

~~~
brazzledazzle
I've had the opposite experience. TCS and Wipro are better than nothing but
there's either a talent/skill issue or they just don't care (misalignment of
incentives). Even "on-shore" resources that sit in your office range from bad
to mediocre on the skill level or if they know their stuff they aren't
invested. It could be that the companies I've worked for weren't willing to
put out the bucks to get premium developers from these companies though, I
can't say I was involved in negotiating. And that's just developers.
Outsourcing operations to these companies is incredibly bad. They don't care
about anything but their SLA's and will do anything besides actually solving a
problem to meet them.

------
eddd
Well, you should not outsource project - you should outsource people. Have a
mix of inhouse developers who will cooperate with contractors. Force them to
attend scrums, make them a remote part of the team. The difference is - you
can use them for a period of time when you need them and then release the
resources when they are no longer needed (fire them).

------
JupiterMoon
I'm glad that Ukrainian Java devs are earning $4000 a month. The quicker wages
rise in low wage countries the sooner the 'first world' countries will return
to overall wage growth.

~~~
RobertoG
With 1.2 billion people winning less than $1.25 a day, could be a long wait.

That without counting automation.

~~~
odonnellryan
I wouldn't worry too much. Things happen incredibly quickly at scales such as
this.

How many people had cell phones, much less a smart phone, 10 years ago? How
quickly has Amazon grown?

Not saying they're in any way correlated, but technology growth and adoption
of new stuff is fast. Super fast.

~~~
RobertoG
I agree, but we were talking about wages, not technology adoption.

In fact, they are probably inversely correlated.

------
nnnnnn
Interesting take on consulting. I agree, the traditional consulting model is
fundamentally flawed, but after reading some of his other blog posts, I'm not
as sold on his approach to hiring and "orchestrating." For example:

"In our projects we discourage any horizontal communications between
programmers, and you won't be able to get any help from anyone. You will be on
your own and you will fail, because you are used to patronizing someone
senior, in your office."

This is so ludicrous that it almost sounds sarcastic. While I agree there is
value in searching out your own solution, talking through problems and asking
advice from team members is very valuable. It doesn't have to be a junior
asking a senior. There's clear value in talking problems out with an equal and
even a senior talking through a problem with a junior.

------
mk3
The author should change the title of article... I can not rip off Ukrainian
devs anymore :-).

As the main argument I saw in the article is: you can not get these profit
margins anymore.

------
pjc50
For a top-level view of the question, it's well worth reading Coase's "Theory
of the Firm":
[https://en.wikipedia.org/wiki/Theory_of_the_firm](https://en.wikipedia.org/wiki/Theory_of_the_firm)

It addresses the question of why companies exist, rather than adhoc gatherings
of independent economic actors held together by contractual relationships.
Coase suggests that this is due to "transaction costs" involved in negotiating
everything into a written contract structure upfront rather than adhoc
managerial coordination as needed.

[https://en.wikipedia.org/wiki/Behavioral_theory_of_the_firm](https://en.wikipedia.org/wiki/Behavioral_theory_of_the_firm)
is also well worth reading.

~~~
crdoconnor
Debunking the theory of the firm:
[http://www.paecon.net/PAEReview/issue53/KeenStandish53.pdf](http://www.paecon.net/PAEReview/issue53/KeenStandish53.pdf)

~~~
pjc50
Wrong link? Doesn't mention Coase anywhere and is talking about price curves?

------
ylg
TLDR; the author thinks outsourcing that attempts to increase ROI by
leveraging international income disparities to minimize labor costs doesn't
work because providers of such work want to earn as much as money as possible
for their own businesses.

My thought/question for the author would be: how then can companies that work
together do so without operating as charities, or are all businesses in
relationships deluding themselves? Should everything be brought in-house, for
example, house building? Is there a line, or a particular type of outsourcing
that works or that doesn't? (Executive management, sewing employees' clothing,
trimming their neckbeards?)

~~~
karmajunkie
I think it's fairer to say the author thinks outsourcing fails because
interests are not aligned. The client benefits from a successful, well-
designed and efficient code base. The outsourcing company benefits from
billing more time to clients that pay a lot on time.

I don't think this is an overseas thing. This is an in-house vs hired gun
question.

~~~
ylg
For the "Anymore" part of the authors title to be logical, the points in his
article about decreases in income disparity over time must be considered an
integral part of his argument, i.e., before the disparities were reduced,
outsourcing (according to him) worked.

Regardless, the question about how other businesses can be successful in their
relationships if his argument were to hold water still stands—every business
relationship involves imperfectly aligned interests.

By the way, a client benefits from positive return on investment. A client who
loses money and receives a well-designed and efficient code base does not,
i.e., the codebase is merely one component with variable traits that must be
adjusted properly for each scenario.

------
esaym
I really hate outsourcing of any kind. I am a person that likes software
development and I hate seeing it treated as something you want to spend as
little money as possible for.

One of my last companies that I worked for got bought out. We only had around
8 software devs and the parent company had a 300 man team in India! Needless
to say, any new problem that popped up had a strong push from the new
management to send it off to the offshore team. And there was also a dumbing
down of our solution stack since all the offshore team knew was Windows, Java,
and Oracle (none of which we used). After two years, I left and so did half
the team.

~~~
mdip
I used to feel the same way, but I've come around a little bit over the years.
I've worked on projects where a portion of the work was augmented by an
offshore participant. It works when the specifications can be produced easily
and written without onerous oversight. It also helps when it's work nobody on
the team wants to do.

Your sentiments about it are important, though, which plays into that last
sentence. When a dev team is presented with "we're offshoring this and you're
going to help" they tend to have a bad attitude about it and subtly (possibly
unconsciously) work against the project's success.

When used properly, the team enjoys the lighter workload and doesn't have to
work on "non-sexy" things. In our case, we had a very complex, old protocol
that we needed a C# library written for. No commercial implementation was
suitable, and it wouldn't have been technically difficult to write, but it
would have taken a long time to do, so we pointed the small offshore team at
an RFC and our expected interface and wrote the rest against that interface. A
few weeks before the first prototype, we wired it up with their code. It
worked brilliantly and I don't think anyone on the dev team even talked to one
of the offshore developers. It's important to mention that in this case, the
offshore team cost about 1/3 as much as it would have cost to bring someone on
to do this work (deadlines couldn't be extended) and there wasn't any more
work that we could have put that person on afterward, so it would have been a
short-term hire. There are parts of many software projects that fit here -- it
falls apart when companies think _all_ of software development fits. There's a
difference between tightening 900 screws to the right torque with a precise
manual vs. designing and building the entire car.

------
szastupov
tl;dr: a middleman bitching about cheap labor from the third world not being
cheap anymore.

------
mooreds
I had success with one outsourcing project where we had a dedicated project
manager and a prototype. We asked the outsourcer to make an exact copy of the
prototype for a different platform and had success.

I think if you are a good outsourcing shop, you want money to pay salaries,
but you also want referrals and repeat business. So you want to do a good
enough job. It's the same with every company struggling to meet payroll,
except a little more distant. But with globally accessible reviews, the world
is a smaller place nowadays.

~~~
yannis
This is a very good application, as many times just writing a spec is not
adequate to describe a project and I am sure you did some iterations to arrive
with a prototype. I am currently outsourcing something similar with similar
results. Thanks for sharing.

------
tmbsundar
I've witnessed two occasions in succession where "outsourcing" failed right in
India where an Indian start up "outsourced" to a firm just in the next street.
The usual suspects listed in the article like "Cultural mismatch", "Lack of
face to face communication", etc., were not the factors in this case.

Lack of clear requirements specifications, payments agreed to on-paper
milestones vs. payments against actual working code, insistence / payment of
advance money to the tune of 50% even before any actual deliverables (Some
firms don;t even start work with that. Their logic is that - start ups go bust
more than they succeed and they do not want to wait till you succeed to get
their money.), lack of technology awareness from the founders (founders were
non-technical in the web domain), etc.,

The factor of cost arbitrage did not play any role here.

These were the learning points: \- They should have picked up a good firm
based on known references rather than go with the cheap one based on a google
search.

\- Tie payments to working deliverables rather than abstract things like
design sign off etc.,

\- Track, monitor regularly

\- Be aware of the technology you are outsourcing. If you are an enterprise IT
consultant and you are going to outsource the web work. Be sure to read up on
Php or whatever technology they use and ask/think through relevant questions/
improvements

Edit: Modified the list into bullet points.

------
dror
Funny, I just came back from visiting two companies that do excellent
outsourcing work for us, one in India, eternussolutions.com and one in Poland,
www.soldevelo.com.

The secret? We've built a long term relationships with them, have reasonable
expectations and communicate continuously.

I've worked with offshore teams since 2005 and there are major benefits:
prices that are roughly 1/3 of what it costs to hire the equivalent person
locally, availability of talent (everyone's scrambling these days in the Bay
Area), and the ability to quickly scale up or down your team.

There's also a price. You need to deal with the time difference; I have calls
at 11 PM. There are cultural differences that you need to be aware of. The
Holidays are different and usually more frequent, they won't be familiar with
certain segments of the US business environment such as health care, HR, etc.
And they won't work the same long hours. They have better work/life balance.
On the other hand, you're not giving them options, so that's totally
understandable.

In summary, have reasonable expectations, expect that there'll be a ramp up
period, and be willing to learn from the other side.

------
anovikov
But this isn't so bad: outsourcing used to be merely arbitrage (you made a
profit just because you was here and your customer was there, buying on one
market and selling on the other - 'free money' in the sense that it didn't
require much talent or ability to withstand competition to make).

Now it's just a business just like any other: there is about as much chance to
turn a profit operating a U.S. local software development shop or an offshore
one. Prices you can charge and your costs will be still somewhat lower,
because of all aforementioned factors like time zones, cultural and language
barrier, and many offshore locations being legal grey zones where you can't
really procesute anyone for say, stealing your secrets or violating your NDA.

Every source of free money ends one day because too many people will try to
get it, and this moment has arrived for offshore outsourcing, but it doesn't
spell its death.

------
stretchwithme
It sound like many other businesses, with costs and customers that change over
time and many people to keep happy.

Also sounds like the arbitrage is no longer as profitable as it used to be.
And that's a good thing. When information is flowing, you get less people
profiting simply for having information others don't.

------
mattlutze
I'm curious, what protects a customer from the author's personal outsourcing
company against the author's criticisms of outsourcing?

Their company home page talks about constant value and quality approval /
adherence, but it sounds like the same sort of marketing schtick that ever
outsourcing company promises.

------
vlokshin
The price differences over time aren't what's made outsourcing fail over time.

And it's not outsourcing...

It IS the misalignment of goals.

Clients fail when... They feel like they're paying someone to do something, so
they become their agent. That agent is now assumed to do the most amazing job
possible with unclear specs. \-- Root: bad specs, bad product management.

Providers fail when... They take on work that's unclear, or understandings may
not be totally aligned. Good providers aren't just inflating hours -- they're
hitting on their understanding of deliverables. If that understanding is
misaligned, success is impossible. \-- Root: bad specs, bad product
management.

Bad specs, bad PM don't cover everything (you could have bad ideas, bad
design, bad devs, bad architecture, bad QA, bad adoption/inner-circle feedback
processing), but it's the most common root.

------
osullivj
This is true of outsourcing generally, not just outsourcing to lower cost
offshore regions. Back in 2000 I left my secure dev job with a large US bank
to join a startup and chase the dotcom boom with a startup. The crash
happened, I got laid off, no one was hiring, so I ended up joining a boutique
'consultancy' doing dev for banks. Over the course of the next three years I
learnt a brutal lesson in the consultancy development business model. As this
post points out, there's a fundamental misalignment of interests. The client
wants the project done, and the consultant resources gone. The consulting firm
wants maximum headcount on the project for maximum duration, and therefore
maximum billing. This misalignment means the consulting firm can't speak the
truth to the client. The consulting firm can't speak the truth to their
employees either, and will usually give them some flim flam about how
consultancy is the best of all possible worlds as it combines the security of
permanent employment with the variety of contracting. In fact it combines the
worst of both - the insecurity of contracting with the lower pay of permie
work. Consultancy firms run on one key benchmark - utilisation level. Most,
like ThoughtWorks or IBM Global Services, will aim for 65 to 70%. That means
65-70% of employee hours must be billable to a client. If you drop below that
rate you have to fire people. At the 'boutique' consultancy I worked for they
ran at 95%. Folk would roll off a client assignment at 5pm on a Friday, and
get a phone call firing them at 5.10pm! So far, so simple. As the original
post made clear, it's all about margin. And, as the original post also made
clear, the result of this business model is one disastrous project after
another. So why does it keep happening? The fault there lies on the client
side. The clients hiring the outsourcing and consultancy firms are usually
large corporates looking to manage costs down. The project sponsors are senior
managers with long term careers in these highly political organisations. When
their projects fail they can't make a fuss about it as that would draw
attention to their own management failures. Instead they have to pretend the
project is a qualified success, and jump to another team or silo in the
corporate environment so some other sucker is left clearing up the fallout. So
the consequences of failure are repeatedly eluded, as Mr Pointy Headed Manager
slips off to another team, and the consulting firm moves on to the next
billing opportunity. I was a little shocked when all this became apparent to
me, back in 2002/3, when I saw a $25,000,000 project get canned by a large US
bank without ever getting into production. Now of course I understand that
it's just how orgs like EDS and IBM Global Services make their money. And the
upside is, as the article points out, that it enables wealth transfer from
developed economies in North America and Western Europe, to developing regions
like Eastern Europe and India, by means of rising developer salaries. The
conclusion I draw is don't ever work for a 'consulting' firm like
ThoughtWorks. Be a permie or a contractor...

~~~
h1818902
I couldn't read to the end because of the bad formatting. Let me fix some of
it:

This is true of outsourcing generally, not just outsourcing to lower cost
offshore regions. Back in 2000 I left my secure dev job with a large US bank
to join a startup and chase the dotcom boom with a startup.

The crash happened, I got laid off, no one was hiring, so I ended up joining a
boutique 'consultancy' doing dev for banks. Over the course of the next three
years I learnt a brutal lesson in the consultancy development business model.

As this post points out, there's a fundamental misalignment of interests. The
client wants the project done, and the consultant resources gone. The
consulting firm wants maximum headcount on the project for maximum duration,
and therefore maximum billing. This misalignment means the consulting firm
can't speak the truth to the client. The consulting firm can't speak the truth
to their employees either, and will usually give them some flim flam about how
consultancy is the best of all possible worlds as it combines the security of
permanent employment with the variety of contracting.

In fact it combines the worst of both - the insecurity of contracting with the
lower pay of permie work. Consultancy firms run on one key benchmark -
utilisation level.

Most, like ThoughtWorks or IBM Global Services, will aim for 65 to 70%. That
means 65-70% of employee hours must be billable to a client. If you drop below
that rate you have to fire people.

At the 'boutique' consultancy I worked for they ran at 95%. Folk would roll
off a client assignment at 5pm on a Friday, and get a phone call firing them
at 5.10pm!

So far, so simple. As the original post made clear, it's all about margin.
And, as the original post also made clear, the result of this business model
is one disastrous project after another.

So why does it keep happening? The fault there lies on the client side. The
clients hiring the outsourcing and consultancy firms are usually large
corporates looking to manage costs down. The project sponsors are senior
managers with long term careers in these highly political organisations.

When their projects fail they can't make a fuss about it as that would draw
attention to their own management failures. Instead they have to pretend the
project is a qualified success, and jump to another team or silo in the
corporate environment so some other sucker is left clearing up the fallout.

So the consequences of failure are repeatedly eluded, as Mr Pointy Headed
Manager slips off to another team, and the consulting firm moves on to the
next billing opportunity. I was a little shocked when all this became apparent
to me, back in 2002/3, when I saw a $25,000,000 project get canned by a large
US bank without ever getting into production.

Now of course I understand that it's just how orgs like EDS and IBM Global
Services make their money. And the upside is, as the article points out, that
it enables wealth transfer from developed economies in North America and
Western Europe, to developing regions like Eastern Europe and India, by means
of rising developer salaries.

The conclusion I draw is don't ever work for a 'consulting' firm like
ThoughtWorks. Be a permie or a contractor...

------
eitally
I would argue that software outsourcing works as well as it needs to. I used
to be vehemently opposed to it, for all the normal reasons, but for the people
(especially the CIOs) who pursue it, they get exactly what they deserve and I
think a lot of them are perfectly ok with that. My experience [reporting to a
semi-sociopathic CIO] has taught me that it's a lot easier to be flexible with
contract labor (by using OpEx and other methods of shifting funds to
increase/reduce monies for the work), and sometimes they care more about that
than accurate delivery dates or supportable deliverables of high quality that
do what they're supposed to.

~~~
s73v3r
"but for the people (especially the CIOs) who pursue it, they get exactly what
they deserve"

Do they? Or do they still get the bonus for cutting costs, despite not
actually doing so?

------
chris_wot
Isn't it possible that if you do staged deliverable and fixed payments that
this will mitigate the risk?

If you are able to specify the deliverables needed in enough detail, then you
can make payment contingent of milestones. That way the outsourcing company
gets a steady stream of guaranteed income, but it's continent in them
completing the work. It also allows you to cross check the work frequently.

This, of course, means that you have specified what you need clearly and in
sufficient detail that you can actually go this. That means though that you
need a very technical lead who has the ability to do project management. I
can't see how else it could work!

------
Danilka
I have launched at least 10 products with remote developers and I can assure
you that it works perfectly fine. The key here is to find a good local manager
that is from a country that you try to hire developers from.

Disclosure: I am one.

~~~
ovi256
I agree with Danilka. I provide the same service to French clients. I live in
Paris, and I work very closely with client project management teams, in the
same offices. This eliminates 99% of communication problems. Email's in the
profile.

------
jbarmash
I think an interesting question that I am currently trying to think through is
whether it's possible to structure your outsourcer relationship in such a way
that their incentives are more aligned. I will be renegotiation a contract
with a company, were we represent over 80% of their business. They have great
technical people, and have generally delivered good work, but with more
management overhead than we'd like - so we want them to be more accountable.
Any ideas would be appreciated.

------
imaginenore
He is comparing the best developers in Ukraine at $4000/month with $40/hr in
the US, which is what juniors make. Even with that weird comparison the margin
is pretty healthy.

------
narrator
The problem with outsourcing is that anyone good who can do basic marketing of
themselves on odesk, or wherever, will quickly get very busy and raise their
rates to market level.

------
a_lifters_life
So, really this just comes back to that Benjamin. It can be summarized in one
sentence - the lucrative nature of doing outsourcing before is no longer true
today.

------
z3t4
I think the best strategy is to find a good developer, then stick with
him/her. There are tons of good developer out there who are willing to do hard
work for almost nothing. You just need to find one.

Simply hiring the lowest bidder is a waste of time unless your project budget
is $50000 or more. At that range, you can find hungry developers that are
willing to do ten times more work then you would get from established players.

------
blazespin
Outsourcing works great for prototyping and unit testing. You can also use it
for mentoring quite nicely if you get the right folks. I've done all of these
successfully. I've also had good luck with website design, where you already
have the UX clearly mapped out and now you just need someone to fiddle with
the css

Ie, it doesn't work anymore .. except when it does.

------
dragonwriter
I find it extremely ironic that I get that piece with an add for teamed.io
("Hire Us to Develop Your Software".)

------
mercury_craze
Ugh, not this guy again.

------
razzaj
It is irrational to expect outstanding performance from an entity that does
not have significant skin in your business. That's the rationale behind
startups giving up shares to early employees. For contractors: more time= more
profit. For Employees: better performance = more profit.

------
josephjrobison
What about some of the more hybrid models that are growing - where you have a
company trying to build a brand on quality work - like TopTal or Codeable -
where they have seemingly good management overseeing the work?

------
ageyfman
outsourcing works when you and your devs are aligned, you have a tech owner on
the client side and regular checkins from all parties. What doesn't work, and
never worked, is throwing loose specs over the wall and expecting the next
Instagram.

Moreover, people who manage remote, outsourced, teams for a living (I used to
be one of them) have known this for years. The ones who don't know this are
the non-technical founders who think the idea is the hardest part. Alas, that
has been an issue for years before outsourcing became popular.

------
larrik
As a consultant who has in the past worked with outsourcing companies, the
mantra I've used to explain "why it doesn't work" is far simpler: Cheap labor
=/= Cheap Projects.

~~~
whatever_dude
"You get what you pay for" is what I've used.

There's a number of ways it happens, and reasons that are, in general, hard to
explain. Some people might try, as this article does, and rationalize based on
whatever their experience is. Some of it I agree, some of it I disagree... it
doesn't matter much.

But in my experience, 100% of the time, it always comes down to this adage:
you get what you pay for.

------
gcb0
summary: CEO managed outsource company when margins were 20x costs. now that
it's 0.3x he claims only scammers are still in business.

sounds like a sour loser.

------
cubancigar11
It is important to remember that when you outsource something to a cheap
labor, the keyword is 'labor' and not 'cheap'. Developers in SV don't
understand this, probably because they aren't directly doing the cost
calculations.

And here is the problem - articles like his one, saying how outsourcing
doesn't work, are actually why outsourcing doesn't work. For example, consider
someone who reads one article daily which says outsourcing doesn't work or
that the resources are not very good. In last 10 years I have yet to meet a
single client that gave the kind of independence you get as a developer in US.
Yet every time all I read in a client's bad experience is that he/she had
given too much independence.

I am in Bangalore and I work for a British Client. I WILL take the name, it is
3ds (French one). And here the only thing that matters is that client remains
happy. Here is what happens here in Bangalore:

1\. Client doesn't give any work which requires cognitive skills, since he is
sure the return will be bad and he doesn't have time to take chances.

2\. This in turn discourages good developers and forces them to:

a) Suck it up, forget about any career achievements and keep doing the
maintenance job as mortgage payments are a bigger threat. Slowly the quality
of output decreases.

b) Switch clients/jobs, which means sudden requirement of a resource and
investing even more time in training him/her.

3\. A lot of companies hear only bad stories about China stealing tech and
making knock-offs, never mind that most of these knock-offs don't have any
effect outside China and China is a closed market in the first place, that
they have trouble handing over critical software/hardware for development.
Half of my friends I know work via VPN even in office. In my office it is not
possible to work on a laptop. I need to come to office and then work
_remotely_. This is shit. Even with internet speeds in India being faster and
cheaper than UK/US, when 2k people suddenly connect to VPN from a single point
cursor stops responding immediately. This means slower work.

4\. All meeting times are decided by client according to his/her convenience.
Almost all of clients from UK that I have worked so far had literally 0 idea
what its like to attend a scrum after lunch. Too early to start asking
questions, too late to completely absorb the answers. US is even worse - most
American clients set up a meeting at around 10:00pm (9:30am PST). Then they
complain that people from India don't talk a lot.

5\. Worst is pacifying a client's ego. It is not possible to tell him that he
has done something wrong. It is not possible to squarely go over his authority
and fix it. So Indian managers let the failures lurk for longer than
necessary, and at the last moment find some scapegoat and hope the client
doesn't fire him.

Mediocre developers are who make it big at the end. They stick around until
H1B and then earn hefty amounts abroad.

~~~
chris_wot
All the concerns you bring to the table here have been caused by either
previous failures of outsourcing leading to low expectations on deliverables
(in which case, why outsource?) or a lack of communication by the management
of the outsourcing company.

Now there might not be much you can do about the first issue, but it seriously
behoves the company to do something about point two. I also think, however,
that if your company is relying on work from companies in a different
timezone, then you probably need to get over working at odd hours fairly
quickly otherwise you are going to start to lose clients.

------
devit
Isn't this solved by paying a fixed amount, and only paying if the project
works and is well done?

Then the outsourcing shop no longer has the incentive to drag things out so
you keep paying.

Of course, it may be necessary to pay a large premium to get such terms since
the developers take all the risk.

~~~
demian
_Isn 't this solved by paying a fixed amount, and only paying if the project
works and is well done?_

The problem with that approach is metrics. How can to specify that the
softwere "works"? How can you measure if it's "well done"?

I worked on a project using that approach and most of the time was spent being
basically lawyers with specs instead of contracts. Horrible experience.

------
mdip
I'm not sure software outsourcing ever worked (but after reading the article,
I'm fairly sure that title was picked for aesthetics rather than serving as a
thesis statement).

I had this discussion with a friend who was charged with controlling costs as
the new head of IT for a company he'd worked for since graduating. He had no
prior experience in IT and was discussing his plans to "fire IT and offshore"
in 2002.

The issue of "motivation" between an internal and external team was touched
upon but it was the biggest factor in the failure that wasn't already
obvious[1]. He points out _a good customer for [the outsourcing company] is a
paying customer. Not a customer with a successful project._ That's a little
more cynical than I'd be, but the point of competing priorities is important.
Prior to offshoring, the internal staff's motivation was to create software
for internal staff that made the business more successful. Their bonuses were
paid when the company beat their profit targets, but that wasn't the entire
motivation. They were a sciences company and much of the IT staff came from
the company -- they were folks who were augmenting their work with code, often
writing something so useful that the rest of the team used it and their job
became maintaining/extending that software. They _knew_ what to write because
they either had _previously done the work_ or were _still_ somehow involved as
a user of that software. The IT guys and the main staff were all science geeks
and friends with one another so "Jan knows what Bill is expecting to do with
this and he won't like it if it's designed that way." That tribal _can 't_
exist with an offshore team.

The plan was a complete failure; the offshore shop never got up to speed on
the existing code-base, outages became a way of life (IT support was also
offshored) and the decision was reversed after about two years. When they
brought IT in house, they couldn't find anyone who wanted to work for them. In
retrospect, they should have predicted this problem since they started having
hiring problems almost immediately after the move -- they couldn't get the
needed STEM graduates for their main work due to the poor reputation caused by
the move. Interviews were outright refused -- most said they weren't
interested due to fears of being replaced later[2]. They made a series of bad
hires with onerous requirements in their work contracts--bonuses paid out
regardless of being employed at the time they were paid--basically
"protection" measures built in to calm the candidate's concerns. This was made
worse by the economy improving and them no longer having access to more
desperate candidates.

The failure of this project was bad enough to eliminate most companies of
their size. They were lucky that they were a business who's customers had a
regulatory reason to use and they lacked any competition (mainly because
they're very good at what they do). This would have been a time when someone
could have stepped in to compete with them. The delays caused by this were
passed on to customers who had the potential to fail regulatory compliance as
a result.

I've been intentionally vague about the business to ensure I can keep the
friendship. I realize this post makes him sound like "an idiot" (I called him
one at the time)--but bear in mind this was 2001-2002. 9/11, bad economy, and
an IT budget ("new" at the time) growing like crazy were huge problems for
them. IT then was seen as a necessary, unwanted, _expense_ in most businesses
their size. Coupled with prominent stories of offshoring success with little
actual data about the details, it looked like an obvious choice. To the credit
of his character, he set his ego aside and reversed his decison in just short
of 2 years. They still occasionally augment with offshore for technically easy
but time consuming work, and do so very effectively, but nobody is interested
in replacing tribal knowledge with outsourced talent at his company (in
2007-2008, it never came up _once_ as an option to improve the balance sheet).
I've e-mailed him about this post in case he wants to provide detail that I
wasn't comfortable sharing; but I'm leaving that to him.

[1] The obvious was having no transition in place between letting everyone go
and spinning up the off-shore plan. The team literally inherited tens of
services and a large code base to both support and expand on with nobody from
staff able to tell them how any of it worked. Being that he failed to account
for that problem you can use your imagination about every other thing that
wasn't accounted for.

[2] A google/twitter search of the company yielded blog posts and other
related items about the offshore move. IT folks communicate publicly when
they're treated badly by an employer and they were treated terribly when they
were let go. The worst thing was that despite being 2 years prior, most were
convinced the company had done this only a few months prior. Objects on the
internet are closer than they appear, I guess.

------
EGreg
I have hired Russian speaking devs (not firms) hourly and, after the initial
hiring filter, about 60% were very productive and didnt want to bill for
months for nothing. I worked with them personally, though.

~~~
larrik
That's off-shoring, not out-sourcing.

------
LoSboccacc
wait did it work at some point? I joined late but by 2003 joking about how low
quality outsourced stuff turned out to be was already old.

------
vermooten
+1

we experienced exactly this

failure built into the model

never again jeeez

------
lectrick
"Communication"

~~~
lectrick
I actually read the article this time and wish I could delete this comment.
It's a good article and it's not a communication problem.

