I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

August 10, 2004

Be Good at Your Job

One conclusion is clear, anyone who thinks that onshore developers will triumph because they are more skilled is very wrong. We've found that we can hire just as talented developers in India as we can in North America and Europe. -- Martin Fowler

I'm actually so excited [about offshoring] that I've already put my current job in a box, taken it to the post office, and shipped it to Southeast Asia myself! Good riddance, stupid high-paying tech job! -- Rory Blyth

The company where I work-- a rather large pharmaceutical company-- is aggressively pursuing offshoring. The two largest projects in our department, the projects we worked on exclusvely for the last three years, are actively going through "knowledge transfer" with Satyam right now.

At first, I was incredulous. These are not your typical "this code is so boring, I'd pay Indians myself to write it" offshored applications. These are .NET Smart Client applications we just finished rewriting (from ASP.NET and classic ASP/COM, respectively). We were still working out kinks in the architecture not even 4 months ago.

Then I was just plain angry. What we were offshoring didn't make sense. It wasn't rote, by the numbers code; I couldn't even remember a time we had actually been in "maintenance" on these applications. They were in a constant state of active development and rearchitecture, at least as long as I had worked there. And that got me thinking:

(number of developers and managers) X (avg monthly employee rate) x (36 months) / (number of users)
That is one scary number. Adding insult to injury, at large companies it's nearly impossible to tell how much difference your software makes-- do people even use it? Did it help our bottom line? Who knows! We sell drugs, not software. And although I'm still very proud of the code we've written (ask me about anything Smart Client), at the macro level-- our software doesn't make any financial sense.

So I began to let go. Though I may not be directly responsible, we're all participants, willing or not, in the same disturbing offshoring trend. This is something I find very troubling. I love computers; I love writing code. I hate to think of my livelihood reduced to something so disposable that it can be done for a fraction of the cost by cut-rate vendors halfway across the world. How am I supposed to feel about that?

And yet, that is exactly what is happening. I tell myself it's another fad, but there's a persistent, nagging doubt that I just can't shake. It's more than a little ironic that one of the first books I read when starting my career as a professional programmer in 1993 was Ed Yourdon's Decline And Fall of the American Programmer. At the time, I couldn't believe the crap Yourdon was writing. I was so disgusted with this book's preposterous prediction..

According to Edward Yourdon, software development may soon move out of the U.S. into software factories in a dozen countries unless U.S. software organizations exploit the key software technologies examined in this new publication.
.. that I actually threw it away, something I rarely do. Yourdon was just ten years ahead of his time. All it takes is ten years of the Internet to bring the Indians to us. And why even get mad at the Indians? They were just lucky enough to be populous and know English, courtesy of a hundred years of British rule. In time it'll be the Vietnamese, or the Eastern Europeans, and the list goes on. You might as well get angry at the Internet, or the sky, or I don't know, Jesus Himself. What's the point? It's absolutely inevitable that given a sophisticated enough worldwide communications infrastructure, we will begin competing with a people all of the world for the same jobs. And while I'm at it, what is so special about programmers? We're not special (well, except for the way a guy with a high school diploma can magically make $80k/year, but I digress). Any job that can potentially be done without physically touching something is at risk. And isn't that the very definition of "knowledge worker"? Whether you are an accountant, an engineer, or a programmer, you're still working in the realm of pure knowledge, manipulating bits in a ledger, in a CAD drawing, in a compiler. You Are At Risk.

So what can I do? What can any of us do? I've done a lot of soul searching, and the answer is very close to home: Be Good At Your Job. We all need to get off our asses, and start taking our skills to the next level. It's OK to make twice as much as an Indian programmer if you're twice as productive. The downside is, the gravy train is over: this is extra work. And no, I don't mean that "maybe if I work 'til 3am every day and drink a six-pack of Red Bull" macho BS kind of work. The best treatment I've found is the Pragmatic Programmer presentation, How To Keep Your Job, where they equate your professional development with your investment portfolio, and apply the same proven rules: diversify, have a plan, be active, look for value, etcetera. Fantastic advice that I will be taking to heart-- and so should you. We dug this hole for ourselves through complacency; now it's time to start digging ourselves out by treating our jobs like an actual engineering profession instead of a license to print money.

One upside of working at a large company, even if they are offshoring the hell out of our livelihood: I was able to convince our group to get Andy Hunt himself to give the How To Keep Your Job talk to our group. Good stuff.

Related Links:

Posted by Jeff Atwood    View blog reactions
« McConnell IEEE articles
Worse Is Better »
Comments

http://neilhetzel.com/blog/archive/2004/04/29/556.aspx

I struggle with processes like this at work. Thankfully, they are nowhere near as severe, but the end result is the same: you almost have to break out the Cool Hand Luke civil disobedience on them-- it's for their own good. They are literally choking the productivity of their own organization, and all the while beating the drum of "process".

Jeff Atwood on August 11, 2004 12:33 AM

Wow, I should bookmark that link and go look at it every time I feel down because I'm a one-woman coding shop with very little support from the rest of the company. At least I can build my own tables!

Norma on August 17, 2004 2:44 PM

This post is very optimistic, yet significantly off the mark.

I moved from the U.S. to the 3rd world country -- not India, but a nicer one somewhat near. My living costs are about a half of what they were in the U.S., and I'm very happy to work for 50% to 70% of the U.S. salary (FAR better lifestyle AND more money saved in the end).

Self-improvement is no way to compete with someone who starts at a far lower cost basis. There are top guys in India that are as willing to tune their skills as you are, but their breakfast still costs $1, vs. yours for $5.

crocodile on January 6, 2008 8:45 PM

Jeff, I still believe that many of the companies in US that are offshoring work to India are aware about the quality and sensity of the work invovled. These is based on the fact that, many of these companies never reveal the source code of core areas of their applications. Quality is compromised due to short deadlines and many times projects are never successful.

There is a big dearth of quality programmers in India. The kind of quality you guys pocess are unmatchable and due to this you always have an extra edge over the area of your work. Your job is safe! :)

-an Indian

Pradeep on May 4, 2008 9:29 PM

Hello from central Europe.

Microsoft, Oracle, IBM, Novel, Adobe, Apple etc was taking programming jobs out of our countries for last 10-20 years, so let us have our revenge :)

BTW: maybe it didn't occur to you, but USA isn't the only source of programming knowledge on the whole world.

So beware - we are coming :)

odrzut on July 6, 2008 11:21 PM

I find it interesting that it's ok to offshore skills, but when it comes to buying products, corporations are not happy for consumers to get the best price.

It seems to me that the average person loses out to the best jobs and the best prices, while the corporation is able to get the lowest cost developers, and sell their products at the best price.

Dave Arkell on August 6, 2008 2:05 AM

I think there is a scoping problem here. I agree wholeheartedly that we should be the best we can, and continue to improve. Whether or not work gets outsourced, that has very little to do with my personal activity. I read that during the Great Depression of the 1930's, those losing their jobs felt personal responsibility, even though the economic climate was such that no actions on their part could have kept the job. I see a similar situation here.

This is a deep and rich vein - "how can we compete if our 11-year-olds won't make shoes for 15 cents/hour"..."safe workplaces cost money. That gives the third world a leg up"..."pollution controls give us a competitive disadvantage with regard to China"...etc, etc.

We should strive for excellence because that is the nature of the world. In the same sense, even if there were no offshoring, we still could not afford to do poor quality work, or be complacent with obsolescing technical skills. I wish India well, likewise Central Europe. Good business practices are good business practices. If you want to offshore, be prepared to be locked to foreign sources, even if a plunging dollar makes them more expensive. These are not simple or easy decisions, and those who make them lightly may suffer the consequences.

We should argue for good working conditions and environmentally safe practices worldwide because it is the right thing. The fact that a level playing field is convenient for my career and income is a side effect, not a root cause.

At least that's what I think. (East coast, USA)

cvsdave on August 6, 2008 12:43 PM

All time applied
http://winguard.blogspot.com - Winguard
http://dexzone.blogspot.com _ Dexzone wallpapers

winguard on March 2, 2009 6:39 AM






(no HTML)


Verification (needed to reduce spam):


Content (c) 2009 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.