Fog Creek Software
Discussion Board




Offshoring of "mind-numbing code-writing"

I don't have any major beefs with the general point of this article - http://www.economist.com/agenda/displayStory.cfm?story_id=2454530 .  Basically the author says that the free market economy will win out in the end.  Lower cost of goods and all that.  I have no problem with that - hell, I don't have near enough economic knowledge to argue.

But, there is one quote in there that really chapped my butt - "the bulk of these exports will not be the high-flying jobs of IT consultants, but the mind-numbing functions of code-writing."  What?

Mind-numbing code-writing?  Does this guy have any idea what he's talking about?  Since when is writing code easy or worse, mind-numbing?  And on top of that, "high-flying" IT consultants?  Maybe I'm thinking of the wrong people, but "IT consultants" sounds to me like the big consulting firms, Arthur Anderson, et al, who hire recent grads from any degree program, put them in a 6 week training course and then send them out to clients as programmers.  Those are the good jobs and the others are mind-numbing?  Wow.  Talk about your uninformed author.

Or maybe I just misunderstood his terms.

David
Thursday, February 19, 2004

Code writing is usually mind-numbing. I'd agree with that.

How may times do you write unique code that you've never written before in a slightly different way; all you're doing is repeating what you've done before with a twist to it. That's mind numbing. Ever written a COBOL program from a proper specification? That's pretty mind-numbing too.

Software architecture is design and generally is the interesting bit. Implementing yet-another-bloody-context menu and all the crap associated with it is boring. Period.

Designing an exception handling strategy for an application is interesting. Putting the snippets of code in a zillion places isn't.

Designing database schema is interesting. Coding all the SQL is boring.

Designing the flow of an application is interesting. Coding the flow and the validation of information (if x < 1 or x > 100 then error unless y is set and z contains spaces) is thoroughly utterly and completely boring.

Once I've designed a system the actual implementation bores the crap out of me.

Gwyn
Thursday, February 19, 2004

Well, maybe there are places where people code without thinking, but I've never done it.

To me, mind-numbing means stuff like data entry, proofreading, cashiering, etc.

David
Thursday, February 19, 2004

Managements and business people like to divide personnel into "Morlocks" and "Eloi".

The Morlocks of society do dirty, tedious, mindless work; are crude and uneducated, but cunning in an animalistic way; and have and deserve little dignity. The Eloi think great thoughts, do not soil their fingers with mere execution of labor, and feel that their job is to rule the Morlocks.  (all other "Time Machine" parallels of cannibalism, divergent evolutionary paths, etc will be sustained... ;-) )

There is a mindset in business (maybe even in the popular culture) that someone who works hard and who applies specific technical information is professionally lower than someone else who is a generalist and is removed from implementation details.

I think this faux-elitism has crept up on us in the last 40 years. Horatio Alger type stories are passe'. You're either great, have it all, and pay no dues, or you're one of the underclasses who scavenge and scrape by. Maybe the rap entertainer/pro sports cultures feed this.

The point is, the Economist author is playing up to the egos of the readers. "After all, 'you' aren't so stupid as to do HARD work that is tedious and mind numbing, are you..." And I think the ego attraction factor (that the outsourced work and workers are unworthy somehow) is one reason why the rhetoric has taken so long to hit the streets.

Thomas Edison (who would probably be outsourced today: "Genius is 1% inspiration, 99% perspiration."

Bored Bystander
Thursday, February 19, 2004

"'IT consultants' sounds to me like the big consulting firms, Arthur Anderson, et al, who hire recent grads from any degree program, put them in a 6 week training course and then send them out to clients as programmers."

Sounds good to me.

B.A. Political Science (Really)
Thursday, February 19, 2004

The Economist is correct. Oracle, Siemens, even Microsoft are in the process of outsourcing all of their core development to black box offshore companies to do that awful grudge work using low cost proggers, techies and codiehoos. This wisely frees up the economic potential inherent in their former coders to repurpose themselves in high level conceptual jobs such as strategerizing and methodology innovation. Success in the global economy is then assured.

Outsourcing Giant
Thursday, February 19, 2004

The thing that scares me is companies like Microsoft.  They used to have (I don't know anymore) a policy where employees could not work from home (this was during the .com era) as they felt that better products were developed when employees had to come into the office and had the ability to bounce ideas off of one another and collaborate with each other.

Even if you assume that the same communication would be possible through remote means such as teleconferencing, netmeetings, etc., a small problem of time zones exists that still prevents this from working when your developers are on the other side of the world.  Seeing someone (MS in this case) that used to have such strong beliefs perform an about face scares me.  Either a) they were wrong, and developers communicating with each other has no net benefit for the product, or b) there are alterior motives that fly in the face of a better product. 

This leads me to believe that cost is more important than quality in their eyes.  I personally perfer quality over cost.  If what came out of Redmond before was "quality" I wonder what the future of outsourcing will bring to the table.

Elephant
Thursday, February 19, 2004

I think the only way to survive is to move into a situation where quality really matters.  It looks like most fortune 500 companies have gotten away with low quality work...

christopher baus (www.baus.net)
Thursday, February 19, 2004

So maybe the safest/safer jobs opportunities are with small- to mid-size companies?

anon
Thursday, February 19, 2004

Microsoft isn't a big offshorer (and isn't really an outsourcer...unless you consider their outsourcing that they occasionally buy up other companies after a product was created), however like they do in most countries, they do have offices and development in India. Oracle, to a much larger degree, also has Oracle offices and employees in India.

Given that these aren't really `remote' workers like someone in a dev group at Microsoft with someone working from home -- they probably have their own management hierarchy, and self contained development groups, and are probably assigned whole or wholly independent development tasks. This sort of offshoring is logical and makes sense -- if there are people there (which there are) that are intelligent, training and educated, and innovative, then of course they should be leveraged. As the Indian economy grows (which it is) these companies will probably be better equipped to take advantage of it.

The kind of offshoring that's virtually guaranteed to be a disaster is the same sorts of disasters from outsourcing, just magnified -- insurance companies, banks, big manufacturing firms, etc, that think that they can write a wish list of software needs, throw it over the fence (or around the world) and they'll get successful solutions as a result. This sort of activity has been a stunning failure (and this isn't baseless xenophobia -- it's often a disaster when done with "native" companies like SAP or Anderson Consulting, etc -- almost all projects go grossly overbudget/time).

Dennis Forbes
Thursday, February 19, 2004

Back to the issue of those who DO the work seen as lessers while those who do the planning are seen as superior - I read some good stuff about that in the book The New New Thing.  He talked about how that came about, where the engineering profession grew out of the trades and always kept that blue collar association, even though engineers were usually superior intellects.  As most of you have seen, it's a bias still seen very clearly in salaries, where sales and marketing types make much more money selling software than the programmers/engineers who make it.

Even though I know this bias exists, it still pisses me off to see it supported in articles like this.  "IT Consultants," who often couldn't cary the jock of regular programmers, are held up as some sort of elite who couldn't possibly be outsourced, while regular code-jockeys, those lowlifes who got 750 or higher on their Math SATs, are seen as completely expendable.

Ah hell, maybe I'm just grumpy.

David
Thursday, February 19, 2004

Gwyn, you miss the point. The Economist author is not saying that the boring parts of your job will be offshored, he's saying that you are part of a low-skill profession and YOU will be offshored.

The reason for the widespread misconception that programming is tedious "low level" work is that most of the people who write such stories and reports are not programmers. To them, what they do is high level. Stuff they can't understand is low level.

Unfortunately there aren't many programmers who correct them on this.


Thursday, February 19, 2004

  Coding is boring ?  Sorry, I don't think so.  Well, maybe you could get upset when doing something for the 100th time, but hey, why not try to automate that mundade task ?

Ricardo Antunes da Costa
Thursday, February 19, 2004

I just went to throw my idea in the well here.

While this area might not have been the focus of the article, more like not thought about at all, it does depend on the size of a company.

Very often in a smaller company the best person, the person who knows the area best, maybe they never did it in the company, but lets say they're one of those people who are sys admins/consultants/network engineer/programmer all in one.

Design system:
It has to do $x and $y. We need this yesterday.

Codes:
I'm doing this right, I designed it, no hacks here chief, but I need to pull some late nights this week.

Tests:
To be fair once the docs are done, other people do this.

Next week:
At the clients site with a suit on, after catching up on sleep and puts his BOFH tshirts away.

OK, usually it's not quite so fast, and sometimes you skip sections, but this is why I like working at a small place, you feel good when it's in, until you get a call about how to fix some server back at HQ while getting on the plane.

fw
Thursday, February 19, 2004

Am I the only one here whose ever had to write code that extracts 500 named attributes out of some data-structure, check the content for plausibility (10 character long, left padded with EBCDIC spaces) and pack them into another data-structure where the names of the attributes are ever-so-slighlty different (logid->log_id) and the values need to undergo some completly arbitray transformation that isn't documented anywhere (Fri Feb 20 11:55:42 CET 2004 -> 04-20-02-11.55.42.000000)?

Of course that's ming-numbing. A lot of programming is completely idiotic busy work.

-tim

a2800276
Friday, February 20, 2004

I had an assignment at a mostly mainframe shop early in my career where I was handed my assignment completely designed by a systems analyst.  He had defined all the functions that needed to be written, they're inputs, outputs and logic.  All I had to do was convert it to FORTRAN (early-1980s) and make it compile.  He even had the test cases for it.  Additionally, the work was on an ancient General Automation mini-computer off in a back room all by itself and it also added the aspect of social isolation. *That* was mind-numbing.  The supervisor came in every hour or so to see how I was doing.

I hated that job and when they cancelled the project and sent us contracter programmers home (the rest of them were working on an RSX-11M system as a group - I was soooo jealous), I couldn't have been happier.

When I read "mind numbing," that's the kind of experience I think of, although the back room is probably now a cube farm with at least a little social interaction.

Bathmophobic skier
Friday, February 20, 2004

The idea of the prestige gap is more than 40 years old and is based on an aristocratic view of education. This remains the paradigm in Britain, which has never had a revolution.

The idea being that the less practical value your education had, the cleverer you were. Broadly speaking (and leaving aside the question of the practical value of an arts-based education) a classicist would be considered more of an egghead than a chemist. Chemistry smacks of practical value, which smacks of real work, which smacks of not having an independent income, which smacks of being just plain "Mr" or "Ms". The shame!

The reverse is true in France, where people with a scientific education are considered much cleverer than liberal arts types. The idea being that you spend your day in the lab and then come home and read Villon in your spare time. Since everyone naturally has a taste for these things as a general part of life, the thinking goes, what's gone wrong when someone needs to devote themselves full-time to the study of them?

I often genuinely wonder whether my mistake, in pursuing a livelihood, was to focus on building up my hard skills.

Fernanda Stickpot
Friday, February 20, 2004

a2800276 makes an interesting post. Such a conversion function could be put together in an hour or two using lex and yacc for anyone well versed in teh art of compiler writing. And doing so would be far from mind numbing. Instead the usual response is to spend several days working on the task by doing brute force coding and by bored by it all, while posting on jos about how wankers with college degrees ain't all taht. Of course the wankers with college degrees all know how to write compilers, which is what you do most times you are presented with a boring conversion task.

i think a CS degree is UNDER rated. So much time and effort is spent by western programmers nowadays resolving the simplest problems taht were solved decades ago and there are now automated tools for dealing with it.

In India, 100% of their programmers have degrees. They don't waste time doing mind numbing coding. They use proven techniques to generate results, proven technijues that are known to all CS graduates.

The best thing western companies could do to improve the quality of their code, incraese the speed at which it is developed, reduce the bugs in the code, and improve its maintainability is to fire all their programmers who do not have degrees and/or who did not graduate with at least a 3.5GPA. Then at least the firms would be able to compete with the overseas programmers who are at least this minimally competant.

Dennis Atkins
Saturday, February 21, 2004

Errr, as a matter of practicality outsourced/offshored code is "mind numbing" code -- I guarantee you that that vast majority of code that is offshored to India is rote, eye glazing business code (the kind that a CS is almost a waste for -- literally this stuff could be farmed out to temps). This implication that the amazing talent in India is doing brilliantly unique code is ridiculous.

And what in the world does having a degree have to do with anything? I know non-degreed coders who could code circles around most coders because they have an excellent knowledge of Perl, Python, and other languages, and I know proud degree holders who do have a "enough to be dangerous" knowledge of how to write a compiler, but who's primary skill is "OO in Java".

Bah, you're an idiot.

.
Saturday, February 21, 2004

Dennis, as a matter of interest, do you believe than any degree qualifies someone as a programmer, or must it be a CS degree?

If we implemented your suggestion, we would be sacking the top 70 percent of our workforce. Sorry pal. You have to do better than this.

Also, Indian staff have poor cultural and communication skills. We haven't traditionally valued this for software development, but it's becoming increasingly obvious how important it is.


Saturday, February 21, 2004

>do you believe than any degree qualifies someone as a programmer

No.

> or must it be a CS degree?

No, it doesn't have to be a CS degree.

My flame is regarding the particular case of mind numbing code to translate something into something else instead of doing the right thing, which is to write a compiler to do it if the amount to be translated is more than a tiny bit. You don't have to be a CS student to take a compilers course, its required or optional for lots of other degrees as well. Can find EE, Cog Sci, and Maths students as well in there.

Dudes with ITT/DeVry degrees and no degrees don't consider compiler writing to be a everyday basic thing they do. Thus, they attack problems with brute force methods which are inefficient, error prone and take too much time to repeat.

Regardless of other thoughts about Indians, they do cover compiler design and implementation in their univ. They are very practical. What you want in a programmer is someone who is lazy. Very lazy. So lazy they would never attack a problem with brute force, but save time by using a time-honored method rather than indulge in the 'innovation' of brute force methods. save the innovation for where it gets you some levrage is what I advocate instead.

> If we implemented your suggestion, we would be sacking the top 70 percent of our workforce.

Well we've already done that in development but it hasn't done much good because they've sacked the wrong people. But yeah, at least 70% of the people working in development don't belong there.

Dennis Atkins
Saturday, February 21, 2004

dennis, I usually enjoy your postings but this time you are beyond incorrect.

The whole point of the indian subcontinent is that population density makes compilers unnecessary. You don't need any clever lex and yacc assistance when you have 1000 indian typists banging away for the same price as one compiler expert.

Regarding college CS education, you can get up through a master's in EECS at the exalted MIT without ever taking a compiler course. In fact your notion that the only useful programmers are those with college degrees and GPAs above 3.5 is doubly incorrect because any compiler course worth its salt is bound to ruin the GPA of 80% of the students taking the course.

These days a strong GPA from a school like MIT signals that the student is very adept at tailoring her courseload to maximize GPA and look good to parents,peers and prospective employers. This is a trait that will take one very far in the corporate world but I'm afraid doesn't improve programming ability one whit.

 
Sunday, February 22, 2004

*  Recent Topics

*  Fog Creek Home