Offshoring web development to India (or not) in the new age

The new generation of web architectures and development methodologies, notably client-side frameworks such as Angular or Ember and the agile/scrum approach, represent an existential threat to the Indian offshore software development model.

Recall that the whole offshore model is predicated on reselling the time of Indian developers working for rock-bottom salaries, at markups ranging from 2x to 10x or more. A brand-new graduate being paid $2/hour may be re-billed at $50K/year. A “senior” resource, whose salary is $4/hour, if placed on-site in the US could be billed at well over $100K.

Typical Indian developers are poorly trained and marginally competent. Mentors, architects, and reviewers are close to non-existent and hardly more competent. Overall productivity can be lower than the typical Western engineer by up to an order of magnitude. Part of the problem is that many Indians go into the computer field not because they have the aptitude or interest, but because they heard it is high-paying. Another major factor contributing to the low competency levels is the abysmal quality of CS education at mid-tier and lower-tier schools. It is not unheard of for college graduates in CS to never have written a functioning program running on a computer; they write programs on paper and pass them in for grading. Many graduates can barely write a for loop or access an array element.

Another key problem with the offshore model is the low level of morale and high attrition in the workforce. Twelve-hour days are not uncommon. Turnover can reach 30% per year or higher. As a result, there is little of the institutional memory that is required when working on projects that require higher-level skills. Much of the time paid for by US clients is for onboarding and training. Staff who do stay with the company and project are burdened by the need to bring the constant stream of newcomers up to speed. Of any 10 new members brought on to a project, 3-4 will soon prove to be completely unproductive, and must be off-boarded, their time and that of the people who tried to train them completely wasted. To deal with the attrition problem, Indian services companies have introduced extreme notice period policies of up to three months, with the uniquely Indian twist that salary is withheld until the notice period is served out; if it is not, the employee is actually made to reimburse the company for the unserved portion. This has had predictable consequences: employees are quicker to resign, because they know they will have plenty of time to find their next job. A specialized job site has even popped up targeting those stuck serving their notice. And of course they produce little if any work of value during this extended period when they are halfway out the door, although of course the client continues to be billed for their hours.

Nevertheless, the economics of offshoring can still work, just barely, if the tasks Indian developers are asked to perform are highly repetitive or predictable, such as maintaining existing pieces of software, writing a hundred input screens, or making minor enhancements. Indian developers have reached a moderate level of competence in the previous generation of web architectures, based on PHP, JSP, ASP, and bits of jQuery. They specialize in rote, formulaic tasks.

Of course, I am painting with a broad brush here. What I say is less applicable to the top-tier companies, who have access to a better candidate pool, and more history and process. It is also not applicable to the captive offshore development centers in India run by Western software companies, who tend to hire and groom carefully. Nor do I intend any disrespect to any of the many great Indian developers I have had the pleasure of knowing.

Be that as it may, now the world is changing. We have new web architectures and methodologies. How well will the Indian offshoring model work in the new age? Should Western companies look to Indian service companies to develop their next generation of web presences and customer touchpoints?

A major component of the new web technology stack is the client-side framework, such as Angular and Ember. These are not libraries, they are frameworks. They are foundations for building a company’s client-side infrastructure for the next five years or longer. They replace masses of boilerplate code found in systems based on older technologies–reductions of 10x in lines of code are not unheard of. The key development task becomes how to build on these frameworks to create a high-level structure of reusable, interoperable components. The new generation of CSS frameworks, notably Bootstrap, falls into the same category. Developing the look and feel of your website is no longer a matter of writing hundreds or thousands of CSS rules, but rather designing how to customize and extend and build on your CSS framework, be it Bootstrap or Foundation.

bmw-jugaad-india

In other words, the new frameworks are a starting point for building infrastructure. They are platforms for infrastructure. However, infrastructure is traditionally something India has had a hard time wrapping its head around. Witness their electricity or transportation infrastructure. Rather than building infrastructure, India has come to specialize in “jugaad” (image), a form of small-scale innovation which is basically designed to work around the absence of infrastructure. Much of the code written by the mid-tier services companies is a monument to jugaad. Building infrastructure is not just something Indian companies have a hard time doing; they have a hard time understanding why they should do it in the first place. In any case, building infrastructure requires high-level design skills not typically available, not to mention knowledge of the frameworks which is also absent.

The move to agile methodologies is another trend that poses major challenges for the traditional offshoring model, which evolved in a waterfall context. A part of a project was hacked off, specified completely, assigned milestones, a deadline, and acceptance criteria, then thrown over the wall. In contrast, agile envisions tight feedback loops and rapid changes in course; these are nearly impossible to realize over distances of thousands of miles. If the scrum includes both on-shore and off-shore members, it is impossible to schedule daily stand-ups at a time of day when one side or the other is not half asleep. The poor English skills of many Indian developers also makes nearly impossible the fine-grained communication among team members assumed the the agile process.

User experience, creative design, and messaging are taking on an increasingly prominent role in modern web development. This new paradigm of agile collaboration between these designers and developers is another area which makes the offshore model work even more poorly than in the past. India has an extreme scarcity of competent UX and interaction designers, especially those who understand modern UX paradigms. Therefore, these designers are mainly in the US, whether in-house or outsourced. In either case, if the developers are in India, this represents yet another interaction to try to manage across the Pacific.

None of this, however, has seemed to stop the the executives of these 2nd and 3rd-tier service companies from jetting around the world peddling capabilities they don’t have, based on architectures they don’t understand, using methodologies which exist only on paper at best.

So what is a Western company to do? Completely swearing off offshoring to India, at least for new projects, certainly looks like a promising alternative. Labor mobility in the US workforce is now such that it is easier than ever to find in-country resources at reasonable rates. If one does still want to offshore, the trick is to limit the work to maintenance and upgrades to the previous generation of products based on the previous generation of technologies, where the structure is in place, the platform well understood, and the tasks to be performed well defined.

Whither, then, the Indian services company? There is no doubt that the immense overhang of demand for keeping existing systems running and fixing them when they break can keep plenty of food on the table for them. However, if they really want to tap into the sweet spot of all the new development being done on mobile apps and responsive websites, they need a radical strategic overhaul. They must hire top-notch architects and developers, conversant with the latest stacks, on both sides of the ocean, and pay them what they’re worth. They must reject the human-wave approach of trying to stuff bloated, unqualified teams down their clients’ throats. They must ensure that their employees are fully functional in English. They need to consider bringing skilled foreign resources to India to rapidly upgrade the skill set of their workers. They need to respect their employees and clients. Above all, they need to stop basking in past glories and adapt to the new circumstances.

Leave a Reply