
According
to Hoyle...
Outsourcing
& the Fall of
Software Development, Part 1
macCompanion
July 2010
by
Jonathan Hoyle
jonhoyle@mac.com
http://www.jonhoyle.com
I consider myself mostly conservative politically. In
the last three
Presidential elections,
I voted for the
Republican
twice and the
Democrat
once. In each case, I thought that the candidate for whom I voted (irrespective
of party) would continue policies I thought would be best for this country. Sadly,
I have been disappointed by these, and in fact every President, since
Ronald Reagan.
I point all this out because I am about to talk about
a politically volatile subject, namely the practice of
outsourcing American jobs
overseas. Many writers on this topic employ a
"trojan horse"
approach: essentially pretending to come from some "objective" or "unbiased"
position (as if there could be such a thing), and then espouse a particular
ideology. I'm not
going to insult your intelligence that way. (I might insult it in other ways,
but at least it won't be in THAT way.) I'm letting you know up front,
I come from a moderately conservative point of view, but not one that is the orthodox
party line conservative.
The
Conclusion, First
These trojan horse political authors will stitch
together a compelling weave of argumentation, highlighting propositions supporting
their "eventual" conclusions, avoiding any mention of arguments which might
undermine them. For such authors, I just skip to the end to see the conclusion
first, and then go back to read how they supposedly got there. That way, the
trojan horse is gone.
So as to be fair, I'm going to save you a little
time and give you my conclusion upfront. The point of these next two columns
is this: the current trend of businesses outsourcing their software development
work is harmful to both the industry in particular, and America in general. I
know this is not considered a typically conservative position, but it is mine,
and I believe there are good reasons, even conservative ones, to warrant it. And
being a conservative, I will not be appealing to arguments of
class warfare,
capitalist greed,
the disenfranchised,
racism,
poverty,
Big Oil,
the Iraq War,
9/11 conspiracy theories, or that
George W. Bush is
evil. If
you were hoping to read any of that, you can move on to your next
Google search.
Now with nothing up my sleeve, I shall proceed ...
Outsourcing over Time
I'm going to assume most of you reading this already
know what Outsourcing is. I'm also going to assume that you understand
the incentives that businesses have for engaging in this practice. In a tough
economy, businesses will look at Outsourcing in much the same way (and please forgive
me this analogy) a horny man might look at a prostitute. The promise of the
short term gain might overshadow in his mind the long term consequences. Better
judgment often gives way to immediate gratification. Sadly though, it is only
after the fact that one learns that the benefits were much less than one wanted to
believe ... and that the repercussions are a lot more long lasting.
Before jumping into how Outsourcing is affecting the
software industry,
I want to take a quick diversion into Outsourcing in recent history. Really,
what we call Outsourcing has been with us a long time. It's no secret that
the cost of labor can be significantly cheaper overseas. Even in the
70's
when I was a kid, most of the things I purchased did not get made in
America. Electronics
and Hi-Tech items were typically marked "Made in
Japan",
and only the real cheap stuff was "Made in
China". I
can't remember seeing anythingmarked "Made in
India". But
we as Americans looked at Japan as our technological competitor. It was Japan
who (it was said) was taking our jobs away. No one cared about competing at
the low end wage level. We were Americans. We fought for the top, not the
bottom. Unskilled labor
was not what Americans cared to compete for.
In the
80's,
we began to compete toe-to-toe with Japan, and Americans started to dominate a new
hi-tech arena with the
Computer Revolution. The
economy of the 80's boomed. At that point, it was not only unskilled labor,
but low-skilled labor that soon became a casualty. By the early
1990's,
it was no longer Japan but rather Mexico which became a major competitor. Basic
assembly line
jobs could be shipped over the border, and the
Mexicans
could be paid much less for the same work. Although there was some grumbling,
members of both parties in Congress passed
NAFTA,
a free trade agreement between Canada, the United States and Mexico. But Americans
on the whole believe in the
free market, and continued
to prosper in the new economy. Like the 1980's under Republican Ronald
Reagan, the 1990's under Democrat
Bill Clinton
was a time of prosperity.
It may come as a disappointment to some of you reading
this, that I supported NAFTA (and still do now). The "loss" of unskilled
and low-skilled jobs was counter-balanced by higher tech and better paying jobs. This
This can be seen by the fact that the
average American wage
(after taking
inflation
into account) continued to rise during these two decades. By the year 2000,
the unemployment rate dipped below 4%
(the job transition rate), which essentially meant that the United States was actually
over-employed. There just weren't enough people to do all the jobs! And
you will note: this all took place after NAFTA had been passed.
Outsourcing Today
However, we are now starting to see a less healthy
trend in our economy. We are no longer off-shoring only the low-skilled and
unskilled labor jobs that we Americans don't have time for. More and more, it's
the higer-tech jobs that are going overseas. In the spring of 2001,
the unemployment rate had risen to 4.3%
(not as low as the previous two years, but certainly respectable). But the jobless
rate hasn't been that low again since then. In the past 12 months, it has
oscillated between 9.4% and 10.0%. And
how many of these were lost to outsourcing? This is hard to say accurately, as
for every American job directly lost to outsourcing, there are certainly many more
other jobs also lost due, to the indirect ripples from other businesses which had
worked closely with off-shored ones. For example, contractors will have fewer
jobs to choose from, but cannot be said to have had a job "lost".
Unlike the
manufacture of automobiles,
computer parts, etc., computer
software has no burdensome shipping charges associated with the outsourced product. This
positions software development as a compelling model candidate for outsourcing. That,
combined with the unbeatably low bid development price quotes from underpaid overseas
programmers, makes outsourcing of software almost a no-brainer.
The problem with "no-brainer" decisions is
that no brains were used to make them.
Most
software engineers
I know have been in (or at least heard of) an experience of how a software project
went overseas, and the product came back in a terrible state. For those who
have not heard of such, I offer a few interesting links:
Suffice it to say, Outsourcing may not be quite the
money-saving salvation a lot of businesses had hoped it would be.
Quality Gone Awry
The first problem that is usually associated with off-shored
development software is its dramatic drop in quality. Now why should this be
the case? It is certainly not due to some racist notion that Asians are inferior
programmers to Americans. (That is certainly not the case.) It is something
much simpler than that: experience and seniority.
According to the
National Science Foundation,
the average age of a software engineer in the United States is
just over 40. This
means that most domestic software developers have 15-20 years of experience in the
industry, learning proper
coding conventions,
practiced at
debugging
tough problems, and understanding proper
object oriented design. Many
such engineers are quite capable of developing under different
programming methodologies,
from classical
Waterfall,
to more agile ones, such as
Extreme Programming. This
makes the average domestic engineer a very experienced and mature employee. On
the other hand, most of the off-shored developers have only recently learned such
skills … very
recently. 54% of India is under the age of 25,
and it is the young people who are obtaining these new jobs. A 30 year old might
be a relatively young programmer in the United States, but overseas could be considered
senior.
This is further compounded by the separation of the
inexperienced from the experienced. In the United States, a typical 25 year
old programmer who experiences some difficulty, can walk down the hallway to speak
to an experienced 45-50 year old engineer. Junior programmers evolve into senior
ones with the help of a corporate culture of mentorship and the promise of advancement
within the company. Overseas however, the 25 year old junior programmer usually
has no such option. In fact, it is to his/her peril to seek help, as this might
tip off competitors within the company that of a weakness in that particular area. Moreover,
since most overseas development houses are hired contractually, contractors need to appear
to be already competent, so as to win the bid.
Blown Budget & Schedule
Another big problem in Outsourcing is budget overrun. You
know the old saying "It is easier to get forgiveness than permission"? Well,
this is the creed of every contractor (whether domestic or international). To
win a bid in the past, an American contractor often "lowballed" his estimates. These
contractors would typically be competing against the same people in town, and their
estimates (even if lowballed) were not terribly far apart. Today, a contract
house in Asia might be competing with literally hundreds of others across India, China,
the Philippines and elsewhere. It used to be that the contract manager could
accurately determine if a given contract bid was unrealistic. However, American
managers have little to no idea how accurate the bids are from an Asian contractor. The
numbers seem so amazingly low, it is easy to be seduced into believing them.
A further issue is schedule delays. Much of this
has to do with the
timezone differences. When
your contractors are in a timezone which is 10-15 hours apart, questions which might
have otherwise been answered in an hour domestically, may have to wait until the next
day, when your collaborator is overseas. Moreover, changes and clarifications
which could be simply handed to a domestic engineer, may need contract renegotiations,
which delay things further.
Problems become compounded when the software being
developed has to interface with a piece of hardware. The expense and delay of
shipping internationally makes it very difficult to keep the contractors up to speed
with real-time changes in the physical product. And such problems which might
arise, can no longer be resolved by a
firmware
engineer taking the escalator down to work with a software engineer. Everything
must be done remotely. What used to be solved by two engineers talking over
lunch, would now involve email exchanges over night, or late night conference calls.
Finally, an internal employee of the company is one
you know (and have reasonable expectations of his abilities). More to the point,
you can expect that he will still be there the next day and will not disappear from
you without a two-week notice. Overseas contract houses typically manage their
own internal resources. The contractor, which worked on a particular part of
the subprogram last month, may not be the one working on it this month. It is
also not unusual that an experienced engineer from overseas gets the ball rolling
on one contract, and then passes the balance of the work to his team of junior programmers,
whilst he himself move on to try to help win the next bid.
Coming
Up Next Month:
We will
continue our discussion of Outsourcing, Part II!
To
see a
list of all the According to Hoyle columns, visit: http://www.jonhoyle.com/maccompanion
http://www.maccompanion.com/macc/archives/July2010/Columns/AccordingtoHoyle59.htm