Behind the 'Bad Indian Coder'

An ongoing debate about the quality of outsourced code prompts a look at the country’s precarious economic and educational picture.

It started, as many deep philosophical Reddit debates do, with a one-line statement, “Got a contract to fix some outsourced Indian PHP code,” accompanied by an image macro of Toy Story characters Woody and Buzz Lightyear gazing off into the distance. “Security flaws,” the overlain, blocky white text reads. “Security flaws everywhere.”

Moments later, other developers chimed in with their own grievances.

“Code from India can be truly awful if you work with most companies,” another Redditor said. “A lot of them treat programming as a task to be completed with numbers and fire those that can't work fast enough, rather than a task requiring quality where people are educated to avoid mistakes and fired only as a last resort.”

“I am currently working with outsourced code,” said another. “I never knew how bad it could get.”

The thread bounced around nerd circles for a bit before dying down, but it was just the latest example of the perennial grumbling by American programmers who are assigned to work on code that was crafted in Delhi or Mumbai. Indeed, as America has increasingly relied on Indians to program our software on the cheap, we’ve also increasingly griped that cultural differences seem to penetrate even the formulas and algorithms that one would think would be the same in every country.

A few years ago, American web developer John Larson wrote that outsourcing code has caused him, among other woes:

  • real-time communication made inconvenient and response times made long by the time zone difference,
  • a reduced sense of accountability, commitment and partnership inherent in the long distance relationship,
  • and text like “Link will be sent to your mail for to update your Password.” sprinkled throughout public facing parts of the website, which just doesn’t give your customers the best impression of you and your business.

The accusations often incite Indian developers to jump in to defend themselves. Sri Rangan, a developer from Delhi, said he was offended by the Reddit thread, arguing that a combination of living conditions, education, and the country’s economic structure handicaps Indian developers so severely that they can’t be expected to compete with 26-year-old Stanford graduates.

He points out that while American coders ride private, Wi-Fi-equipped shuttles to work, their Indian counterparts sometimes commute hours to their city-center jobs from slum areas. And for much of India’s recent history, working in IT and software development was the surest ticket out of poverty, so the field likely attracted some young people who were more interested in simply putting food on the table than perfecting recursions.

“Maybe, just maybe, there could be a correlation between quality of life and quality of work?” Rangan wrote.

Of course, there’s a reason that Indian code always seems to be the target: The country dominates as a destination for Americans’ outsourced IT work—taking up 65 percent of the U.S. outsourced IT market in 2008—all carried out by an educated, English-speaking young people who toil for 30 to 40 percent of the cost of an American developer. Some estimates hold that IBM now has more workers in India than in the U.S.

Meanwhile, problems are always bound to arise when a crucial chunk of a company’s workforce operates off-site, as Marissa Mayer might attest, especially when there are time zones and linguistic barriers at play.

Indian coders, it seems, have partly become victims of their own success—offering such a good deal to American CEOs to do a job just as well (or at least almost as well) as similarly-trained Americans, that their code has become pervasive. Over the past few decades, Indian programmers have done everything from create a virtual Oscar figure for the 2004 Academy Awards to ensure the millennium bug wouldn’t kill us all at the end of 1999. With so much Indian output powering our technology, some of the work is bound to be sub-par.

“Working with legacy code, regardless of how well it is written, will always be a challenge,” Rangan wrote.

When Vasu Kulkarni, an entrepreneur who grew up in India but went to college at the University of Pennsylvania, launched his online sports-analytics company in the U.S. a few years ago, the entire development team was initially based in Bangalore. Recently, though, he closed down his entire India office and moved all the programming onshore.

But it wasn’t the Indians’ fault, he says. The geography had just become too great of an obstacle.

“For some projects, we tried architecting and planning it all out in detail over Skype, but it never worked well,” he told me via email. “Invariably questions come up during the development phase, with decisions needing to be made. With an 11 hour time difference, their options were to either wait for the people on the other side of the world to wake up for a consultation, or make a judgement call. Both options suck given that they don't have the general knowhow about the industry and the customers that we do, but waiting till we wake up [would mean] a wasted day of work.”

But another reason the Indian programmers sometimes fell short, Kulkarni noted, was the way they had been trained in college: To memorize and execute tasks, not to focus on the kind of big-picture planning that software work requires.

“I think the Indian education system as a whole is greatly flawed in that it does not urge students to think, but rather to memorize, or ‘mugging' as they say in India," he said. “Essentially if you can stay up all night before an exam and cram as much information as possible into your head, you will do pretty well on tests.”

Kulkarni felt this partly explained why his Indian staff created products that had been programmed before they were fully planned out, forcing the New York team to rewrite entire programs from scratch on occasion.

“That's not to say there aren't some god-awful programmers in America too,” he added, “It’s just that the massive number of developers in India, most of whom have not been taught the right concepts, end up skewing the perception of everyone else about the quality of work that comes out of India vs. the U.S.”

The Indian government has committed to educating the country's massive population, explained Michael Kugelman, an India expert at the Wilson Center in Washington, but there have been some flaws in the execution. Tuition costs are low, so more students get into higher education, but resources are scarce and there’s very little innovation in classrooms. Curriculums are outdated, and schools are far more bureaucracy-laden than those in some other countries.

“Rote learning is still the major reality for teaching pedagogy in India,” Kugelman told me.

Weighing in on the buggy Indian code debate, Indian developer Shekhar Gulati wrote on his blog, “In India ... students just cram the things and get [the] score but practically they know nothing.” Gulati pointed out that he once interviewed a computer scientist with a degree in the field and six years of experience who was unable to write a simple program during his test.

As many as 75 percent of the country’s technical graduates lack the skills to get jobs in their field, and so some of India’s home-grown tech companies actually hire coders who have been trained abroad, Kugelman explained.

“Many of these computer science grads are struggling to get jobs, and that’s because of the education system,” he said.

India’s education issues might become a major hindrance in coming years. The country’s population of programmers doesn’t show signs of waning: By 2018, India is expected to have 5.2 million developers to the U.S.’s 4.5 million. Meanwhile, offshoring from the U.S. is expected to slow, and possibly to dry up entirely a decade from now. And that’s likely bad news for India’s thousands of newly-minted, often poorly trained programmers.

As a recent report by U.S. brokerage brokerage Espirito Santo Securities put it: "A major shortage of jobs in the economy, or a skills mismatch, would create a young, angry and frustrated population.”

Outside of coding circles, the question isn’t whether Indian IT workers are more- or less-skilled than Americans, but whether their code will be as ubiquitous in the future as it has been.