90 comments

[ 0.19 ms ] story [ 193 ms ] thread
The most important point is of blended rate.

Outsourcing industry has a huge conflict of interest with the customer. Customer wants minimum number of high-quality engineers to complete work in the minimum possible time. Outsourcing companies want the opposite. They don't hire high-quality engineers because a) they eat in to their profit margins because of high salaries b) they get things done quickly which reduces their invoice.

They just want to deliver the "good enough" level of quality to ensure customer retention.

The interests of outsourcing companies and customers are totally orthogonal. And we all know this always end bad.

I wish I could read the article, but it is asking me to log in, so I am skipping it.

But your comments remind me of what I hear for a lot of Americans (and Indian expatriates) who tend to be negative about Indian workers, when often the root cause of their complaints are cultural differences, and the ways that it impacts the work.

I have had great relationships with outsourced teams. But I did not get them just from hiring someone and expecting it to work. I spent a lot of time with my people, getting to know them, talking about how we wanted to work together, bringing them over here so the teams on both sides could know each other. I got to know a bit about their culture and how that impacted their work, and learned to work with where I could, and helped them make some changes to work better with us, where appropriate.

You would do that much for anyone on-site, so not doing it for remote workers is doing them a dis-service.

Personally, I got good results. And invitations to their weddings, which made me really feel like we were a team, and not just using them as a tool to get some work done.

Maybe I just had good luck. Maybe the rest of the industry is different. But I cannot support the comment that it "always ends bad". That does not have to be the case.

You can just skip the login overlay by clicking the X in the bottom of it.
For what it's worth you can just click cancel on the log in popup and get straight to the article.
That's great to hear.

I certainly don't think the problems are cultural. I believe it's the inherent business model which is not aligned.

You are happy with your outsourced teams but I would love to know how do you compare your outsourced team with your US one? I believe that their are super quality engineers in Asia who can give you US standard of work but you will never get access to those guys as long as you are going through an outsourcing company. In a team of 10, maybe you'll have 1-2.

You may not think so but you can actually afford to hire 10 senior high quality US standard guys in your outsourced teams. And it would still be 20% of your US cost yet your partner company's interest is not in it. They'll always tell you it's hard to hire, market competitive or difficult to retain etc.

What industries or business models are delivering quality above and beyond "good enough" to ensure customer retention?
Every industry. It is called market segmentation.
Being an Indian, I agree with that. Sometimes, when asked "how do you justify the X salary you are demanding" I find very few who have any answers (except the occasional: 'How he/she belongs to IIT' as if being an IITian gives you the right to earn without work)
Outsourcing experience will depend on selection process and outsourcing rate. Can author confirm that they did good job on both of that ?
The second paragraph contains the sentence:

"This is simply an opinion I have formed based on 15+ years of experience with various providers."

Your question smacks of 'show me the proof-ism'. Why does this article make you uncomfortable?

Not sure why the author seems to insinuate that the problems he/she has described are somehow specific to India. We had a disaster when we outsourced a large piece of design work to Denmark. We found out that the outsourcer in Denmark was themselves outsourcing chunks of work to Ukraine. Our bias assuming that an expensive Scandinavian outsourcer would be magically better than a cheaper Asian alternative led us astray. A mistake we won't make again. The real solution is doing proper due diligence and proper contract maintenance clauses that ensure the outsourcers goals are aligned with yours. That takes work, not just tossing a spec sheet across the wall.
We outsource successfully. But we have a 1 on 1 relationship with each developer outside our company. So no fooling us about whom it is doing the work.

It takes real work to manage any developer. Its an illusion to think outsourcing solve all the problems. We think of it as simply a recruitment tool really. Not that we hire all the developers we work with. But the outsourcing company is only there to bring in talent as needed. That talent still needs to be managed.

Just for the training phase. You should expect to be axed in few months.
>But we have a 1 on 1 relationship with each developer outside our company

This is the main issue. Not whether the outsourcing is done to India, the Philippines, or even in the US. The model of shipping off your large projects to another company is going to be very problematic.

One on one relations with a good developer are going to be the way to go. A lot of smaller startups that outsource do this.

I don't think he says the problems are specific to India. He is just presenting India as a case study, perhaps because it the most popular outsourcing destination.
Eastern Europe is to the Nordics what Asia is to USA...
As an Indian software developer who has some exposure to the outsourcing industry, I have to say that I can't disagree with anything the article has to say.
As an Indian software developer who has some exposure to the outsourcing industry, I have to say that I can't disagree with anything the article has to say.
(comment deleted)
Some parts of this post are true, some are straight wrong. To let you know I worked for a Major Indian IT services firm for over 5 years.

>>with no innovation and nothing to offer other than questionable rate savings.

Most of the big IT services firms have very elaborate and very active community of people who innovate all the time. In fact if you are working with any moderately big outsourcing firm, they will likely have training programs for nearly all trending technologies out there. There are local in-company LUG groups, all kinds of technology interests groups, even labs who work on core CS research. You just don't hear about them, because unlike the product folks they don't blog every second minute about how great they are. You will be surprised by the sheer depth and diverse range of areas people are working in these companies.

>>Remember all those schools that promised to turn anyone with or without ...

This has been happening in India from probably 1980's or may be even since the independence. That doesn't change anything. India is a place where people will do anything, and I actually mean anything for opportunities. This might look strange to a lot of people. But there are many of us, for whom merely getting a foot in the door means bailing out of a few generations of misery. There fore people will do anything to first get some education, once done anything for a job. Once in a job anything to get a good life. Its not odd, for people to work crazy hours their all life just to get a decent life for themselves and their kids. People in the west may call lack of sleep as spoiling health or whatever, here its almost a virtue.

>>With about 12 hours difference with Pacific Time there is simply no reasonable time for you to talk to your team in India. When they are finishing their work day you are not even ready to start, and when you are ready to leave office they are not anywhere to be found.

In early part of my career, I've slept in the office dorm for days in stretch only because I had take status calls from UK/US. I know innumerable amount of people who still do. Any company with a reasonable brand, and a good vein of professionalism will do. It all depends on whom you are doing business with.

>>Employees in India are extremely difficult to motivate. You’ll notice that weeks and months go by with very little progress being made. Indian outsourcing employees seem to have a natural talent for working hard while producing little.

If anything this is probably the most wrong statement in the entire blog post. In IT services companies you will run into projects which are basically 'mission impossible'. For almost negligible budgets, you will be pushing 18 hr work days to achieve almost the impossible. Most of the them succeed, a few fail. There are instances where people will be up all the night because some UAT needs to be done, or because a regression testing needs to be finished. Again continue to work the very next day to fix a few bugs and get stuff shipped only to be asked to be available that same night for a status check call, I've seen people do this kind of stuff for months. I've seen people burn out, get kidney stones, develop blood pressure related ailments, lose weight drastically- All kinds of crap because over the past year they just have been working like machines. Amidst all this some projects do fail, but its rarely because people are lazy.

"Most of the big IT services firms have very elaborate and very active community of people who innovate all the time."

I really, REALLY doubt that. Or you don't know what innovation is.

It's not about India, it's about the companies and the mentality.

>>Or you don't know what innovation is.

May be I don't.

>>It's not about India, it's about the companies and the mentality.

It's not about companies either. Its largely about which project you are going to work for. I'm pretty sure even at Google there are a lot of 'keep the wheels running' kind of projects. And there might be a lot of politics too.

> May be I don't.

Nonetheless, I am curious. Can you give examples of what (you consider are) innovations that you've seen? For what it's worth, I am aware that some of the bigger Indian outsourcing companies have initiatives for innovative and research-oriented work, but I have not seen what they actually produce.

I can't imagine the code is very good quality with the working conditions you describe
Code quality is largely dictated by the client. And at times people who basically 'sign off' your code, Pretty much every project will have their own checklist, there won't be a common checklist because of legal copyrights and contractual things preventing things getting shared out of your project. So it depends on what the client demands. But there are very strict SLA's though(Based on what the client wants). I never recall a single instance when we shipped anything without unit test cases, UAT's and elaborate regression testing.

Automation is a trendy and people get awarded prizes all the time for writing tools that save time and improve quality.

I'll try to reply cautiously, but I don't think your picture of innovation is accurate. To start with, the big-5 IT majors find it very difficult to attract talent. Even back when I was in college ('98-), the IT majors were a fallback option for most people. In fact, the best students didn't even bother applying there. This has only gotten worse now, from what I hear.

It is also my opinion that there isn't a lot of innovation happening in these places. You could see some of the work being published (in their blogs) but the quality of work (or innovation) is nothing to write home about. Many of them are simply rehashed whitepapers on topics widely discussed on the internet.

Having said that, I don't think Indian IT is in any sort of danger, in fact things are getting better. Interesting work is happening, just not in large IT companies. There are way more talented, passionate, excited tech folks here than at any time before.

>>In fact, the best students didn't even bother applying there. This has only gotten worse now, from what I hear.

Largely because these companies pay less, not because quality of work in product companies is higher.

I worked at a onsite location for a company which is one of the largest internet companies. We were all hired to work there after elaborate interviews. And we used to be repeatedly told they hire only the best, from the best universities and all that. Yet when we worked together as a team, most of these kids hired from IIT's who really believed they were some special snow flakes and all they really got to work on was HTML and some small time shell scripts. These kids had never seen what it meant work on a P1 bug after clocking full nighter, never had any exposure command line kung fu, they didn't know what it meant to having spend a full weekend writing a 2K line perl script because someone at the top wanted a prototype/reporting application done by Monday, heck for all the algorithm geniuses they were considered they could barely do any genuine work of significance to the real world. All they were really interested is in learning the next set of interview questions that were in trend so they could get some one in their alumni have an interview arranged for their next jobs.

The irony is we did bulk of the really algorithmic work there was. We set up a good deal of hadoop infrastructure and platform, we wrote a great deal of what were the complex workflows. And got a lot of systems and applications set up. Yet we were thought of as some kind of lesser children.

I'd really judge the best students/best professionals by the work they do, not the college they belong to, or their degree or their college network.

Show me what work you've done. Everything else is just hot air.

I'm preparing for my campus placements and I feel so frustrated by having to solve algorithmic puzzles because that's all that companies ask in interviews, everything else is secondary. I have so much interest in OS and networks but so few companies are there that offer challenging or exciting jobs in these fields in India. Most of the work is testing and validation and all the design and architecture work is done in the US division of the companies. This leaves students with no other option but to study what is required for the interviews and get trapped in the eternal interview-study-promotion-interview loop. The lucky ones go to US.
Why do "people" links lead to "people4people.ru"? I'm afraid to click it. Is it malware on my machine?
I get the same; guess it's some link building SEO.
The whole things gives me a clickbait-y feel.
Did anybody else find it odd that every occurrence of the world "people" is a link? Is that some SEO link-building stuff? And if yes, do you consider that OK?
If so, trying to rank #1 for the word "people" is bad SEO.
I think it's okay, but Google can easily catch on to stuff like that. Their Penguin algorithm is designed for that.
"Finding talent in Hi Tech centers like Bangalore is almost as hard as finding qualified people in Silicon Valley."

This is a good point. A related question: Can more and better work be done by less people?

If so, are 'two-dozen dev-ops' (a rhetorical number) adequate for all scenarios?

Yes, more and better work can be done by less people - it's axiomatic in software. It just takes longer - and often looks like people sitting around thinking and experimenting.
I agree except for

"It just takes longer"

Which depends a lot on everything. As an extreme example a bunch of junior people might develop a feature for a few sprints using TDD, XP and whatnot and not getting it done while a single expert might implement the feature simply and elegantly in a few days and a lot less code.

My favorite example of this are two blog artifacts: The first of which describes an attempt to write a Sudoku solver using TDD, and as a counterpoint Peter Norvig's simple and elegant sudoku solver in python (as previously discussed in HN):

https://news.ycombinator.com/item?id=3033446

As someone who hasn't really managed to get into TDD (despite a few attempts), do you think this is generally the case? I do feel that TDD encourages a sort of shotgun approach to development, where you just try things until it works, rather than think the problem through thoroughly. Any opinions from people who have done both? I personally find fiddling with tests interrupts my flow of thought too much, so I would rather do it at the end.
I call this the rewrite fallacy. I honestly cannot think of a decent piece of work that I did that did not involve two three or a dozen rewrites - either from scratch (rare) or just piecemeal replacements until I reached a design I was happy with, that fit my domain and was appropriate.

Sometimes the rewrites were on the same project, sometimes the rewrites were on previous projects and I jus looked like a genius coming in to do something I had already done before , but I am always surprised if I can get things right first time (right enough is a professionals baseline, but actually right? Hardly ever).

So, no, I honestly think that thinking through a design, working out and testing out ideas and architectures is a necessary part of development - call it discovery, call it the first iteration, call it perfectionism, it's needed.

Tests should come as part of that. Slowly as you realise the approach you are choosin might actually be the right one and then increasingly as you fill out the space.

Boy, are we diverging :)

From my experience TDD is kinda newspeak in the sense that it does not help at least in the first stages of design. From what I've managed to gleam as valuable way of working is test driven implementation. I.e. when implementing something akin to a simple datastructure I can test the interface functions as I write them which verifies the interface is not silly and that it works.

Another place where implementing tests concurrently brings value is using the tests as a form of documentation.

I would not call TDD a design methodology beyond the fact that usually implementing interfaces (and verifying it works) is good practice while speccing it.

Tests bring lots of value to a codebase beyond the fact that it sounds impressive to have a 95% coverage. From what I understand of the pathologies of software development having the TDD tagged as methodology is to allow the programmers implement tests in peace, politically shielded from the more gung ho elements of the stakeholderkin.

Summary: IMO if production code has no tests something is wrong. But I would say the most value tests bring is in verifying the algebra of the interface, protecting against breaking commits and documenting the inteded usage through examples. I would not say writing unit tests is a particularly powerfull design methodology but playing with code is, and calling what the developer is doing as 'TDD' gives the developer the mental piece to do exactly this.

Most of the advantages you list are about testing, not testing before coding, which is what I was curious about.
From my (not so big) experience:

Best things to outsource are those with well defined requirements, with not many refinements to be done (or that can be done internally)

The bandwidth is reduced, so it's not like the person is next to you. But with good requirements (and an agile development) this can work

Oh not this stupid argument again. Many problems he mentions aren't specific to India, you'll find them across all developing economies (We had most of the same issues contracting work to a Chinese and Brazilian company).

At the end of the day, you get what you pay for. And some companies are clearly okay with said cheap work. There's a reason the IT industry in Hyderabad/B'lore is booming. Want solid contracting work without slackers? Sure, you can still find plenty of those too in India (thoughtworks?) but pay up (albeit less than what you may have to in the valley). The reason you're outsourcing core-work/parts of it to India should be that you can't find enough talent locally; not for getting it done cheaply or because your in-house developers think the work is 'beneath' them (I've seen this happen way often, dev with inflated ego doesn't want to test. Wants to do a cold hand-off and expects the cheap developers to be on his level and take dirty work off his hands. Starts cursing). So, there's probably room for both (cheap and expensive) industries in India. Unfortunately, you might have to expend more effort before you find the company that fits your needs.

Articles like these insinuate nothing but Xenophobia and racism. More often than not, Indians are always on the receiving end of it despite contributing so much to the software industry in general. The author from Ukraine of all places probably wants soviet like discipline and work-ethic for USSR salaries? Yeah, ain't gonna happen comrade. The employees on the other-end aren't stupid either. They have many friends in the US making bank working at Google/FB. Why would they work their balls off for peanuts?

Your post contains more xenophobia than the article, "comrade"
How is that?
I think this excerpt is representative of the content that woah (reasonably, in my estimation) found xenophobic:

"The author from Ukraine of all places probably wants soviet like discipline and work-ethic for USSR salaries? Yeah, ain't gonna happen comrade."

"Your post contains more xenophobia than the article"

This statement seems completely unfounded to me. I feel the OP makes valid points, any professional developer that delivers high quality work is not going to be cheap. If you want high quality solid software you have to pay for it. Developers who have been around long enough know this and charge accordingly. If its cheap you're only getting one of two things, a good developer who doesn't know what they are worth (probably because they don't have the exp yet), or crap.

I definitely agree the title of the argument is jumping to conclusions, but the problems are very real from what I have experienced.

paying more (to Indian (as in, in India) developers) doesn't alleviate those problems. people have really stretched what xenophobia and racism means anymore.

Why should they work for peanuts when their friends are working at google and FB making bank? because peanuts where they are is a very high standard of living, and lets face it, they do not have the skills or they would be working at fb and google making bank as well. One should never do a poor job just because they think they aren't compensated enough.

As I understand, it's more of a cultural thing. I live in a Middle East country where a lot of low to mid-level workers are from India. If you want to get anything done it's full of bureaucracy, things are done to the minimum standard of working (a socket in my apartment came off the wall, the handyman came to fix it and used a bit of brown tape - job done!), and people are always looking for ways to one-up themselves.

A company I'm working for is currently trying to build up a team in India (for lower costs), and all the problems we are facing are those described in the article. Given my experience with how they are in my country, combined with the company most likely paying the minimum, I'm not really surprised.

On the other hand I have a friend in the UK who has a couple of on-site developers from India working for him and he says they are great. Of course, I'm sure not all Indians work the way I have described, but I wonder whether for these guys they have picked up the Western way of working from living there.

(Apologies if I come off as harsh or offensive, I'm not saying the Western way is better than the Indian / Asian way it's just different - which is where these outsourcing issues come from, as people expect outsourced developers to work the same as a local developer)

Makes one wonder if one could hit on more quality assured work if one shopped somewhere within the states but outside said valley.
>>The reason you're outsourcing core-work/parts of it to India should be that you can't find enough talent locally

Sometimes, but not always. A lot of companies outsource because they feel software is just not a part of their core business. Very similar to the way why some companies outsource payroll.

this problem is specific to India because India is center of IT outsourcing and this problem is unique to IT. Contracting work to China is mainly manufacture sector which real product are being shipped. quality and standard are well defined in advance. customer can simply reject goods if they don't pass quality test. can you do that in software outsourcing? when we talk about this problem we don't need to mention other contribution done by Indian developers. Let's just focus on one problem. I am sure there is thread for discussing Indian contribution in software industry. Actually author kindly mentioned he also met some very good developers both in US and India to be politically correct.
I get a login screen, not an article, from this link.
(comment deleted)
(comment deleted)
I really should not be commenting on this - it feels like feedin the trolls. Ah well. So here is my "15 years of experience and no data points" commentary

Indian Outsourcing has a history that made it the way it is today - and it has nothing whatsoever to do with the quality or skill level of (averaged) developers. The article smacks horribly of what I call "loud old white manager of forty Indians" syndrome.

India in the 60s and 70s tried to cut itself off from the outside world and political strategy effectively strangled any native IT industry in it's crib. So Indian hackers did what hackers all over do - got round the problem, either by emigrating or by flying out to find clients. Outsourcing was for a while quite literally the only game in town for IT.

It worked really well - and therein lies the rub. If you want to maintain a good client relationship with a Fortune 500 company mostly you do it at the middle manager level.

Fast forward to 2014 - Now it is clear that software is eating the world, senior managers are going to replace middle managers with some combination of simplified process, automated decision making and "empowering" frontline workers. And yet those middle managers are the ones outsourcers have spent decades learning to work with.

This has left a mark on the Indian university system - with a lack of professors (remember the good ones left) the schooling was left to commercial companies - and it is only slowly recovering from this bias - "don't challenge the loud old white guy" and "learn Java" are two axioms that (good) universities would not teach but outsourcers have built in.

So there is innovation and hacker culture in India. But it is not as celebrated as "going to work, having a proper job and working for a named Fortune 500 company". Every hackers mother prefers the second one, and India has an unusual situation that the majority of IT education prefers it too.

Apart from this quirk of history Indian outsourcing and project management is down the line the same as every where else - gosh! Training at the expense of the client ! Rapid turnover on internal projects! Badly spec'd out projects with minimal business justification turn out badly!

This is not an Indian problem. This is our industry's problem - and treating it as anything else is ... Wrong

Who are these "experts"? Why they are so cocksure that the problem with outsourcing is related to any ethnicity? Oh, they are Slavic "managers" of a lowest rank..

Outsourcing could become a problem in situation when a "man in the middle" is incompetent and incapable to perform these tasks himself, so he obviously cannot estimate correctly any time-frames or evaluate sub-contractor's performance, and, most importantly, have no idea which tasks in a "project" could be outsourced and how to split them correctly into sub-tasks and between people to work in parallel.

What is the problem really? The answer is greed, mediocrity, incompetence and inflated self-esteem.

There are also cultural problems. Person X won't talk to person Y because he/she is from different caste.
This statement is plain wrong. People you are referring to are highly educated professionals.
I've actually witnessed what the parent refers to, here in silicon valley.
I have worked at a software company in India for over 10 years and have literally never seen this. Even once.
Take away the point about the 12-hour difference, and you can repurpose this article into: Why Silicon Valley startups are doomed.

-Resource Availability

-Resource Quality

- Employee turnover

- Mindset and work ethics

- Cost

A truly lazy piece of writing about generic/cylical demand-supply challenges that most booming industries end up facing.

Referring to people as resources is normally reserved for Outlook resources at financial institutions.
Most companies above a certain size have a human resources department.
Sure, but that's because most companies above a certain size are old, and department names are the last to change. Younger companies have 'people and culture' or similar.
(comment deleted)
Most of these arguments can be made about any country and any type of contractors, from car mechanics to house builders. Bad cost estimates, Cost overruns, work not completed to satisfaction of the buyer, work completed but with poor quality are all in general aspects of any kind of outsourcing. There's a saying if you want something done and done well do it yourself. Whoever you hire may not be able to satisfy all your expectations. Adding to the confusion sometimes people who charge a lot do a lousy job and people who charge less end up doing better work. Such is life.
Cloud services will destroy/dilute their revenues.
plus automation
I have no doubt that the author has experienced these issues and also agree with him on some points. However here's where the error lies - drawing conclusion from your personal experience and extrapolating it to the entire sector worth perhaps 100 billion dollars and predicting it's impending doom. That's just not how reality works. There will be dozens if not hundreds of examples contrary to your experience.

There may be declines, there will changes, restructuring, recalibration, pains, growth etc. Life and business will go on albeit with changes. A broad vision always helps keeping things in perspective in drawing such conclusions.