Fog Creek Software
Discussion Board

outsourcing development

What criteria would you use in selecting vendors to outsource your company's development, beside cost?
Anyone want to share your experience?


Wednesday, June 16, 2004

first of all, why are you outsourcing?

Cecilia Loureiro
Wednesday, June 16, 2004

Give them a requirements document that sucks.

See if they notice.

That would be my #1 thing:  If they don't have a good requirements review process with pushback in place, they probably don't have the other things you want, like good testing or design or code review.

Another thought is the cost of communication and communication barriers increase exponentially as you move from your office.  That means it may be more efficient to pay some accross the street $50/hour than it will be to pay someone in Iowa $35/hour, and if you are in the US, both are probably more efficient than paying someone on another continent $25/hour.

Another factor:  Is the work braindead, or does it require innovation and understanding your business processess?  Is it straightforward or ambiguous? Is the 'this is correct' decision easy to make, or is it possible that the SQL query is technically correct but takes 72 hours to run, which violates a requirement you never documented?  The more totally straightforward the work, the farther away it can be outsourced.

How critical is the project to your business?  How big is it?  The smaller/less critical and more standardized components it is, the more chance you have of sucess on something like eLance dot com.  If you can build it in access and excel and VB, you're going to have more success than if it has to be written in LISP for VMS or Delphi version 4.something.

Also note that the farther away you outsource, the looser your feedback loop.  On software projects, that's generally bad.

I've done a bit of lecturing/speak on outsourcing IT.  My latest presentation was to the ABIT conference in Pittsburg, PA in May.  There are a lot more issues than just the few I listd above, but they are a start.

You can see our presentation here:

Or read the paper here:

Matt H.
Wednesday, June 16, 2004

<cost of communication and communication barriers increase exponentially as you move from your office>

another point for in-house develoment!

beside cost, why are your reasons for outsourcing?

is it lack of expertise?
hire me!
i'm available ;)

Wednesday, June 16, 2004

"more efficient to pay some accross the street $50/hour than it will be to pay someone in Iowa $35/hour, and if you are in the US, both are probably more efficient than paying someone on another continent $25/hour."

Why is it more efficient to outsource across the US continent (i.e., within Iowa for $35/hr) rather than on another continent?

The only three thing I see that MIGHT change by going to another continent are:

a. Different time zone. Diffcult to do real time communication. Phone costs are higher.
b.Programmer MIGHT not be a native english speaker or have poor communication skills.
c. More expensive to visit programmer if necessary.

Any other issues with intra-USA outsourcing vs. outsourcing overseas?

Mr. Analogy
Wednesday, June 16, 2004

If a programmer has poor communication skills, wouldn’t
it be the same if he is 100 or 10000 miles away?

Cecilia Loureiro
Wednesday, June 16, 2004

>The only three thing I see that MIGHT change by going to
>another continent are:

You left out the difficulty of checking qualifications - if they guys from across the street can put one across, who about the guys from Bangalore.

You can get an extra dose of the Big Five close. Someone in Armani with an elephant hide briefcase talks to your CEO than the goofballs with three weeks in a VB boot camp show up to do the work. (Only if it is the Big Five they cost $250 an hour.)

silence is golden
Wednesday, June 16, 2004

A one-time-zone difference vs. Another Continent:

1) Time Zones.  Having someone available on the phone, working at (close-to) the same time of day as you has value.  Have a problem?  Call him up and get it solved.

10 time zones away, you have to leave a voice mail or email, which, or course, was not clear, so either he's going to fix the wrong problem or else not do anything for another day.  This means you have to spend more $$$ and time on communications (meetings at 9PM your time, every M/W/F) or deal with an extremely large feedback loop.  Again, slow feedback loops are a death-nell for software projects.

2) The cost of face-to-face goes WAYYYY up when you leave the continent.  That means the odds of meeting in person goes down from "We will meet at Project Inception, Testing, Release, and if we have problems " to "We will never meet in person."

3) Face-to-face is reallly valuable.  It's much easier to do poor work - or excuse yourself for cutting corners - for someone you've never met.  That's just basic psycology, and an advantage that small firms have over mega-corps.  It's a reason the mega-corps and the quality movement keep talking about the "voice of the customer."  Turn a nameless blob into an archtype, at least ...

4) As distance increases, you will comminicate less and less over voice and more and more over email.  Functional specifications at most companies are just to vague to be read without context.  Further distance means less chance that you will be able to pick up context.

5) Culture norms and standards as you leave the continent, as well as the ability to verify prior work.

Does this explain it better? 

Matt H.
Wednesday, June 16, 2004

Oh, the farther away you are, (in general) the more layers of management and communication between you and the people doing the work at the outsourcing firm.

This means that you end up paying more (layers of management) and getting a signal-to-noise ratio that is worse.


Matt H.
Wednesday, June 16, 2004

Another difference between same-continent and distant-continent: differences in infrastructure.

For instance, a shop in the third world might have telecom and power problems that need to be dealt with, which wouldn't be an issue in a region with more reliable utilities. Also, heat and dust can cause problems with equipment.

(Read a story about a company that outsourced to an Indian firm. The firm had unreliable A/C, so employees would open windows. That let in lots of dust, which caused problems with hardware.)

Jon Hendry
Wednesday, June 16, 2004

"heat and dust can cause problems with equipment"
"unreliable A/C"
"employees open windows. That let in lots of dust, which caused problems with hardware?"

Yeah that´s how it is down here.
A bunch of machines stacked up on top of another in the middle of the jungle.
Thanks for warning me buddy...
I thought I was suposed to open the window to warm the computer up a bit before using it.
You should try works better...

I´m an outsourced programmer here in South America.
I´ve worked in successful and unsuccessful offshore projects.
When you´re 5000 km away,
Every not well defined, not well expressed detail in a Spec turns directly into cost.
When managing projects remotly, very good communic and management skills are vital.
Also formal documentatin, control...

The typical Software project:
"Do you think you get this function done by Friday?"
"Can you also include the case where..."
just won´t work in an offshore project

Another key factor is having a local manager down here with good Technical and Comunication skills
to get report/status from.
Many of the Specs we get are so poor...

Unfortunatly we haven´t been getting many projects lately.
Even for us it´s very hard to compete with India, mainly because:
1 - They´re half of our price
2 - They´re all fluent in English
3 - They are f´good

Getting a little away from the Technical:

There seems to be an ambigous thinking about globalization/free-market by some people:

When someone else provides better product/service for a better price, people say:
It´s so outrageous what those people do to us...
It´s not unfair...

Over 50% of Brazilian industry/business is american.
Not because we´re unable to implement (we can´t be as cost efficient)

When our government decide to reserve a small percentage for local industry
(for instance medication)
We´re being "protencionists", unliberal
We´re not respecting against world trade agreements...

Thursday, June 17, 2004

The Americans are so self centered… they belief they should win all the wars just because they are Americans.  In business, if they are doing well that’s good!!!, but if someone else is doing better (i.e. the Indians) that’s unfair… how can underdeveloped, ignorant, low class people dare to compete against us!!!!. The same happens with South Americans (who btw are also Americans… you know… same continent) 

South American
Friday, June 18, 2004

Another point regarding offshoring that doesn't get much press is legal jurisdication.  If your companies software is being produced off shore and someone over there happens to sell it to your competitors, or use it themselves for the local/regional markets, what recourse would you have?  Call the UN?  Yea, that'll work.

Lexus has this problem in China.  They have Chinese factories producing Lexus vehicles, but 2 blocks down the street is the exact same factory, producing cars to Lexus quality specs, but under a different brand name for the local markets.

Respecting IP laws is a major issue that many countries in Asia and the MiddleEast don't care about.

Saturday, June 19, 2004

*  Recent Topics

*  Fog Creek Home