Fog Creek Software
Discussion Board




Pitfalls of oursourcing

Thought this article summed things up quite well.

I don't blame companies for outsourcing. I've considered it myself--then rejected it, for many of the reasons in this article.

It think it often hurts the company in the end.

The Pitfalls of Outsourcing Programmers
http://www.forio.com/outsourcing.htm

The real Entrepreneur
Monday, February 16, 2004

From the article:

> Farming out development to legions
> of programmers overseas will not create
> a differentiation advantage.

Yes, it can, if your product has a lot more modules than the competition, because you were able to do a lot more programming work, by using outsourcing, for the same money.

The competitive advantage often appears not from programming grunt work, but from high level software architecture, design, and also from a good market analysis, from good client needs analysis, etc.

These are the things you should not outsource.

Once you have a good spec, you can outsource without any problems.

Of course, there are some problems - you have to choose a competent firm.


> It's extremely dangerous to bet on the
> incompetence of your competitors -- and
> that's what you're doing when you're
> competing on operational effectiveness.

Then, what about DELL? Dell didn't innovate anything, yet they totally dominate the PC hardware market.

Why?

Because their focus was all the time on reducing costs.

Granted, hardware is not software, but there is a point here: you can keep analysis and design in the US, and outsource the coding work.


Also, keep in mind that the people in Eastern Europe who you outsource are creative, too. They are far from dumb.

You only have to stimulate and harness that creativity - the same as you to with your employees in the US.

Mike
Monday, February 16, 2004

I just look forward to the sweet irony of outsourced executive leadership . . .

Steve
Monday, February 16, 2004

Seems like there should be a differentiation between Oracle who actually has employees in India and TelcoUSA, which is asking OutSourceIndia to do some of its software functions. The first example is not so bad if those foreign employees have a long-term stake in the company, which is a challenge for companies no matter where the employee is. The second example is where you can start to run into trouble, but really not unless the outsourced function is a “core-competency” as stated in the article.

m
Monday, February 16, 2004

"Once you have a good spec, you can outsource without any problems."

BWA HA HA HA HA HA HA

Mongo
Monday, February 16, 2004

> you can keep analysis and design in the US,
> and outsource the coding work.

Spoken like someone with no real-world software development experience.

If you actually understood what software development actually entails, then you wouldn't be repeating this mantra that seems to be the hobby horse of MBAs right now.

What all these these people want to believe is that one can create a perfect set of requirments -- with maybe some incredibly insightful architectural guidance thrown in ("use EJBs, dude") and ship it all over to a code farm, where a 6 year old child labourer will churn it out for 12 cents a day. Just like the way they send a blueprint for a TV to a third world country, where it will be manufactured at rock bottom prices thanks to cheap labour, lack of environmental regulations and no occupational and health laws.

Well, I've got news for you: Software development doesn't work like that.

For one, design occurs during the development process. The waterfall SDLC didn't work back in the 70s. It still doesn't work today. The fact of the matter is, there are only exceptionally rare cases where one can absolutely and completely know the requirements for a software product prior to development. In the vast majority of cases, the requirements are full of unstated requirements and they change on a regular basis throughout the project.

Much of the work in software development is in fact accomodating those changing requirements and dealing with unspoken/implied requirements.

Here's some more news: only a very small percentage of the work of a programmer actually involves programming. More of it is spent on design, testing, and sitting in meetings about customer requirements.

In short - in most cases, you cannot simply "outsource the grunt work". Anyone who believes otherwise simply has no idea whatesoever what they are talking about. It's as simple as that.

Burninator
Monday, February 16, 2004

Thoes who do not maintain competitive advantage on price are doomed to fail. Quality and service are not distinguishing criteria - price is EVERYTHING. Companies wasting $37/month on chinese programmers will FAIL. Our cost is much lower than that. We 'repurpose' child slaves, bought at a cost of $350 and put them to work developing software. They tend to last 6 years before their eyesight gives out, for a cost of only $4.86/month, or slightly more than 1 cent per hour. Housing costs nothing since we keep them in the warehouse and food is provided free since we are a nonprofit charity organization ostensibly providing IT training to war orphans. The Chinese think they can compete with $4.86/month? Think again!

Outsourcing Giant
Monday, February 16, 2004

I have proposed putting the company on a barge and just bring it into the cheapest port.

m
Monday, February 16, 2004

"Granted, hardware is not software, but there is a point here: you can keep analysis and design in the US, and outsource the coding work."

Outsourced hardware is the production process.  Hardware companies don't outsource the design, they outsource the production of the design.  They design the plant here in the US, then they build a production facility some place cheap (like in Mexico or Hungary w/ the XBox) and you produce the hardware.

An appropriate analogy for software outsourcing as the hardware folks do it would be to outsource your CD duplication services and printing/packaging servies.  Oh wait, this has been done for years.

If the hardware folks outsourced their development efforts like the software folks do (and as you suggest), I imagine it would go something like this.  Intel writes up some specs like 4Ghz processor, 1.2GHz FSB, 178 pins, 2 paralell instruction pipelines, etc.  Give this list of Specs to some guy in India.  Sit around and wait for a processor to come back.  Receive design, notice that oops I forgot to specify power requirements, and (if this was even possible that they were able to meet all the existing criteria, which I doubt) the received processor now requires 1200W of power.  Send it back, try again.  Now sit back and talk about the cost savings of outsourcing to another country.

Elephant
Monday, February 16, 2004

>> Quality and service are not distinguishing criteria - price is EVERYTHING

Then why is BMW still in business, selling cars that cost quite a lot more than, say, Hyundai? Why didn't the economies of Germany or Scandinavia didn't go bankrupt yet, considering they churn out products that cost a hell of a lot more than what's coming out of Vietnam?

Could it be that people are willing to pay more for higher-quality, better-engineered products?

Fred
Monday, February 16, 2004

In software its neither price nor quality, its who has the sleaziest sales weasels

The Artist Formerly Known as Prince
Monday, February 16, 2004

Burninator and Elephant have the most insightful responses based upon my software experience as well . . .  I couldn't agree more. No matter how well we gather reqs, integrate class diagrams and prototype UIs ... it is a VERY iterative process that (at least the most successful of our products) involve the customer continuously. The final product (again, at least the ones the customer **love**) actually ends up marginally different than conception.

I just don't get how outsourcing actually works and maintains a high-level of customer satisfaction . . . i just don't get it. Maybe it's simply "so new" that we haven't seen it fail yet? Maybe it's because i haven't worked with an Infosys or any other "outsourcer" before . . . can anyone actively working with overseas labor comment?

Steve
Monday, February 16, 2004

Burninator,

You forgot to write "imo" and "generally speaking" in your post.    ;-)


"...For one, design occurs during the development process. The waterfall SDLC didn't work back in the 70s. It still doesn't work today. "

While there were plenty of mainframe software systems that wound up being cancelled or were delivered late and over budget there were also plenty of mainframe systems that were delivered on time and under budget.

Right or wrong waterfall SDLC is still being used today all over the world! In many instances specialization works just fine as long as the project is big enough where the work can be divided up, the client has a boat load of money, and the specialists are allowed to communicate with each other.


Real-world business software development experience is typically this...

Individuals get together for short discussions during the project, but spend most of time working alone within cubicles and offices. Making a project a team effort and bringing the entire team together to find solutions just doesn't happen as often as many people seem to think it does.


Interchangeable units

Most American programmers work in the same manner as Indian programmers do. This is one reason why companies are bringing so many of them into this country. This is also one reason why companies are offshoring a lot of programming related work.

Most programmers that I have met in recent years spend all of their non-coding time learning new programming methods and studying technologies. They have a hard time dealing with anything that isn't technology or source code related because they haven't been mentored or trained to deal with those aspects of software development. Most programmers have a hard time keeping a programming related job because they eventually wind up getting placed into a work situation they simply aren't prepared to handle. Most programmers can only excel within one type of  work environment. Either they perform very well within a highly-structured work environment or within a chaotic work environment, but rarely can they do equally well within both. Most programmers are interchangeable units.

 
Monday, February 16, 2004

>> Most programmers are interchangeable units.

Just looking around my workplace disproves this for me. There's at least an order of magnitude between the best and the worst programmers within spitting distance of my cube (including one or two negative work generators).

sickie today
Monday, February 16, 2004

Racist Fred ignorantly asked:

> Why didn't the economies of Germany or Scandinavia didn't go bankrupt yet, considering they churn out products that cost a hell of a lot more than what's coming out of Vietnam? Could it be that people are willing to pay more for higher-quality, better-engineered products?

Fred, your assertion that white aryans from the two most aryan societies in the world intrinsically produce higher quality products than Southeast Asians is shocking, repulsive and disgusting racism at its most finest.

Vietnamese children produce just as good software as the fiest scandinavian engineers. In fact, Volvo is outsourcing their automobile and engine designs for the 2007 line to a very fine and capable child labor design firm in Myanmar.

Outsourcing Giant
Monday, February 16, 2004

sickie today,

I am sure you would be saying the same thing if you were living in Romania, China, Russia, or India. Many companies will only retain their best coders as long as they don't ask for a magnitude more money than the worst coders ask for.

How about this? Most business programmers are interchangeable units nowadays because they primarily get hired to work on a specific software project based on their coding expertise with a particular programming language, their programming paradigm knowledge (OO vs. procedural), and their familiarity with certain computer related technologies. If the next software project involves using a different programming language or a different set of computer technologies you simply fire the current lot of productive coders and replace them with coders who are better suited to work on the upcoming software project. Better suited = a coder who doesn't need any time to get up to speed because he already has prior relevant work experience. The mantra of the day is only hire programmers with relevant technology experience and fire them as soon as they need any training or mentoring.

negative work generators
As Burninator pointed out some programmers do very little coding, however, some employers consider these individuals to be valuable because they know how to do things the best coders don't know how to do or simply don't want to do.


Monday, February 16, 2004

Like what for example?

Jim
Monday, February 16, 2004

"As Burninator pointed out some programmers do very little coding, however, some employers consider these individuals to be valuable because they know how to do things the best coders don't know how to do or simply don't want to do. "

That is not a negative work generator. A negative work generator is the guy who takes out all the 'if' statements because they don't look pretty.

mb
Monday, February 16, 2004

Like create business value, for example. Also, infusing synergy into the workforce idiom. And let's not forget adapting visionary innovation focus.


Monday, February 16, 2004

that comment was for Jim. Jim, I think you can agree that these things are more important than low skill tasks like coding.


Monday, February 16, 2004

How about project management tasks, analysis tasks, documentation, training end users, talking to end users, creating and delivering presentations, or testing?

 
Monday, February 16, 2004

The high level design and innovation should be done by the high level architect designers, just like Nike hires local artists to conceptualize shoe models. Then, the manufacture of the code can be doen anywhere by unskilled laborers since the writing of code from specs is a known, mechanical process.

Outsourcing Giant
Monday, February 16, 2004

^^^

I wonder if trolling can be outsourced. ;)

Sum Dum Gai
Monday, February 16, 2004

"Then, the manufacture of the code can be doen anywhere by unskilled laborers since the writing of code from specs is a known, mechanical process."

Of course, Outsourcing Giant is just being facetious.

But there are many managers who do think that writing code from specs is a known mechnical process.  However they refuse to realize that the time taken to write a spec that is so detailed that it can be coded mechanically AND still work, is more than writing a higher-level spec and having the spec writer code it him/herself.

And when specs are done to that level of detail, they are almost always guaranteed to be WRONG.  Then you have to spend time to rework the the program in-house because the offshore coder did *exactly* as you wrote. Or you pay them again to make it right.

T. Norman
Tuesday, February 17, 2004

"Hardware companies don't outsource the design, they outsource the production of the design."

ROTFL.

Hardware companies outsource design work all the time.  Check out http://www.zaiqtech.com/ , http://www.intrinsix.com/ or http://www.paradigm-works.com/ and for those on a budget, http://www.wipro.com/

Seriously, the eletronic design industry is grappling with outsourcing as much as the software guys are.

David Jones
Tuesday, February 17, 2004

I tend to believe that there is no real grunt work in programming when you do it well.  Oh sure, many lines here and there you can dash off without hardly a thought, but if you have a large corpus of such code separated well enough to delegate to an unskilled laborer then you probably have some serious refactoring to do, and perhaps you didn't do so well in the "skilled" role.  (Honestly, who here really thinks specifying design on paper do the degree required by a monkey is actually easier than specifying the same thing in a programming language?)

I find that work delegated to unskilled programmers tends to generate more ensuing work than it saves.  You have to check their work, or at least debug their mistakes, and in my opinion that makes more work for you (and entails more frustration) than programming it yourself.  This extra effort or pain is worthwhile when you're training an apprentice, but not otherwise.

veal
Tuesday, February 17, 2004

"Hardware companies outsource design work all the time."

David is correct. I mentioned before that I used to design VLSI chips for Zilog - in fact these chips were the most advanced chips in both speed and transistor count that Zilog had ever produced. Maybe I still hold the record, who knows. When I did the designs, I was not an employee of Zilog, but working for a small startup that had made a deal with Zilog, who had the amazing advantage of having a real live foundry, something we had no hope of having access to. In visits to the Zilog facility, the interesting thing was that Zilog did not have ANY chip designers left working there, nor did they even have single employee left that even knew how to take a net list and get a layout from it. We had to figure it all out from scrath doing trial and error. All they had left was sales, marketing, web site designers, and people to operate the physical fabrication line. Their story is not an unusual one. Once a design company builds a huge fabrication line, it is very common for them to start losing money. There is no way to get out of the debt on the production line, so the only option they have is to fire all their designers/engineers. This results in a shift of their core business from their core competancy (design of chips) to a commodity business (fabrication of chips). There's no way to reverse the process either. One dirty secret of american business is that many many companies do this. American software firms are doing it now -  dumping their core design competancy in favor of marketing and sales of the designs of others. Once this happens, its the beginning of the end. Its unsustainable as a big business, though they can always reinvent themselves as minor players in the marketing business.

Successful design firms keep their core competancy and outsource marketing. There are plenty of greeat ad firms out there that can do your marketing and its far more likely they can do a great ad campaign than some community college dropout  salespeople at a former tech firm can.

Zilog got its ass whipped when they dumped their design competancy. They are only a shell of their former selves. The same will happen to all companies that give control of the firm to flunky salespeoplo and outsource their design teams to recent graduates of third string trade schools in foreign countries with corrupt governments.

Dennis Atkins
Tuesday, February 17, 2004

---"outsource their design teams to recent graduates of third string trade schools in foreign countries with corrupt governments. "------

So its OK to outsource to recent graduates of third string trade schools to US States with corrupt governments, or to foreign countries with honest governments or ......?

How is it Dennis, that even when you are almost completely right you can manage to wreck your own argument?

Stephen Jones
Tuesday, February 17, 2004

Stephen, you are not a developer, you have never been to the Us, and you tout the advantages of the most corrupt and despicable human rights trampler in recent centuries, Saudi Arabia. Please crawl back into your cave with Osama.

Dennis Atkins
Tuesday, February 17, 2004

Dear Dennis,
                    Osama left Saudi some time in the early nineties. He's believed to be in Afghanistan. That is a few thousand miles away from Saudi Arabia.

                    Still what's really puzzling me is, do you take the medication to keep you sane, or to jolt you into the foaming redneck imitation?

                      Or have you set up task scheduler to flip you from one state to another?

Stephen Jones
Tuesday, February 17, 2004

Come on now, Denny and Stevie, stop the fighting. For the children.

And remember, Zod, er, I mean, God is watching. :-P

Zod
Tuesday, February 17, 2004

Actually, Stephen and Dennis should team up and make a point/counterpoint style blog. That way I could just read that for entertainment instead of having to wade through all the boring posts about resume grammar and coding style to get to the good stuff.

Bipolar laid-off north american engineer: what is it today? Will he mildly assist some newbies with calm embedded systems advice? Or will he fly off the handle with jingoist ranting? Saucy british ex-pat building a personal shangri-la in sri lanka with blood money from the Saudis: will he offer sensible VB scripting tips, or a crazy story about a drunk catalan maid, a camel, and a Bahranian night club? 

Once in a while you could have a guest column from a lawyer cum microsoft salesman about how the navy sucked back in 86.  Man. if only i could INVENT characters like these, I'd be the richest screenwriter in hollywood!


Wednesday, February 18, 2004

Blank number 67, what a wanker you are, to say that "these things" are more important than "low skill" tasks like coding.

What we're talking about, my friend, is programming. It's something you can't do. It's high skill. It's the highest skill component of the business.

Blank number 3
Wednesday, February 18, 2004

Quick! Somebody hand me the net!

Blank Number 67
Wednesday, February 18, 2004

That's the idea, Blank number 67. A spot of fishing is a good fall-back for the management wanna-be's and accountants who can't program.

When the programming jobs are gone, yours will be too.

Blank number 3
Wednesday, February 18, 2004

are you guys in the right thread?


Wednesday, February 18, 2004

> a crazy story about a drunk catalan maid,
> a camel, and a Bahranian night club

So what happened, then?

burninator
Wednesday, February 18, 2004

Actually I don't think I've ever told a story her about a drunk Catalan maid (a drunk Sri Lankan houseboy, yes, but I don;t think there even are any Catalan maids any more), a camel or a Bahraini night club. Nevertheless the poster does show an attention to detail to my posts that suggests his employer might actually get more work if he outsourced to somone withoug a connection to JOS :)

Years ago when Philo was wearing a different kind of sailor suit from those he got in the US Navy, I found myself stuck in the centre of Paris for the night. I found myself talking to a guy in a bar who suggested I went up to his flat for a coffee, where he proceeded to show me a grainy black and white 8mm film of  a nightclub show depicting somebody briefly dressed in a maid's uniform and a donkey. The plot was rather predictable.

Stephen Jones
Thursday, February 19, 2004

*  Recent Topics

*  Fog Creek Home