Fog Creek Software
g
Discussion Board




Outsourcing has been working for a long time

Outsourcing works.... Here's how. A wise man one wrote that those who do not study history were bound to repeat it.

The questions should not be about whether outsourcing works in the software industry, but more about what form it will take, and how best one can profit from it.

I can imagine conversations in the past witht the local village chicken farmer espousing how good his eggs were compared to the one's from the ranch 100 miles aways. The latter might be cheaper, but they were not as fresh, and certainly lower quality, as they got cracked on the cart on the way to the village.

Dairy farmer probably argued the same thing. Throw in the fact that you could not buy a lot in advance (no refrigeration), it was not cost effective to buy from the next village, despite their prices being lower.

Leading business gurus then probably warned against having offices in more than one city, as the cost of communication was so high. I mean, you can only say so much in a telegram. Throw in the unreliability of transport links, highwaymen etc, and there was no way it could ever work.

Advances in other technologies (transportation, refrigeration, communication etc), rendered these arguments moot. Those that did not adapt, died.

In fact, unless you produce **everything** you consume from first principles, you are already outsourcing. Some of the biggest businesses in the world (Walmart) are merely aggreagators of low cost produce from all over the world.

I promise to do a #6 on the next person that says;
(a) this time it is different
(b) software development is hard, so it can't be outsourced

Cobblers, tailors, blacksmiths, were all very highly skilled technicians, but who here would argue that one gets more bang-per-dollar for a Made in Taiwan designer boot than one did for a handmade by highly-skilled cobbler 100 years ago. Designer shoes do exist, and some people do pay for them, but in the end, most jobs will get commoditised.

Today we buy wine, food, clothing, consumer electronics without a thought as to where they came from. We buy from personal choice, driven either by value, or fashion considerations. Tomorrow, companies will buy programmers' time the same way.

Tapiwa
Monday, March 15, 2004

"Cobblers, tailors, blacksmiths, were all very highly skilled technicians, but who here would argue that one gets more bang-per-dollar for a Made in Taiwan designer boot than one did for a handmade by highly-skilled cobbler 100 years ago. Designer shoes do exist, and some people do pay for them, but in the end, most jobs will get commoditised."

Or buy Nike and get the best of both worlds: a sweatshop-made shoe that costs the same as a designer shoe!

Outsourcing is about nothing but paying less to the guys at the bottom so as to leave more for the guys at the top.

Kyralessa
Monday, March 15, 2004

>Outsourcing is about nothing but paying less to the guys at the bottom so as to leave more for the guys at the top.

You're absolutely correct.  Is it fair? Not really.  My dad and I argue about this all the time (he's a factory worker at a GM plant.)  The truth is, the guys that run the show don't generally give a rat's ass about their workers welfare.  He who has the gold makes the rules...

GiorgioG
Monday, March 15, 2004

Tapiwa - bad analogy.

This is not about "Indian coders are better [or worse] than American coders"

From the corporation's perspective it's simply "Indian coders are good enough, and they're much, much cheaper"

The problem that is rarely addressed by outsourcing proponents is that to build good software, you need a close interface with the stakeholders and users. That interface isn't like COM - it *does* make a difference if it's in the same building or over a wire.

Now maybe a project can still be successful and cheaper with extranational developers - but nobody ever does that analysis. I never see "Well, a similar project a year ago cost $100,000. We saved $30k on the labor costs. Despite the contract labor being 1/4 the rate, we found that a lot of additional labor was required due to communications difficulties. In addition, we incurred $25k additional overhead for the same reason. So the project totaled out at $95k - honestly about on par with our past experience." (or cheaper, or more expensive)

Nope - all we see is "the project totaled out to 20,000 manhours at $25/hour. In-house assets cost us an average of $50/hr, so we saved $500k" with no mention of the increased overhead or the possibility that in-house might not have taken 20k hours.

My final and continuing opinion on the subject - outsourcing is a lie so long as employees can't work from home. If you need your local coders in the office, you need ALL your coders in the office.

Philo

Philo
Monday, March 15, 2004

Cheapness is not the reason.  Increasing the supply of coders is.  Companies want to open up their supply channel.  They want choice.  Those who expect low-low-prices-everyday are either stupid or unusually careful.

This is also the historic reason for programming languages.  To reduce companies' dependence on a few expensive mathematicians.  By the same logic, because most languages look like some ugly version of grade-school math, it doesn't mean they can get any grade-schooler to code an enterprise app.

Tayssir John Gabbour
Monday, March 15, 2004

"Today we buy wine, food, clothing, consumer electronics without a thought as to where they came from. We buy from personal choice, driven either by value, or fashion considerations. Tomorrow, companies will buy programmers' time the same way."

I think throwing "wine" in there was a poor choice, as one of the prime classifications of wines is where it came from. Personally I favour California wines, though Australia has some pretty good varieties nowadays as well. Wine is anything but a commodity, and the same could be said for many other foods and beverages.

Dennis Forbes
Monday, March 15, 2004

"Cheapness is not the reason.  Increasing the supply of coders is.  Companies want to open up their supply channel. "

Err...they want to increase the supply channel to force a race to the bottom to achieve...._CHEAPNESS_. The outsourcing boom is entirely driven by cheapness.

Dennis Forbes
Monday, March 15, 2004

Tapiwa, spot on!  For shrinkwrap software, anyway.

For bespoke software, you have to look at trades where location is important - plumbing is a bugger to do remotely, for example.

While plumbers etc are fairly expensive, they are nothing compared to IT 'consultants'.  IT consultant costs need to come down.

i like i
Monday, March 15, 2004

That's a 2nd-order effect, Dennis.

The internet boom was driven by people who believed barbers would take appointments over the web and companies who thought they'd just be virtual middlemen.  Someone recently told me about a prof who made that bet about barbers.  But the mainstream does not decide truth.  Get past what most companies think.  They'll drop their most loyal employees so some middle manager gets a bonus.  So I guess I don't give a damn what they think, unless I have to.

Tayssir John Gabbour
Monday, March 15, 2004

Kyralessa has written:

> Outsourcing is about nothing but paying
> less to the guys at the bottom so as to
> leave more for the guys at the top.

You are probably right.

Then, what is your conclusion?

My conclusion is that in order to prosper, you must either:

A. stop outsourcing
      OR
B. stop being one of the guys at the bottom and start being one the guys on top

Both things are pretty hard to do.

However, I think that B is easier done than A.

Maximum Overdrive
Monday, March 15, 2004

Philo has written:

> My final and continuing opinion on the
> subject - outsourcing is a lie so long
> as employees can't work from home. If
> you need your local coders in the office,
> you need ALL your coders in the office.

Philo, there is one thing you must understand.

Let's say you want a certain software development job done. That job requires 20 developers.

Which of these situations do you prefer?


A. You have 20 guys working from home.

You must supervise and manage each of the 20 guys by calling them, checking what they worked, etc.

You must make sure that each of the 20 guys do their job, and don't slack off.


B. You work with the 20 developers in the office.

You can walk into their offices at any time, and see if they are working or slacking off.


C. You work with another company.

The other company manages the 20 developers.

There is only one person that is responsable and accountable for the project: the other company's manager.


If you think at these situations from a manager's point of view, you will understand why only situations B and C are acceptable.

It is very hard to supervise a lot of people, each one working from home.

It is a lot easier to do this if they all work at the office.

It is even easier to do this if you have another manager supervising them, and reporting to you (scenario C - outsourcing).

Maximum Overdrive
Monday, March 15, 2004

Dear Philo,
                Offer to work from home for Bangalore wages and I am sure plenty of employers will jump at the chance.

Stephen Jones
Monday, March 15, 2004

"Cheapness is not the reason...

This is also the historic reason for programming languages.  To reduce companies' dependence on a few *expensive* mathematicians..."  (emphasis added)


Make up your mind.

Kyralessa
Monday, March 15, 2004

This is what I get for talking economics on a forum.  I stick to my point that outsourcing is a mistake.  Have a good Sunday afternoon. ;)

Tayssir John Gabbour
Monday, March 15, 2004

s/Sunday/Monday/

Tayssir John Gabbour
Monday, March 15, 2004

Tayssir,

When you had breakfast today, did you slaughter the pig, and pick your own eggs from you chicken coop??

If not, then you are outsourcing already. That is the point of the article.

No outsourcing ----> No trade
(as true between individuals as it is between companies and even between countries)

Tapiwa
Monday, March 15, 2004

If I believe the ONLY reason for outsourcing is to save a few bucks, it's a mistake.

If I believe there is a resourcefulness in increasing the supply of my needs, that can manifest in ways OTHER than pure price, it is not a mistake.

But if I don't boil down my views to one sentence, my words will be twisted because it's a political topic that I should've avoided...  or maybe I'm just cranky today. ;)

Tayssir John Gabbour
Monday, March 15, 2004

Tapiwa,

I am not saying that your "outsourcing works" argument is invalid, however, I believe that parts of your argument are faulty.

Where your comparison argument fails is that most software development/maintenance work isn't a repeatable process in the same manner as the manufacturing of one or a handful of physical products. All the physical items you mentioned in your post (electronics, shoes, wine, egg production, etc.) are commodities simply because these items can all be stamped out one after another. Cobblers, tailors, and blacksmiths all make physical products that someone figured out how to make cheaper and a lot faster. Advances in technology by itself commoditised the livelihoods of many craftsman. Maybe someday (i.e. code generators) the same fate will befall most programmers? Even so, it ain't going to happen this year or next year.

No doubt about it outsourcing, offshoring, hiring contractors, implementing processes, etc. are all attempts at saving money in some form or another. Having said this, I don't see how you can compare the entire software development industry which is very diverse with something like the manufacturing of TVs which are no longer assembled within the borders of the United States anymore.


Tapiwa wrote, "The questions should not be about whether outsourcing works in the software industry, but more about what form it will take, and how best one can profit from it."

Unless you are programmer who has access to a lot of capital there aren't a whole lot of different ways programmers can profit from the current offshoring trend. The outsourcing/offshoring of software development work has been going on for a long time now and it does work. Even so, in many instances a company simply can't do either of these things without putting a lot of thought, money, and effort into the process.

One Programmer's Opinion
Monday, March 15, 2004

Maximum Overdrive, you should be in offshoring.

To say that it's easier to supervise developers if they're in the office because then the manager can "see if they are working or slacking off" reveals:

a. failure to understand the work that software developers do, and

b. poor management skills

Casual visual inspection of a software work area says nothing at all about whether developers are working, or how well. They guy staring into space for two hours might be saving $2 million in quality costs. The dope on the keyboard from 9 to 5 is probably writing garbage code.

Software managers know how to assess development effort.

Must be a Manager
Monday, March 15, 2004

"Casual visual inspection of a software work area says nothing at all about whether developers are working, or how well. They guy staring into space for two hours might be saving $2 million in quality costs. The dope on the keyboard from 9 to 5 is probably writing garbage code."

Exactly. I mean, I generally come in at least fifteen minutes late, ah, I use the side door--that way Lumberg can't see me, heh--after that I sorta space out for an hour.

I just stare at my desk, but it looks like I'm working. I do that for probably another hour after lunch too. I'd say in a given week I probably only do about fifteen minutes of real, actual, work.

Peter Gibbons
Monday, March 15, 2004

Have you thought of trying out for management?

Must be a Manager
Monday, March 15, 2004

Of course it's about costs. If it was about quality, you'd see a lot more US companies outsourcing to the UK or Australia or other English speaking countries where the cost of labour is in the same ballpark as the US.

However, it's all about going to places like China and India, where the costs are lower.

If it was really about quality, you'd take your developers from wherever you could get them, not just the cheapest countries!

Sum Dum Gai
Monday, March 15, 2004

> When you had breakfast today, did you slaughter the pig, and pick your own eggs from you chicken coop??

Yes to both.

Farmer Ted
Monday, March 15, 2004

Tayssir, with all due sincerity, what's your background? Because I have never even heard a whisper of "gee, we just don't have a decent mix of programming talent around here"

It's about cost. Period. You can wish all you want, but it's about cost. Look at this board alone - we have VB programmers, C# programmers, DBA's for Oracle, SQL Server, MySQL, PostgreSQL, Lisp programmers, people who know Smalltalk, Perl... I could go on and on. There is a wealth of talent in this nation, especially after the dotcom fallout.

It's about money.

Regarding working from home vs. outsourcing, I'm not talking about having them ONLY work from home - I'm talking about the situation where the choices are:
a) Dev gets up, gets dressed, drives to work (in traffic), sits in office for eight hours writing code, drives home, watches Elimidate, goes to bed.
b) Dev gets up, shuffles over to workstation, starts working, works for nine hours, goes out to the movies, comes home, goes to bed.

(b) is so much more productive it will boggle your mind. You've made the workday 2-3 hours longer. The problem is, of course, the standard management inability to get past "if I can't see you, you're not working" (unless you're offshore and I can say you're saving me money)

Philo

Philo
Tuesday, March 16, 2004

"There is a wealth of talent in this nation"

This nation? Geez, I don't think everyone on this message board is from a single nation! ;)

Sum Dum Gai
Tuesday, March 16, 2004

Philo has written:

> a) Dev gets up, gets dressed, drives
> to work (in traffic), sits in office for
> eight hours writing code, drives home,
> watches Elimidate, goes to bed.

> b) Dev gets up, shuffles over to
> workstation, starts working, works for
> nine hours, goes out to the movies,
> comes home, goes to bed.

This sounds very good and is very cool in theory.

In reality, many people simply stop working or work a lot slower if they are not supervised.

This is why the manager needs to either supervise the developers himself, or have another manager (the manager at the outsourcing firm) supervise people.


> The problem is, of course, the
> standard management inability
> to get past "if I can't see you,
> you're not working"

Managers need to have a way of making sure that people work.

One of the most effective ways to accomplish that is to walk behind their offices and look over their shoulders three times a day, at unexpected times.

Yes, I know: you can have a manager look over your shoulder 3 times a day, and still fool the manager and not do any work.

However, it is simply more likely that the average developer will do more work if the manager is behind their back, than it is if the manager is 50 miles away.


> (unless you're offshore and I can say
> you're saving me money)

Managers also like offshore work because the offshore developers are in an office and supervisted by the offshore firm's manager.

There is a big difference between:

- manager has to manage 20 guys working from their homes, and has to call each other separately, and check their work

- manager just has to maintan the relationship with the offshore company's manager, and that manager has to manage the 20 guys doing the work

Maximum Overdrive
Tuesday, March 16, 2004

> Casual visual inspection of a
> software work area says nothing
> at all about whether developers
> are working, or how well.

This is partially true.

But the inspection is also important from a psychologic point of view.

If the manager comes into the office 3 times a day, at unexpected times, then the developers will know they are being watched, and most developers will try to work and not slack of.

Also, the office usually provides a distraction-less environment - no TV to watch, no refrigerator to go to, etc.

So most employees will think "Hey, if I'm here, and I have to stay here until 5 PM, and I can have no fun by watching TV or going to a bar, and I'm also being supervised, then why not do the work, also?".

Of course, exagerated supervision will have the opposite effect - people will get angry, etc.

But a moderate, normal amount of supervision will have a positive effect on the ammount of work done.


> guy staring into space for two
> hours might be saving $2 million
> in quality costs. The dope on the
> keyboard from 9 to 5 is probably
> writing garbage code.

The guy staring into space at least doesn't have the temptation of staring at a TV which would absorb his thoughts.

Maximum Overdrive
Tuesday, March 16, 2004

I'm trying to bow out of this discussion, and I wake up to see you're asking me these questions? :)

Look --
- I can't talk theory if idiot companies turn on their loyal people in the real world.
- while I like talking politics with people in person, be they left/right/traditional/hippie, something goes wrong on internet forums.
- If you wanna talk about this, click on my name.  Otherwise it's just wrasslin'.

Tayssir John Gabbour
Tuesday, March 16, 2004

Kindergarten children need supervision.

If the grown adults you're hiring to write your product can't be trusted to work independently, why did you hire them? If you can't trust the to actually work, can you trust the work that they do?

Come on, give people a bit of credit. Hire the right people, and they'll work for you. If they don't, replace them. It's not a difficult concept.

If the most sophisticated measure you have of checking whether people are working or not is to walk behind them, you have no business managing a software product. How are you going to assess progress towards deadlines if you can't tell what amount of work has been done?

Furthermore, the theory of "hard at it 8 hours a day" is a bit stupid. I'd much rather have someone who did brilliant work for 4 hours a day rather than sloppy work for 16. I don't care how long someone works for, or where they do it, so long as things get done on time, and of high quality. That's all that matters at the end of the day: because that's what makes money. Having people sit in an office and look productive doesn't. The dellusion that many managers seem to have is that the world works in reverse to the way it actually does: I can't help but wonder whether this is the reason so many software projects fail.

Sum Dum Gai
Tuesday, March 16, 2004

Farmer Ted...

Did you build the said chicken coop yourself. From brick that you made? The wire mesh too? The wire for the mesh?

And the knife you slaughtered the pig with? Did you mine the ore, refine it and make the knife yourself??

True, this is reductio as absurdium, but we do outsource most activities in our lives.

Why should it be any different now?

Tapiwa
Tuesday, March 16, 2004

Tayssir wrote, "..... most software development/maintenance work isn't a repeatable process in the same manner as the manufacturing of one or a handful of physical products [that]  ......  are commodities simply because these items can all be stamped out one after another. Cobblers, tailors, and blacksmiths all make physical products that someone figured out how to make cheaper and a lot faster."

I don't think that they had shoe sizes when they first started making shoes. You had to go off, and physically get measures, and a pair would then be made for you. At some point, someone figured that by making shoes in x number of different sizes, they could produce something that was good enough for most of the population.

"Advances in technology by itself commoditised the livelihoods of many craftsman. Maybe someday (i.e. code generators) the same fate will befall most programmers? Even so, it ain't going to happen this year or next year."

And in less than 100 years, man went from heavier than air powered flight is impossible to breaking the sound barrier.

Tapiwa
Tuesday, March 16, 2004

<apology>
Most unreserved apology to Tayssir for misattributing comments to him. They were in fact by  "One Programmer's Opinion".
</apology>

If any of the FogCreek folk can edit my post to reflect this, please do.

Tapiwa
Tuesday, March 16, 2004

Maximum Overdrive, to manage distributed developers, you most certainly do NOT need to phone them everyday.

If you have given them suitable tasks, they just do it. You see the results by reports or code updates or regular demos.

Similarly, with good quality developers working in-house, the presence of the manager is irrelevant as to whether the work gets done.

I suspect you have worked in pretty poor environments.

Must be a Manager
Tuesday, March 16, 2004

Tapiwa, you are conflating outsourcing with specialisation. They are different things.

Outsourcing as we're discussing it here is an activity of large corporations, and it's not being done to provide some capability that would be inordinately difficult or expensive to acquire otherwise.

Must be a Manager
Tuesday, March 16, 2004

> Outsourcing as we're discussing it here is an activity of large corporations, and it's not being done to provide some capability that would be inordinately difficult or expensive to acquire otherwise.

Also of small corporations: for example we're writing the software here, but outsourcing the electronics design and the field trials to Eastern Europe.

Christopher Wells
Tuesday, March 16, 2004

Must be a manager. Sounds like you are in middle management.

I can grow my own cabbages, but I don't. I choose to buy them from someone else. I choose to buy them from someone else. Call it what you will, specialisation, unwillingness to muclk around in mud, or whatever, but I have outsourced the production of the cabbage that I eat to Farmer Ted.

If you have a person who is the best doctor and the best cleaner in a town. What should they do? As a doctor, they earn £100ph. As a cleaner only £10. It certainly pays to have them work fulltime as a doctor, and let someone else do the cleaning.

10 hrs doctoring = £1000. pay someone for 5 hours cleaning = £100. Net = £900
5hrs doctoring = £500. 5hrs cleaning = £100. Total £600

The cleaning might not be as good as it would be if they did it, but they are better off.

Tapiwa
Tuesday, March 16, 2004

Maximum Overdrive forgot a scenario:

D. You have 20 developers working from home, and they come to the office 1-2 times a week to meet with each other and/or the clients.

Offshore developers can't do the "meet with the clients" part. ("Clients" may include other employees of the same company, if they are the ones paying for and/or going to be using the system).

NoName
Tuesday, March 16, 2004

Max Drive and teh others who think developers need to be closely supervised at all times either have absolutely no experience with develpment whatsoever or they have only worked in low end headshops filled with unskilled morons who should not be developing.

If you need to be continually looking over the shoulders to get your developers, beating that drum vigorously to get those oars moving a bit faster, then you are workirng in a shithole that has no chance of being competitive.

Dennis Atkins
Tuesday, March 16, 2004

"If you have a person who is the best doctor and the best cleaner in a town. What should they do?"

Your scenario only works because being a doctor is more highly paid than being a cleaner. This is despite the fact that cleaners are a more important factor in our current long life expectancies than doctors.

In other words, if you assume the system is fair, you can prove lots of other things are fair. But life aint fair. ;)

Sum Dum Gai
Wednesday, March 17, 2004

Sum Dum Gai, you could substitute the two, and have the cleaning job pay more.

Essentially what most companies are saying is that they would rather devote mgmt time to areas where they think they can add the most value, while outsourcing the rest.

The outsourcing companies might not be the best, but at the prices, it is good value for money.

Tapiwa
Wednesday, March 17, 2004

*  Recent Topics

*  Fog Creek Home