Fog Creek Software
Discussion Board




I Question the Assumptions

I know outsourcing has been done to death, but I'm not here kvetch about it!  I just have a simple question.  Is outsourcing really viable?  Everything I read about outsourcing here and elsewhere simply ASSUMES that outsourcing will save money for companies.  Nobody ever questions this assumption, but it doesn't make sense to me.  I realize I'm the only one, and that great Wharton School minds apparently are completely convinced that outsourcing is the wave of the future, but it seems ridiculous to me.

Right now I'm sitting in a cube next to a big meeting where business analysts and project managers are discussing how to begin discussing preliminaries of how they might consider moving forward with specifications for a project that'll be assigned to developers in India.  It's a small project, and, quite literally, I could have been done with the whole thing already, and yet my company is paying a team of people who make a lot more than I do, to sit around and create specifications which they'll later pay Indians to develop.

What am I missing?  Do you believe the outsourcing hype, or is it another fad?

Monica B
Wednesday, April 07, 2004

Developer A = $40 / hour
Developer B = $4 / hour

Case closed! Details schmetails!

Remember that the job of executives at most firms isn't to save money or to do what's best for the firm, but is to present the IMAGE of saving money and doing what's best for the firm. When you can break out just the "Developer salary" line item and bury all the other costs, it's pretty easy to make a case.

.
Wednesday, April 07, 2004


I have/had the same conversation with my wife. She works in the fashion industry, which did the whole offshore thing a decade ago.

It's a no-brainer to have garments made in China instead of North America, right? The workers make 1/10th the money.

On the other hand, you are at the mercy of shipping, deliveries are late and have more problems, there are labelling problems, quality issues, instances where the factory owners "forget" your order because something better came along. The list goes on.

The response of the retail industry to these issues seems to be simply to introduce penalties to punish suppliers who deliver late, etc. Suppliers respond by building contingencies into their prices. Margins are a lot slimmer as well.

I can't say whether the costs are ultimately less. What I can say is that the headaches seem to be vastly increased. So far, the retail industry seems to be willing to suffer the problems.

anon
Wednesday, April 07, 2004

You are assuming it is dumb to pay people to create specs, because the project is small and you could have completed it by now.

It's likely they are using this small project as a test case for the whole outsourcing process.  Don't judge what they are doing based on this small project.  Of course it's overkill to outsource it when you could just whip it off in house.

Does it still make sense if it was a much larger project where creating the specs *is* the right thing to do, and you can't just complete the job yourself?

whatever
Wednesday, April 07, 2004


Why don't just do it over the weekend or something?

That would be interesting.

I just finished a paper about outsourcing that I'll be presenting at the ABIT conference in Pittsburg later this month.  My conclusion was pretty much:  "IT depends"

If you are a small resturant, you probably want to outsource IT.  If you are a small chain of resturants, then you may want to have a small IT staff to do some integration work.  A large chain may be able to realize competitive advantage through IT - things like rewards cards.

A software business in the IT industry, of course, would be foolish to oursource it's software development.  So the right question is "Are the things you want to get out of IT so standardized that the only differentiating factor is cost?"

You might want to split that question up into areas of it:  Tech support, LAN stuff, Sys Admin Stuff, Data Center, Maintenance, etc., etc.

If yes for an area, you may be better off outsourcing to a company that specializes in that area and drives down cost through economy of scale.

But, overall, the answer is rarely as easy as "Yes, outsourcing is the absolute best way to go."  Don't check your brains at the door ...

Matt H.
Wednesday, April 07, 2004

Actually, the assumption ON THIS BOARD is that outsourcing costs MORE MONEY. Search for outsourcing and "hidden costs" on this forum....

www.MarkTAW.com
Wednesday, April 07, 2004

That's an interesting comparison to the garment industry. My office is in the middle of a neighborhood full of clothing factories in the heart of the most expensive city on the planet, and they're all doing quite well thank you.

For T-shirts at the Gap, even China isn't cheap enough any more. But for high end "couture" fashion where a frock sells for $25,000, the control and quality you get from having a factory nearby far outweighs the extra few bucks you spend on rent and salaries.

And the same thing will happen with software, except that with software, there's even more value to control and quality, and even less worry about cost (per unit cost is always zero).

Joel Spolsky
Fog Creek Software
Wednesday, April 07, 2004

Well, you are a developer in the US, and you are thinking about outsourcing.

Try to ignore the wages issue for a moment, and look at it from a different perspective:

What if the client was in India, and you would be doing the implementing?

What if a company in India would create the specs, for a business in India, and your firm, in the US, would implement it?

Would this deal work, or not?

I know that it's unconfortable to look at it this way - but be sincere, and really consider this.

The answer is: it depends. :)

It depends on:

- the experience and quality of the management at BOTH companies

- how good the spec is

- which process/methodology both sides use for developing software, making specifications, testing and integrating the deliverables, etc.

It can work, but there are, indeed, some challenges and problems that must be solved, in order to make it work.

When you ask yourself "can outsourcing work", it may be useful to also think about it from this point of view:

What if you were the company doing the work, and not the company outsourcing the work? Would it work, then?


I am a developer in Bucharest, Romania, Eastern Europe.

I have worked on many projects for US clients, and have also managed several successful outsourcing projects.

Now I would like to answer a few questions which appear often on this board:


Q: Are there hidden costs?

A: Yes, there are hidden costs in any outsourcing project.

If you take a project which your company can complete in 1000 hours, and contract the work with another company, located many miles away, that company will probably complete the project in 1300-1500 hours because they lack some of the domain knowledge that your company already has.

The salary of an average US developer can be of 50 K$ per year.

The salary of a similarly experienced Romanian developer is of 10 K$ per year.

The developer salaries in Romania are 20% of the salaries in the US.

So - are the Romanian outsourcing companies telling you "Develop your projects in Romania, and save 80% of your development costs" ?

No! Most Romanian software development companies I know are telling you that you can save about 40% of your development costs.

So, why do they claim savings of only 40%?

Because they are aware that there are hidden costs (like the one described above - a 1000 hours project turning into an 1300 hours project when the work is done by another company).


Q: Are there hidden gains of outsourcing?

A: Yes, there may be hidden gains.

If your company takes the time to write a proper specification and really think over what they are doing, there may be a serious gain, if you compare this with the situation in which your company writes a minimal specification and then jumps directly to coding.


Q: What can I do to make sure that an outsourcing project succeeds?

A: You can do several things:


- Choose wisely the company doing the work.

Get a company with experience in the sort of work you will be doing.

Ask for references. Talk to previous clients of the company which will do the work.

Never choose "the lowest bidder". The lowest bidder is usually desperate, and may dump your project as soon as a better paid one comes along.

If somebody gives you a quote "too good to be true", then it probably is. Aim for savings of about 40% of the development costs.


- Get a manager or developer with outsourcing experience in the US team that will handle the outsourcing.

Both the US team handling the outsourcing and the Indian or Romanian team must have good, experienced management.


- Ask for feedback from the company that will be doing the work. Don't just hand them the specs - ask if there are ways in which you can improve the process.

Communicate with them often and openly. Check their progress often.

Dan
Wednesday, April 07, 2004

I forgot about this one:

- Start with a smaller project first, see how it works, and what you can learn from it.

After the small project is completed and both companies have adapted to each other and learned from each other, you can do larger projects.

Dan
Wednesday, April 07, 2004

"If your company takes the time to write a proper specification and really think over what they are doing, there may be a serious gain, if you compare this with the situation in which your company writes a minimal specification and then jumps directly to coding."

The heavyweight software development process has proven a _TREMENDOUS_ (the bold pseudo underline still fails to convey the scale of this) failure through project after project after project, yet it is a requisite for outsourcing (outsourcing being a generic term for shipping your custom software development to an external entity. Whether it's in Iowa or India, the issues are largely the same), and here you're presenting it again as the myth of the magical gain.

It's a sad sort of irony that the majority of systems running this planet were created using agile type methodologies, yet we still humor and repeat this ideal that optimal software development is heavy on the front end. History has shown, OVERWHELMINGLY, that this is not the case.

Dennis Forbes
Wednesday, April 07, 2004

The "heavy" development methodology is not a prerequisite of outsourcing.

I don't see why you can't outsource using an agile methodology, using modern means of communications such as videoconferencing, IM, etc.

I have worked on many successful outsourcing projects and on a few unsuccessful outsourcing projects, and I know from experience that success can be achieved - it's not even very hard.

In my experience, the successfull projects used good, clear, logical specifications and good management.

I don't think that a project where Johnny B. Coder comes into a company, talks for 2 hours with some people, and then starts coding, can be successful.

Dan
Wednesday, April 07, 2004

If onshore developers would like to gain advantage, they should agitate for increased legislation against buggy/insecure software.  Increased obstacles should punish offshorers disproportionately, assuming the communication gaps make them lower quality.

Tayssir John Gabbour
Wednesday, April 07, 2004

I should just keep this analysis in a file for easy cutting/pasting...

Up-front, outsourcing is an easy pitch because "their developers are cheaper."

The question is, what happens after the pilot project?

Very, very few managers are going to accurately assess the costs of a 6-12 month outsourced project, because failure means a black mark against them in most companies, and that black mark will have run the entire review cycle.

So, how do we guarantee a win?

Simple - take the number of hours the project took (easily done - we have invoices), multiply that by (local rate - outsourced rate) and voila! Massive savings.

Conveniently neglect to add back in the local "anchor" team costs, the increased management costs, or the possibility that the local team would've completed it in fewer hours.

Even with a hotshot team of talent in India, it's not their fault if local management STILL doesn't understand how to write a spec, or that they STILL change features after delivery. I'm sure our friends in Bangalore are equally capable of banging their heads on the desk when the week before delivery our local hero says "oh hey, this thing needs to work offline too - is that hard?" (another 1000 hours of dev to rework the infrastructure - another 1000 * savings per hour = more savings!)

India is just another talent pool. Like any tool, it has its uses. Like any new concept, it's a hammer and every problem looks like a nail to magazine managers. Like every other new fashion, it will crest, then management will find some new shiny object to focus on and we can all get back to work. :-)

Philo

Philo
Wednesday, April 07, 2004

You mean that when the local hero says "oh hey, this thing needs to work offline too", the US team spends much less time on this than the remote team?!

Indeed, the US team has the advantage that it may find out sooner about the unexpected change.


You say that:

~ Like every other new fashion, it will crest,
~ then management will find some new shiny
~ object to focus on and we can all get back
~ to work. :-)

Unfortunately I think it will indeed affect US developer jobs a lot, in the long term. The effect will be very deep, and very bad.

Yes, it's probably just a fashion now.. but when outsourcing will cease to be a fashion, maybe only 20% of the total amount of outsourced jobs will go back to the US.

The rest of 80% will continue to be done in cheaper locations.

Managers will eventually learn to manage the outsourcing project correctly. Many of them already know how to do that.

Dan
Wednesday, April 07, 2004

"Yes, it's probably just a fashion now.. but when outsourcing will cease to be a fashion, maybe only 20% of the total amount of outsourced jobs will go back to the US."

Err, in the grand scheme of things very few jobs have been outsourced, so 20% of a relatively small amount really isn't a big deal. Much like the Japanese in the 80s -- this isn't about what has happened, but classic extrapolation-to-ultimate-ends that occurs.

Secondly, is the US the only economy in the world? Developing nations are getting some traction and are...developing. In the short term some of those developing nations have an imbalance where their education and infrastructure doesn't match their economic status, so they are cheap. India is such a case. Do you think every Indians dream is to have one tenth the spending power of an American? Hardly. Like many nations before, soon they'll be consuming just like the rest of the world, and there'll be plenty of work for the West keeping one billion Indians satisfied.

Dennis Forbes
Wednesday, April 07, 2004

"Unfortunately I think it will indeed affect US developer jobs a lot, in the long term. The effect will be very deep, and very bad."

As an aside, the real prognosis is indeed bad for programmers -- in the US, India, or Romania. The reality is that there is a tremendous amount of duplication of effort that occurs in this industry. How many internal software apps have been created that do XYZ? With the internet and collaboration, that is simplifying down to a few application service providers, and all of the redundant work is disappearing. I would go further and say that the vast majority of work that is being outsourced is work that shouldn't be occurring in the first place.

Dennis Forbes
Wednesday, April 07, 2004

"The response of the retail industry to these issues seems to be simply to introduce penalties to punish suppliers who deliver late, etc. Suppliers respond by building contingencies into their prices. Margins are a lot slimmer as well."

This is a normal practice in all retail markets, as I understand it.  Certainly, all of my employer's customers (Staples, Target, Wal-mart, etc.) all have vendor compliance guides with fine schedules clearly articulated, and we're a local manufacturer.  Most also have different tiers of vendors--Wal-mart, for example, has A, B, and C vendors, and it's the A vendors (like Rubbermaid) who get the most shelf space, partly because they've demonstrated their ability to meet tight restrictions on on-time-and-complete shipping with short lead times.  By comparison, we're a C vendor who doesn't have the infrastructure or capacity to sate the appetite of the world's biggest retailer, but we can offer a few profitable items with a little slack.  Our owner told Wal-mart that we're not ready to be an A vendor, so we're happily filling a profitable niche without sacrificing ourselves on the altar of growth, as so many other manufacturers (quite stupidly) did.

This is the reason I'm not so worried about offshoring.  We're an American manufacturer of commodity housewares, a segment that was supposed to be totally offshored decades ago, and we're doing fine.  It just requires some efficiency, and some taking advantage of local conditions (labor is cheaper overseas, but raw materials are higher)--like any business.

Justin Johnson
Wednesday, April 07, 2004

Monica B, your appreciation of the situation is correct.

It's already been discussed a lot here that offshoring contains many traps that dumb managers won't recognise, and they won't be around to clean up the mess anyway. They pocket their bonus and move on.

As to the highly paid dopes planning the offshoring move, that too is part of the script. While software developers do all the work and all the training, accountants and assorted other useless consultants charge high rates for feel-good work.

Developers need to learn to put their feet up more and demanding to get involved in the work that involves them, and where less capable people, with less to do, make much higher salaries and fees.

CEO On The Take
Wednesday, April 07, 2004

*  Recent Topics

*  Fog Creek Home