Made in India, offshoring PHP development

2,091 views
Added 25 July 2011, 9:00 AM

A very large proportion of web development on Western websites is secretly done in Eastern countries. It's the elephant in the room, or in this case, the Indian Elephant in the room.
There's a huge advantage to offshoring PHP development: cost. The numbers seem extraordinary, $8 per hour vs $100 per hour.

In this article I will try and explain when offshoring PHP development works, and when it does not.

First, let's discuss a bit of context. When a company says their rate is xxx per hour, you need to consider what that actually means. I'll jump straight to the ego, in our case:

We work on an Open Source model, so the customer is essentially paying for the maintenance of the ecosystem they are working in within the hourly rate, but as a result there is a bit of a monopoly of expertise: you're paying the people who created the ecosystem, so there'll be a huge efficiency from that.

In our case, often there is a certain lead of project management time that doesn't get counted in the hours. A project will be spec'd up, and we do try and charge for it in project management, but it is rarely equal to the amount actually spent setting up a job. When offshoring you typically do absolutely everything on the clock, because there's no lower service tier that the offshoring companies need to differentiate themselves against.

When we use our hourly rate, it is almost always on a fixed-quote basis. The reality is we usually spend 2 or 3 times longer than we actually account for, because the hours estimated are usually quite optimistic, and in reality there are always things that come up, like bugs in third party code to workaround.

So after all that, when comparing like to like, we are probably talking about more like $8 per hour versus $20 per hour (assuming our efficiency saving made us get 50% more done per hour).

That's a big drop, but it's still less than half the price to offshore, and when you run a business you do need to be sensitive to costs, because if you aren't, your competitors will. So the happy-smiley feeling of paying Open Source developers can't be a deciding factor, unless of course you have a requirement to push the Open Source project forward because nobody else is willing to do so and you need that particular project in your business.

People in India (or Pakistan, or Russia, or any other country) are not inherently any more or less smart than people in, say, America or the UK. To say that is pure xenophobia and I find it highly distasteful.

We have a lot of experience offshoring to India. When I was running ocProducts from home (before we got our office), I was both the CEO and the only in-house developer, and there was no way I could sustain all the client work in addition to running the business and pushing ocPortal forward. So offshoring PHP development was at the heart of our business model. I didn't ever explicitly mention it, because I knew people would pre-judge it and I didn't have time to rebuke prejudices regularly (people wouldn't have given me the opportunity in many cases too): the truth though was I would review all the code before anything ever went to a client and make a tonne of changes, so it was pretty much irrelevant from a client point of view.

So, where can offshoring go wrong? Here's a list from my own experience:

An issue called “power difference” comes into play. Developing countries usually have a culture where it is considered highly unprofessional to ever question someone who is a superior. Managers in Western countries usually thrive on feedback from people under them, and ask for all their decisions to be questioned, and I think this is vital to success. You really don't want people to be “yes men”. Don't underestimate the seriousness of this problem, a manager never has the time and perspective needed to perfectly explain a task, but if employees don't ask questions when they start to explore out the task in it's full detail, those tasks don't get done right.

Time-zone differences: either you need to wait for a developer to come on-shift, or the developer is asked to work horrible hours and then sleep in a noisy city during day time (Indian cities are horrendously noisy).

You can't look over someone's shoulder to see how people are doing. A manager has to find a balance between high-level management and micromanagement (the balance is different for different employees), and looking over people's shoulders occasionally is a great technique that is completely impossible with staff who are not in the office. Of course, this problem also applies to freelancers and people working from home. Don't think that Skype or desktop sharing will make up for this, it is far harder to get an accurate check using these things, and it takes a certain amount of negotiation and time each time you want to do it. I can say from experience that just walking around the office (maybe whilst walking to the door to go to the loo – i.e. taking out virtually no time for it) and checking everyone at once is infinitely better. Never assume people will pro-actively bring problems to you, because developers are all to at least some small extent 'shy', they try not to bother you, and they often do not realise how they could be working more efficiently.

People are less likely to ask questions if they have to type them out.

I have good Indian friends who know English far better than me, but the average Indian developer will make a lot of grammatical mistakes that need to all be reported or fixed in-house.

There are differences in quality standards between developed and developing countries. This may sound controversial, but it cannot be denied, ask any Indian and they will say how their country is organised chaos. People in the West have grown up with an expectation of beautiful refined media, not things that are hammered together, and you often see this difference in the quality of online work too. It sounds prejudiced, and perhaps it is, but I think it is true for many cases (of course, you should never generalise and stereotype, it's a thin line to walk!).

Offshore developers don't feel compelled to compete so hard to justify their rates, because there is nobody significantly cheaper for you to run to. Of course, many people have better reasons to compete than just based on rate justification, but I think to some degree the basic feeling of “you're paying peanuts, just how hard should I bust my ass for you” is sometimes there. Again, I don't want to generalise, because I have seen some extremely diligent Indian developers.

The demand for offshoring PHP development exceeds the supply of developers, yet the price ceiling cannot rise due to the nature of the market, hence breaking normal rules of supply and demand – hence kind of tying up the industry in a certain mediocrity.

Educational standards may be lower. A lot of people from India spend a huge amount of money in other countries to get educated. Of course, I can't say this for sure, not having experienced an India education, but I have some information on this from two people who have done degrees in both India and the UK.

The more experienced developers usually either leave the country, or they get tied up in large corporates that work for companies like Microsoft.

You cannot doubt that there will be cultural-based and language-based communication problems. To take a common example, pink in India is often a favourite colour for men, which is actually the natural case because it is a dangerous blood-like colour which goes hand in hand with your stereotypical male aggression – but a few hundred years ago that changed in Western cultures and it became female-associated.

It is very hard to explain some things in writing, compared to demonstrating something on screen and using your finger to point.

Most offshoring companies will not let you interview developers yet also don't have the same level of written programming standards a Western company would have.

As you can see, the situation is far more complex than just the “communication issues” cliché, and it is not an issue with core skill. But even after all this, you cannot deny the difference in price, and still in many situations it makes more sense to offshore.

My opinion is that you use offshoring PHP development if you have a task that meets the following criteria:

It doesn't need much explanation

It is quite long

It involves standard skills

It is not particularly cultural

I hope you find all this useful, and balanced. I have considered these issues for years, and it's hard to get past the stereotypes, clichés, and biased points of view.

This was article 4 of 8 in my "Web industry Exposé" series of blog posts.

If you think it's good advice, please share this link with others. If you think I'm wrong or have something to say, please discuss below.

Trackbacks

Comments

I am in no position to comment on the discussion as far as 'quality' of the work is concerned.

I am, however, in a position to comment on 'stereotypes', 'cliches' and 'bias', with the massive advantage of age (67 this year) and the fact that I originally hail from the sub-continent.

Although age isn't necessarily considered an advantage in this huge explosion of modern technology, and although I can't say I am mentally nimble enough these days to 'keep up' with the strides that are being made, almost daily, I am sufficiently arrogant enough to consider myself ahead of most of my generation. I make this declaration, because I am impressed with the mature head you have on your young shoulders, Chris.

Hailing from the sub-continent is, I suddenly find, not necessarily an advantage either when attempting to respond to this article. My cultural background was (and is) distinctly different from the average Indian, formulated by parental and peer prejudices that with hindsight were shortsighted and misguided. But that's another story.

The point I wanted to raise here is that 'price' can be further broken down by the simple factor that the cost of living in India is far lower than any you can find in any western country. So, your $8/hour price tag becomes understandable when you compare that with an average monthly wage in that country. I don't subscribe to the "… you're paying peanuts, just how hard should I bust my ass for you?" theory, because they are already getting a higher-than-average wage and would not want to lose that nice little earner. Don't expect it stay that low as the country emerges into a power-player on the world stage.

Whether the 'quality' is of an acceptable standard is another matter altogether. Grammatical and other errors are endemic, but not necessarily if they are working only with code. These differences already exist between English and American languages. And there ARE differences, often insurmountable!

Fletch said

Grammatical and other errors are endemic, but not necessarily if they are working only with code. These differences already exist between English and American languages. And there ARE differences, often insurmountable!

I have to disagree with you on that point Fletch. You still need strong English skills when writing code for an English speaking client.

At a minimum you have internal code documentation, but there are test cases and reports to be written (amongst other things) and just basic communications and comprehension.

I speak with first hand experience here. There were far too many situations where what was written was either too ambiguous or totally opposite to what was intended. It was probably a 40%-60% split as to the root cause being problems with the comprehension of the specs (the language in it, not the technical detail) and their written documentation, reports or communication.

I don't subscribe to the "… you're paying peanuts, just how hard should I bust my ass for you?" theory, because they are already getting a higher-than-average wage and would not want to lose that nice little earner

I don't either, but I think there is a lack of supply of developers meaning there is no 'stick' for them to be fired easily, and a lack of ability to raise salary so that's not a 'carrot' to push yourself. It's a bit of a bizarre economic situation.

Don't expect it stay that low as the country emerges into a power-player on the world stage.

No, indeed. Zoho Office is developed in India. I think increasingly things will be innovated there. I don't think offshoring prices will rise (it will lose it's purpose) – instead, the number of available workers will shrink.

Grammatical and other errors are endemic, but not necessarily if they are working only with code.

Yeah, I don't think it translates to code either. You will see spelling errors in variable names etc, but it's nothing to do with code logic quality. temp1024 is correct though regarding general communication.I always thought that these offshoring companies really should hire some very Westernised people (plenty of people in India who have grown up as culturally English) to go over their own websites and improve it. It's frankly an embarrassment looking at their text sometimes.

Chris Graham said

I always thought that these offshoring companies really should hire some very Westernised people (plenty of people in India who have grown up as culturally English) …

The feedback I am getting these days is that 'Anglo's' (like me) are becoming a sought-after commodity for precisely that reason.

To think I spent my last years of study in Bangalore, and then emigrated! Mind you, most of my time was spent on the football, hockey and cricket fields. I guess ultimately I wouldn't have been 'fit-for-purpose'!

And I think temp nailed it when he stated the problem was 'comprehension'. Thereby hangs the tale!