Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Is setting up a remote team of developers in India worth it?
13 points by starter on Jan 28, 2014 | hide | past | favorite | 44 comments
Market wages are currently dramatically lower. Potential hires seem to speak really good English considering it's their second language. I still want to make sure there isn't some kind of catch!



Assuming you aren't trolling: No, absolutely not.

My experience, at two companies, is that what you save in development costs, you quickly pay for (and then some) in management overhead, and low code quality. Some of the code we got was simply not salvageable. (And of course, it consumed time on our side to review the code, reach this conclusion, and document the suckage.)

If outsourcing has any chance of working it is for rigorously specified requirements. If there is any wiggle room, or even if you expect common sense to apply to fill in the gaps, you will be disappointed.

Why is the reality so bad?

- You have little choice about the actual developers you work with. Would you hire your own development team by phoning up a headhunter, asking for a half dozen developers, and then taking whatever the guy sends over? Of course not. Why should this work any better from an outsource agency?

- Any marginally competent developer at an outsource firm gets moved into management quickly. (At least in the companies we worked with.)

- Distance sucks. Do you really want to schedule meetings with 10-13 hour time differences? Deal with any required travel to and from India? Really?

Outsourcing is a clueless executive's idea of how to get software written. It was a new business trend in the early 2000s, (so long ago that I wonder whether you're trolling), and it was weird: I kept challenging the decision to outsource, and the rationale kept changing. Basically, it was a trend, so the executive making the decision wanted to do it, reasons be damned.


Your experience closely mirrors mine in that contracting out the work will cost you more overall. It's in the contracting company's interest to misinterpret specifications so long as they can bill more (you can't irritate the client too much or they'll quit). On the other hand, it's nothing like the way government contractors in the US overcharge the American public.

At one point, we also had a division of our company set-up in India, and when staffed carefully, they became remote members of the team (just like other remote workers). The only downside to this arrangement was that it was hard to keep qualified employees as (at the time), you could change jobs twice a year for a 20% bump each time.


Not trolling, 100% serious. I don't actually want to do outsourcing, per say. My interest lies more in leveraging low market wages in India and actually setting up a foreign office with it's own management etc.

You still think India's bad for business?


From other comments here, having someone on-site there improves the odds. But why bother? If you're a startup, you are creating one more unnecessary problem. Also, if you're a startup, you probably are going to be changing things frequently, resulting in constant software updates. In my experience, outsourcing works best (or least awfully) if the task you are outsourcing is completely specified, with no ambiguity. If you are going to be changing specs on them, it won't work so well.

I understand a startup needing to save money, but doing it this way seems crazy to me. I've done five startups by now (four with successful exits). If I were to join another, outsourced software development would be a red flag -- I'd stay away.


Having worked with a number of Indian firms since 1998 and having friends there this is my take.

It is no different then the US, some suck, some are good, some are awesome.

The problem isn't India vs US, it is distance, communication and numbers. And the reality is it truly boils down to a numbers game, if you don't know someone, you are more likely to have nothing but headaches. Also the time difference seems minor to manage at first, or even an advantage, but you soon find out it is a pain in the ass.

Overall, even knowing there are great people in India, I won't use it as a primary source of development for anything. Too many times I have had issues, so I just won't do it. If a friend that lives there has some spare cycles, I will do that in a heartbeat because I know they can/will deliver.

Also, as a whole, we pick up more failed projects from eastern areas than anywhere else. My 2 cents is this isn't because they aren't capable, but the communication isn't clear, and people are trying to seek out the lowest cost person/firm. Seeking the lowest cost to me, means no matter where you are at you are not getting quality, but what you paid for.


Do you think there's any chance that the latest advancements in video calling might change that? Things like "living on video"... Streaming the remote office and maybe distributing Google glasses etc.


I think even just Skype and technologies like that really positively impacted it and has helped (logmein, gotomeeting too).

Depending on what you are trying to do there could be lots of good/bad. If you are thinking of renting space out and hiring 10 people over there and sticking them in an office and they are solely your team then you have a greater chance of success. But you are going to have to learn to do business in India, learn their rules, learn how to get what you need there etc. That means how to hire, fire, discipline, manage and deal with local authorities. If you think it is hard doing that as a startup in the states, try doing it in two countries at once. Oh, and you will need to be there every few months in person to make sure you are getting what you want, price that airplane ticket * 4-6 times a year. :) I have been asked a lot why I feel face time is so important with remote teams like India, Brazil etc. Frankly the #1 reason is our cultures are different, so interpreting the nuances of spoken phrases or the unspoken is much harder unless you spend time with them. This is by no means bashing anyone, but it is a reality, you need to learn their culture and respect the differences so you can work with them successfully.

If you are thinking of trying to let them work remote out of their house, I have not had 1 good experience trying that as many will sell their time to 3-4 companies this way and do a mediocre job at best and generally a horrible job. This is the numbers game I was referencing, you might luck out, but more than likely you will hit the game of numbers constantly cycling through people.

And if you are thinking to use a dev shop over there, that has its own problems. Most specifically is you rarely will speak to the guy writing the code. They insulate the teams so much that the guy sitting in front of a keyboard has had 3-4 layers of filtering done. Not saying this is true for every place, as I know there are some that are not that way. But in general I saw a lot of this going on.

And even if you go to some of the smaller shops that promise the opposite, then you get the issue of the 11+ hour time difference and the fact that your communication and documentation will need to be excellent to get good results out of them.

My whole team today is basically remote, we work in different cities etc and that works because of technologies like IM, Skype, Hangouts etc. But we are all in the US and all have similar education, understandings and backgrounds. And the team is motivated to produce high quality because it is their name/reputation on the product too. Of course they are also not paid a 3rd world wage either which helps. And even with all that, we still have to get together, hash through things and solve problems in the same room sometimes. So far no technology I have ever seen will replace sitting in a room with 4-5 smart people and a white board. Even when I worked with Indian firms for some of the larger projects I was on, I flew there regularly to meet with the team we hired over there. And we did have video conferencing already. It is really hard to get people that are 8k miles away to have the same level of passion about your project as you do unless you show up regularly to get them involved.

I am not bashing remote work out of India or any other Country, it is just that the problem is hard to solve, and for a startup it is a very tough problem unless you already know people in the Country you want to work with. If you look at Oracle, Microsoft, GE etc, all have dev shops in India and other places. And every one of them has US based personnel that directly are in Country or make regular visits there to manage the shops. They also have significant budgets and staff to write super detailed specs etc. And frankly, if you have seen their dev timelines, it shows.


I am original from India (now in New York), and I have hired over 40 developers, designers and marketers in New Delhi over the past few years.

You can hire good developers in India for $1,000 to $2,000 per month. It is viable to hire team in India, but hiring and managing them remotely is a nightmare. Remote teams in India are unreliable and not committed.

In India, you need hustle with your team to get shit done. The only way it is going to work is if you have someone one the ground.

Hiring good developers in India is difficult, retaining them is worse. Good developers are constantly bombarded by recruiters with very lucrative offers.

My 2 cents, It can be worth while if you want to go to India and build a development team. Stay away from outsourcing companies, they are only going to sink your time and money.


Thanks for the tip! Isn't $1-2k per month pretty high for direct pay? My estimate for starting salaries was substantially lower.


The complaints you hear about Indian developers are for the $500/month developers.

The developers you can hire in India for $1,000 to $2,000 are competent and comparable with $120k to $150k US developers. These developers work with the modern frameworks and write beautiful code.

Companies like Amazon, Google, Yahoo and successful Indian startups pay upwards of $2,000/mo to great developers.

We have a small team in India and we pay $500 to $1,000 for off-site SEOs and $1,500 to $2,500 to developers.


My comment above goes into more detail but if you want the best Indian software engineers, you need to pay them more than another company would (just like in any other free market in the world). This is a constantly moving target.


Wow - you want to pay less than that for a software engineer who speaks English?


Yes, isn't that possible with direct hiring instead of paying more to go through outsourcing firms? My understanding is that roughly $500 monthly puts an Indian in the middle class. Double that and I figure we would be really attractive to young, entry level programmers.


Those outsourcing firms usually pay between $300 to $1,000 to developers. They usually hire bad programmers who do not understand fundamentals and write spaghetti code from an ancient era.

This salary isn't attractive to good programmers any more.


You're not in middle class if you need your month's wage to buy a smartphone.


Maybe not in America but India's different and remember, smart phones made in third world countries have different markups since manufacturing is cheap and nearby.


Smartphones and other electronics are more expensive in India, almost twice of US prices.


You'd be wrong there. Middle class in India starts at less than a decent smart phone's cost.


From my experience, and I started all my projects with freelancers. I was very lucky with russian and ukraine developers but also polish & czech developers seem to have kind of the right working attitude.

The main issues I had with indian developers is the "yes yes culture". It seems that their culture does not allow to say "no, it won´t be ready" or "no, it will take longer...". They always say "yes, sir", "for sure, sir". this is something I can not work with.


Setting up a remote team of developers anywhere in the world purely to save on costs isn't worth it.

You should hire remote because you simply don't have access to the talent locally, or can't assemble a local team quickly enough. And you should have at least one seasoned technical leader who's worked with a distributed team before to guide you through the process.

Hiring remote devs halfway around the world because you can save 80% on wages is a pennywise and pound foolish decision.


Thanks for your feedback. Just curious... Have you tried it or do you have some sort of negative experience with remote devs? I'm going to need to do something sooner or later.


My 2 cents, from what I've been able to gather, the best resources in other countries are being paid comparably to US, or they've already migrated or set up a work visa with a US company. Talented developers know they're talented and will seek out other people who can weed them out from the group. It is a rare case that you run into a highly qualified developer in any country who is working for pennies on the dollar.


What about taking advantage of the back log of denied or pending, highly skilled U.S. Visa applicants? It seems to me that tech companies can't import them fast enough. I'm thinking it's time to go to the source instead.


It will be interesting to see how this goes for you...


I've never worked with a team in India, but I do have experience with outsourcing to eastern Europe. I don't doubt the other comments that say it can be done, but in my experience it's tough.

The development cycle goes roughly like this: - Early morning call to discuss requirements - E-mails over the course of the morning covering parts of the same requirements - Next morning call to discuss the same requirements (seems like we've got it this time) - Code review uncovers missing requirements...

Between the time difference, the multiple hand-offs and the communication problems we would spend an order of magnitude more time on a task than it would take an in-house resource.

I don't think it's completely impossible to get the formula right, but you need to be explicit about everything, which doesn't really work in an agile development cycle made of tight feedback loops. However, if you're operating a more waterfall process and are able to code up a suite of acceptance tests, it could be workable.


> but you need to be explicit about everything, which doesn't really work in an agile development cycle made of tight feedback loops.

We're a scrum team based in Oceania working for a German firm, and we have had similar issues which we've resolved by usage of proxy product owners and regular backlog groomings.

It'd doable, but it takes some investment in relationships and knowledge.


It depends on what kind of project you want the developers in India to get done, combined with the location(city) in India that you are planning to have your team work out of.

If its something like a mobile-first product, it will be better if you can have one of your trusted team-mates, who understands both the product and the aesthetics of your product, sit in India and operate the team: the reason being this team-mate will need to be hands-on with the developers on the product features and also add a lot of value on the aesthetics of the app.

In most cases, the developers in India lack these skills. As long as you are able to address that, you will be good.

The other most important question to ask yourself - are you looking at this team simply to save your development costs (or) are you looking to really collaborate with them and look at them to add value to your product? If its the former, then a lot of brickbats are thrown when the deliverables are getting delayed and you may end up in a bad state and write negative reviews about developers from India. But if you look at the India based team to add a lot of value to your product, then the guys will go any end to deliver the product for you. It becomes a happy ending for everyone. In this case, you wont even mind the 10-12 hour timezone difference.


Great tips, thanks! I'm really looking to collaborate with them as equals, not merely remote assistance. It just seems like a great people policy.


Its really good then. I am so happy to hear that. Hope you identify a great set of developers / testers with whom you can collaborate with. Let me know if you need any assistance. I have done that before for a couple of product companies in the US and one in Singapore... Will be more than happy to help you.

Also, wishing you a great success with your product.


My friend, of East European descent (immigrated to the US as a teen), has started a company with a small number of software engineers from his home country. He is US-based and seems to be having success with these engineers building a platform and finding business.

The big win though is that he speaks the language and has direct hired his employees. This could be a catch for you if you are considering working with an outsourcing company. My friend is successful with his hires because he has the intangibles in place - speaking the language, occasional trips back to visit with them, works hard to direct hire (and keep) smart engineers, and he is personally vested in making sure he shares the "spoils" of the business with his employees. He also hacks on the platform, although not as much as in the beginning.

It sounds like you are considering a similar option, so you might be successful. You'll be putting in a lot of time though - frequent conference calls, code reviews, dealing with the occasional bad-fit, etc. In many ways, I think it would be harder than finding someone local to you.


Thanks for your feedback! I'm not an Indian native but I am taking language classes in anticipation of doing something in the future. I'm hearing that it really depends on the people.


Don't forget (and this applies to any outsourcing contract, anywhere in the world), the first people you encounter will be the A-grade talent.

Once the project kicks off the they will one-by-one be moved off to the next deal, and replaced with less experienced juniors and trainees.

You can try to contractually lock in particular people, but that's impossible to guarantee if the team is remote.


I totally agree with this. This has happened at two places where I worked. We had to bring back development in house because once the project got started the main guys we talked to the first time where no where to be found.


Thanks for the tip!


It really depends on whether you want to outsource development or actually want a remote (but in house) dev team in India.

Most comments here are already inherently considering the remote team to be code monkeys who will churn out software based on specs. There is no magic here, to get good code, you need devs who are invested in the idea, and not second class citizens in the company.

Invest the same amount of resources into hiring people as you would here, pay not just a good but a great salary, make the Indian office a good place to work, where employees actually have a ladder to climb and have input in the product, and all this can work.

And yes, that most likely means having someone on the ground in the early days.

You can't expect in attract great talent with half assed hiring measures and an intent to get code on the cheap. Those people are happy doing their own startups or working somewhere else.


You hit it, thanks! Not interested in outsourcing, per say. My goal would be to leverage low market wages in India by setting up a foreign office with it's own management etc.

How far above average pay do you think I would have to go?


I've worked with teams in India (and Poland, US, UK, Australia, Spain) for several years and quality depends on how well you manage the hiring and how well you manage the communication - remembering that communication is harder with anyone the farther you are away from being in the same room with someone. You may need to hire someone local to you to do this for you as communication is a full time job (a solution architect is the sort of role you'll need).

Don't expect miracles, 'cause miracles cost money - but it's got a 50/50 chance of working out OK.


What I know is that the quality of their code is very outdated and even being cheaper to hire you are going to spend lots of money fixing the code.

Nothing like having quality code!


Thanks, are you saying they tend to be lower quality coders or just outdated coders? Maybe you're saying both. We're talking as more or more than 80% worth of discounts in compensation packages when compared to American programmers.


Possibly cue South Park Super Cool Ski Instructor meme. If your first-stated reason "to talk" is "more than 80% worth of discounts", then you're going to have a bad time if the work you are outsourcing is at all highly-skilled. For highly-routinized process work by ops staff, sure, knock yourself out; but you're going to find extremely qualified folks for that in the heartland of the US working for wages competitive with the offshore outfits as well.

How logical is it that you will find someone smart enough to hack full-stack or even a Fabrice Bellard-grade hacker, but not savvy enough to sift through sales channels until they command a rate commensurate with their demonstrated delivery capabilities? This is unicorn-hunting. They do exist, you can land them, but in the meantime your competitors are focusing on Getting Shit Done by not wasting time trying to prematurely optimize their expense structure. If these unicorns were so easily abundant, and if it was that easy, then Google would have long since abandoned recruiting at American universities.

You might have better results if you specified in more detail what you are looking for. Generally, my experience is that coding talent is roughly evenly smeared across the global pool; I'm looking generally for devops types that know their OS's, basic data and control structures in an Algol'ish language (scripted and/or compiled), and work well when customer-facing. There isn't enough difference between geographies to alter the basic recruitment search strategy though tactics will differ (the technical culture is relatively consistent across the globe). Not enough difference to yield dramatically better returns at least, so nationality won't determine whether you get "lower quality" or "outdated" coders. In my experience, individuals' personalities and company culture has a far greater impact on code quality than nationality or ethnicity.

In my market space, given how long it really takes to absorb a significant technical base, on the order of 12-18 months, I'm not inclined to "yield chase" by trying to find cheap technical staff with a turnover that is frequently sooner than that spin-up time before truly insightful work from them starts to get traction. YMMV, so please share your details.


"quality of their code is very outdated" ??

What does that mean exactly? "Outdated" is not an adjective usually applied to "quality".


Quality techniques evolved over time. So, outdated might mean untestable code with lots of static globals, #define's, no IOC, written in a way that makes unit tests impossible to write, circular dependencies, etc. These were once considered normal characteristics of code.


I am 1 of only 2 people on a 10 person remote team from the US. The rest are from India and Mexico.

Our team is finally okay after a year of people quitting, getting let go, or just not working out.

It doesn't help that my boss just lets new people check anything into our dev repo without having our project manager look it over first...which has halted development more times than I can count.

The most common thing is that people just don't know how to use git.


Offshore indian programmers are one of the best to rely on:

http://toprate.org/FILES/programmers.jpg




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: