Cheap Overseas Programming Revisited: Takeaways from a Lively Community Discussion

My earlier essay about cheap overseas programming (with the observation that it’s not all it’s cracked up to be) ended up sparking long comment threads in places like Hacker News, Slashdot, and Reddit. Thanks everyone for weighing in on this one–this turned out to be a topic that touched a nerve with folks much more than I had imagined.

There are a number of themes that kept coming up in the threads, and from them I see a few ideas worth exploring.

A number of comments were to the tune of “What did they expect at $12/hour? This is not news.” I take it as a positive sign that disaster in cheap outsourcing of software is self-evident for some, yet based on the multitude of folks weighing in with similar stories of cleaning up outsourced messes, it’s clear not everyone has gotten the memo (most programmers I reckon have, hiring managers less so).

A number of comparisons were made comparing the attitude of the essay to the hubris of the US auto industry back in the 60s and 70s: the local talent giving themselves a pat on the back, celebrating their infallibility, while competitors abroad were gaining ground, the implication being that local talent would one day eat their words and regret their complacency.

I think this quite insightful, but it misses the alternate dynamic which I think is at play. Back when I was in grad school for computer science (2001-2003), the talk among our soon-to-be-graduating ranks was that the job market is tough, and usually close behind was that the US programmer was a dying breed, fast losing jobs to overseas markets. This we heard peddled without apology or qualification, it was just a sort of accepted reality as described by the “experts”.

So in regards to the 60s/70s auto industry comparison, I say the scenario more resembles this: the local talent has been told “you’re fucked, don’t even try”, and after a decade of experience we are now witnessing that it ain’t necessarily so.

This is not so much a tale of complacency so much as reclaiming a sense of relevance in industry.

As many commentators rightly pointed out, my limited experiences do not constitute any statistically valid conclusions. Quite true, but those experiences (and the many similar stories shared) are enough to counter the sweeping narrative of the impending death of the US programmer from years back. The death of the US based programmer was like the sensational story that breaks on page one in huge type face, only to eventually be followed up by a redaction tucked away on page 13 in a much smaller font.

(Tangentially, I suspect the talk of US programmers being unable to compete on a global market caused an untold number of students to veer away from computer science degrees, and by corollary a counter narrative might serve to veer students towards computer science. A useful re-balancing, I think.)

In the end I think the most well-reasoned comments came in the flavor that is well summarized by @dylanized‘s words:

I’ve got programmers and designers I work with in India, Pakistan, the Philippines. The guys I’ve found are badasses, very professional and teaching me stuff all the time. If and when I become successful, it will be due in large part to my overseas team.

I’ve also attempted to recruit horrible programmers and designers before. Sometimes they come from these non-western places, other times they come from America or even from my hometown.

There’s jokers everywhere. It’s up to us as technical project managers to screen them out and only hire good contractors and firms.

To me, that is really at the heart of it: it takes real talent to do this work efficiently and economically, good talent can be found anywhere (as can terrible talent), and that good talent should be sought after and prized above all else for businesses with projects that matter. Though it runs counter to hopes of scoring a real bargain at $12/hour, programmer types can probably all agree there is a lot of depth to the art of being a great on-demand programmer. The notion that it’s grunt work which can be given without care to the lowest bidder is a farce.

Long live the truly talented programmer: this conversation reveals perhaps above all else that they are in short supply the world over. To those who choose to continuously deepen their mastery over the craft, I say let us take to filling that need.

Regarding the criticism of your earlier point by citing the American auto industry, I think that seems reasonable at first blush, but doesn’t really hold up under closer scrutiny. With the auto industry in the 60’s and 70’s, collective bargaining allowed monolithic blocks of relatively unskilled laborers to enjoy a nice living wage and produce a superior product. However, over the course of time, competitors were able to undercut this model by supplying cheaper and less monolithic relatively unskilled laborer.

Software engineers/developers are relatively skilled laborers that do not bargain collectively. This makes such a turn of events much more difficult. There isn’t a forced standardization of skill for price – any given American developer can adjust the rate of his or her labor as the market demands without being barred by the fact that a bunch of other developers couldn’t pay their mortgage or children’s college tuition at the new rate. As such, a systematic undercutting and thus exodus would be more difficult to organize and sustain.

There’s also the consideration that software development, unlike auto manufacturing, is a combination service/product industry, rather than strictly a product-oriented industry. If auto construction and auto servicing (mechanics) were a package deal, it would have been a lot harder for Japan to gain as much ground in US auto-making as it did.

The point about hubris is one that makes sense in the abstract, but we developers aren’t a collectivist bunch. We all have the individual freedom to go where the market is good and we all have an imperative to produce good quality work to justify our wages.

My biggest caveat to your original post wasn’t mentioned here: I run into a lot of the problems you mentioned (cleaning up public-facing text, lack of ownership, “fixes” for problems they created dragging out the process) with contractors based right here, maybe a mile or two away. I’m a contractor also, but our company has a great reputation. When the client goes with the lowest bidder who says they can complete the task, I think they often run into the same issues you mentioned. Our company is competitive, but we don’t try to undercut on cost because it’s not fair to anyone involved. We propose a competitive and fair cost, and point out our history of ecstatic clients and award-winning results. We have even had clients give a contract to a (U.S.-based) competitor, only to come back to us as quickly as possible.

So, while I’ll admit that these issues are somewhat more prevalent in outsourced work, @dylanized nailed it. It’s about quality, wherever you find it. Don’t bias yourself and hurt yourself and others because of a trend or tendency; even if it was provable, it’s not absolute.

Funny when people try so hard to sound intelligent. The problem is the number of programmers overseas compared to the number of domestic programmers… but even more so the number of “talented” programmers domestic and overseas. I don’t have the statistics but there lies the problem. In the US there is an average of 2-3 children per household, in places LIKE India (I’ve read) there are 11-13 children per household… I have no idea if these numbers are correct but if this is true, statistically, we ARE fucked. But… (I love my But’s) as they say, English is one of THE hardest languages to learn… so as children we are forced to learn a more complex language, thus our brains are better able to learn and master more complex computer languages… in theory :P

@Bob: English is not hard. English is simple (really, really simple), in comparison to most of the languages spoken around the world. English is significantly simpler than spanish, french, german, italian, almost every eastern language. In fact, the only language I can think of that is simpler than english is esperanto.
Anyone can learn english, even when teenager or as an adult. Do you really think that anyone can learn chinese? Try italian verbs and let me know.

I am not a programmer by any means but after working as a designer and front-end developer for almost 8 years in this industry at agencies and the like it seems like most people (like many other service industries) are not very good, regardless of country. I find that most agencies I look into just chug along and just do what they’ve done for years (and it’s not very good).

This industry is in such flux and every day there are amazing new theories, technologies, articles and processes concerning anything from usability/UX, to workflows, to client relationships, to content strategy, to new technology etc. And at the end of the day it seems like 90% of freelancers and agencies either don’t know or don’t care and put out the same crap work as usual. I am included in this 90%, I worked at some really horrible agencies and can honestly say I wasn’t proud of any work I did there. It wasn’t fun.

Having said this I have worked with both India and Russia and the level of this work was even lower than I could have ever imagined. I didn’t hire them, It was forced upon me but I can say, if up to me, I would never work with that type of “overseas” developer again.

Great post John with also some great comments to go with it. I am a developer based on Brazil and my services are not cheap by overseas outsourcing standards (50 USD/h). Sadly the issue of super cheap outsourced labor and the illusion of cost-cutting that goes with it causes a lot of problems for professionals like me because we are constantly faced with comments like “I can get someone of your level for 20$” or “Sorry, we are looking for someone US-based or Canada-based”. I have plenty of work most of the time but I have to admit that it is extra hard to conquer the customer because of these misconceptions because, as the adage says, you get what you pay for. That’s not to say that there are great programmers working for 10-20$, it’s just that the risk is much higher when hiring someone under these conditions. I have been hired more than once to replace entire teams of these developers due to the problems you have cited.

One interesting and distasteful phenomenon that arises from this problem is the approach some customers take when scouting me or examining my job post answers: some people treat you as if they were doing a favor by even talking to you, are disrespectful and demeaning. Basically, instead of trying to lure in the best possible minds – it takes great professionals to create great products, no matter the idea behind them – they cash in the overabundance of cheap labor and tell you “those are my terms, accept them or there’s 10 guys behind you who would love this job, so you also need to thank me and put up with me and shut up”. I just answered an email like that declining such an offer which went along these lines – “I liked your profile but I usually pay programmers of your level 20$, so I can offer you 25$ now and we can renegotiate after 3 months” (summarized from some horrible English). C’mon. So, yes, I feel threatened by cheap overseas labor :-(

And @Bob: English is probably the easiest language to learn, you can learn it by playing video games, seeing movies or via the Internet. I speak Portuguese – which is reasonably difficult – but it doesn’t even compare to things like Hindi or Cantonese. Really, “we speak English so we have better brains”? Not that far from fallacies like “we are white Aryans so we are smarter and stronger than everybody else”.

I’ve been in this industry for a couple decades, and in the last 10 years have seen so many hacks from India. So maybe my 20-25 Indians is a small sample, with only one being a talented IT professional. Maybe the first boat that came over everyone was great, but it seems like the whole country decided they should join the IT field, grabbed a JAVA or C++ book, read it and proclaimed, I’m a programmer! Programming is an art as much as it is a science, and not everyone will be a good programmer. Not everyone gets it, as it not just syntax and semantics. The same thing can be said about Chefs, Mechanics, etc. There is a talent for it, a knack so to speak…

It has been a year since I left Microsoft to work independently in India. Though I charge more than an average US programmer of my experience, however there are times when I get projects that I don’t like doing because they are too simple and can be done by cheap programmers and I redirect my clients to them. So I feel there is enough job for all kinds of programmers.
Agreeing with Jerry there is a segment in the IT industry in India who became programmers for money without having any love for the job. Although annoyed I also feel sorry for them as they could have done much better in there respective fields of interest only if it paid enough.

I would like to comment on the discussion regarding the English language being difficult or easy.

I’m Dutch. In my country we learn English, French and German at school. I learned Latin and ancient Greek and later on some Arabic.

At university our linguistics teacher told us that all languages are equally difficult.

Some people say Chinese is difficult. That’s strange: there’s dumb and smart people in China, and they all learn Chinese.

English seems easy, because the grammar of nouns and verbs is so much simpler than in other languages. On the other hand, English has horrible spelling, and the English idiom is quite difficult to master.

So, the easy thing is to learn a few English words, and the few grammar rules that is has, and you’re on the road. But it will be very simple English, not idiomatic, and probably with a lot of spelling errors.