In My Job Went to India, I talked about using supply and demand as a gauge with which to make decisions about which technologies you should invest in as a software developer:
The offshore market has injected its low-cost programmers into a relatively narrow set of technologies. Java and .NET programmers are a dime a dozen in India. India has a lot of Oracle DBAs as well. Less mainstream technologies are very much underrepresented by the offshore development shops. When choosing a technology set to focus your career on, you should understand the effects of increased supply and lower prices on your career prospects.
As a .NET programmer, you may find yourself competing with tens of thousands of more people in the job market than you would if you were, for example, a Python programmer. This would result in the average cost of a .NET programmer decreasing significantly, possibly driving demand higher (i.e., creating more .NET jobs). So, you’d be likely to find jobs available, but the jobs wouldn’t pay all that well. The supply of Python programmers might be much smaller than that of .NET programmers with a demand to match.
If the Python job market were to support noticeably higher prices per-programmer, additional people might be attracted to supply their services at this higher price range, resulting in competition that would drive the price back down.
The whole thing is a balancing act. But, one thing seems certain (for now). India caters to the already balanced IT services markets. You don’t find mainstream Indian offshoring companies jumping on unconventional technologies. They aren’t first-movers. They generally don’t take chances. They wait for technology services markets to balance, and they disrupt those markets with significantly lower per-programmer costs.
Yesterday, one of the Rails Core guys passed along an interesting link to and article called Who’s Searching for XML? by XML noteworthy, David Megginson.
David used Google Trends to compare and contrast where searches for certain technologies were coming from geographically. Have a look at a few:
Now look at these:
As David says, it’s totally unscientific. But if I were a young programmer trying to figure out where to invest my time, I might spend just a little of it on Google Trends researching who I’m likely to be competing with.
Sorry, comments are closed for this article.
January 10th, 2007 at 05:53 PM
More telling, perhaps, is when you do comparisons, like J2EE, Django, & Ruby on Rails. It’s harder to look at some of the other comparisons because “Java” and “Ruby” give decidedly non-computer-oriented results.
January 10th, 2007 at 08:40 PM
This is a bit of idiotic way to look at things.
Better not do design because india is top of that trend also Usability is out the door as well, they are the top of that too Robust is up there also Quality also
A programmers worth != language the programmer knows
There are so many factors, technology (xml, graphics, network), specialization (web, desktop, AI, image processing, embedded, mobile), Industry, Languages, Frameworks, Methodology, Techniques, Standarads, etc etc.
The best advice I think is to be Multi Paradigm, Multi Language, Technology curious, Community involved, actually write code, and get good in a domain that interests you.
not that ruby, rails, smalltalk, lisp, etc arn’t good advice, its just that using google trends as justification on what to get good at dosn’t seem too smart to me.
January 10th, 2007 at 09:26 PM
Keith, I’d agree that it was idiotic if I had said what you are implying I said.
I’m talking specifically about technologies as a part of a developer’s portfolio. If you read the book, you’ll see that one of the major points is that just technology is far from being enough to bank a career on. Nobody said programmer worth was equal to the language a programmer knows.
Your paragraphs about factors and advice are very much in line with my beliefs.
What I’m saying isn’t that bad programmers know Java and good ones know Ruby. What I’m saying is that Java and XML are commoditized skills. I would say it without Google Trends, but the Google Trends results are interesting.
January 11th, 2007 at 09:17 PM
I thought the regions for Java Server Faces was interesting.
January 16th, 2007 at 12:33 AM
What I?m saying is that Java and XML are commoditized skills
That’s like saying “painting is a commoditized skill.” What do you mean by that? Painting a room with a roller is commoditized, but painting a portrait isn’t. Likewise what do you mean by an “XML skill”? Is it knowing that XML is full of angle brackets?
Perhaps it is better to say that “being an okay programmer is becoming a commodity” as you can still make big bucks in programming in java, perl, or whatever as long as you’re the most efficient at it.
In the end I think this is good for the marketplace as it places more emphasis on the usefulness of the programmer as a “thinker” (for lack of a better term) than someone who is an extension of the language compiler, and whose job wouldn’t exist if there was a robot around that could do it.
January 18th, 2007 at 12:10 AM
Chad,
What does it matter if right now Ruby/Rails, or any other technology isn’t as popular in India as the US or other high cost locales?
How long will it take offshore shops to adopt new technology when the demand is sufficient?
I think the root problem – that many programmers who love what they do are in denial about, IMHO is that if you live in the US you can’t compete with people who earn a fraction of your salary to do the same job you do. Sure you can re-arrange the deck chairs a bit by trying to ride the crests of new technologies but at the end of the day the ship is still sinking.
January 18th, 2007 at 05:02 PM
Tom, it’s not a matter of popularity. It’s a matter of market balance. We’re not talking about change that happens overnight, nor are we talking about change that is at all inevitable. The answer to how long it will take for offshore shops to adopt a new technology when demand is sufficient is two-fold:
In light of all this, your last paragraph (minus the last sentence) pretty much exactly makes my point: you can’t compete on price, so watching the market and positioning yourself in a position to compete in some other way is a wiser choice.
January 18th, 2007 at 07:01 PM
Chad,
Thanks for the thoughtful reply. Very interesting. I didn’t realize the average Indian developer doesn’t have his own computer. Having to ramp up on company time, with company approval, is definately a barrier I didn’t realize existed.
January 22nd, 2007 at 02:56 AM
Python has some nice results as well.
January 22nd, 2007 at 04:43 PM
I certain that what you are seeing is more a reflection of corporate adoption than the relative safety of one technology versus another. The better correlation might be the relative size of projects implemented in one technology versus another. It is more likely that a J2EE project will have tens (or hundreds) of programmers versus a Ruby or OCaml project. That Ruby project is usually a core handful (or even one or two programmers).
The real story behind offshoring isn’t cost of programming as much as it is cost of scaling a development effort. I think that businesses tend to prefer to maintain some level of core competency that is in the same timezone. What we might be seeing with technologies like Rails is that US companies are finding that the team size is smaller, the budget is smaller, and the inefficiencies introduced by offshoring are not justifiable.
We also haven’t seen corporate adoption of Ruby. Take rails as an example, despite the buzz, I still haven’t seen corporations adopt it as a core technology. Hopefully this changes over time.
Although, I could be wrong. I appreciate the post it certainly is food for thought.
January 23rd, 2007 at 07:44 PM
Fascinating article.
India does seem to be on the top of quite a few semi-relevant words though.
These are my favorite searches.
abap – looks like Germany still has this one on lockdown documentum call center textmate