The author forgot to mention how much he paid for the offshore team. There was no mention of money in the things that went wrong. I think the cost is a very important factor if you expect a high quality project.
I have seen many people who bash India and Indian engineers for low quality work, but lets get to the crux of the problem. Its not that Indian engineers are all bad. They come in all shapes and sizes. You will get the best ones if you pay enough. You pay cheap, you get cheap.
Where can you get cheap ones ? From those big IT companies who treats employees as resources. The employees in turn will also treat their jobs along those lines.
So if you need high quality work, please don't go to these giant corporations. If you look hard enough, you will find small high quality places, but they are not cheap and not 'scalable' like your manager wants them to be.
The last time I managed outsourced developers I made this joke.
"There are some truly amazing Indian developers, it's just a shame none of them are in India".
My observation was that the outsourced developers I managed, the good ones usually got visa's and buggered off abroad even though they where getting near UK wages in India they could earn more by moving.
This statement screams failure - "We would have one week to recruit developers from our company's off-shoring pool and then two weeks to coach the team."
Basically, they were forced by their corporate entity to hire people that did not have the right experience and then train them in two weeks? <sarcasm> Sounds like a recipe for success! </sarcasm>
I've been in the position before where I had to work with a staffing firm and the majority of the resumes they provided were not a fit in any shape or form. Management did the smart thing and we found somebody else who could give us a better pool of candidates.
In my experience with off shore development I found the people I worked with to be extremely hard working and eager to learn. The programming was never the problem, the problem was the lack of understanding the business use cases of what we were building. Because they had no proximity to the business problem we were attempting to solve, they had a hard time making the right decision on their own. Specs had to be very, very detailed.
> From those big IT companies who treats employees as resources.
I've worked in those companies, they do treat employees as resources. I was amazed how executives, RH and even Project Managers refered to developers literally as "resources", example: "We are happy to announce we have five new resources in project X".
No one seemed to care, that mentality was just sad.
Any outsourcing firm, though, has a basic dilemma. Even firms that outsource to other expensive US locations.
It's the bait and switch. They give you the top talent at first, to make the sale. Then they slowly swap them out, because they are trying to use the top talent to close a sale with a different client.
There's no real way to remove that incentive. You can try, but the time and energy needed usually invalidates the initial business case.
The author says they spent a million euro for a year. Even assuming that includes the one FTE in Germany, for 10 devs in India, they definitely weren't paying bottom dollar.
Running my own startup I have one absolute rule: If you are not an expert in it, then don't outsource.
I outsourced my business and marketing to team in US/UK and it was an absolute disaster. Took me long to realize that you can only outsource tasks which you have expertise in and which can be measured.
Most of us are not the ones making the decision to offshore, or the ones choosing the firm to outsource to. Most of us are likely the ones that have to deal with the output.
BitKeeper guy here (predecessor to Git and Hg). If you think about the capabilities of a distributed source management system you can quickly see it's an enabler for out-sourcing.
As a commercial DSCM provider, we got to watch a lot of out-sourcing attempts.
In 18 years of doing that, I've only seen one really successful one. Which was a Portland based dev team and a Singapore based test team. Every day, the dev team would check in their stuff (or make it available in a test tree) and the Singapore team would wake up, pull it, test it, document the failures, the Portland team would wake up fix and dev some more, lather, rinse, repeat.
As I recall, the Singapore team was out-sourced, different company, but they had a stable group of people dedicated to working with the Portland guys. It was more like two teams working on the same project.
I've seen countless efforts based on "I can get 3 guys in India for what I have to pay one junior guy here" fail. The time difference makes communication hard, you have to send someone to manage the India guys and communicate what you want, there is zero loyalty, if a better gig comes along all the time you put into onboarding those guys is lost, the quality of the code is pretty crappy, etc.
In business, even in the US, there is almost never loyalty. Or, perhaps more precisely: In business, you have to buy loyalty.
I guarantee that there is a price at which you could buy a very stable, very competent team in India. But then it wouldn’t be super cheap outsourcing any more, and the benefits aren’t so great.
If you want stability in your workforce, you gotta pay for it. Whether in cash, working conditions, or some other way.
Pay for cheap labor, get cheap labor. And don’t be surprised or disappointed that you got it.
This jives with what I've seen. One company I was at created a subsidiary company offshore and made the effort to hire FTEs. The offshore teams at that location were pretty damn good actually.
Yeah, the drawbacks of it being absurdly easy to get a "computer science degree" in India are real. And something I've also seen other major companies encounter is the total lack of any respect for IP law. If you want to get your app built cheap.... and then find your competitor running a reskinned identical version a month later... sure, outsource it.
That process worked for us too. We developed all day; the Indian team did full test sweeps their day and debugged issues; rinse and repeat. Trying to replace local devs with equal remote devs not so much.
> we needed to reject some candidates because we simply could not understand their English pronunciation.
That could be a mistake - If you find someone who has good skills, and would otherwise make the team, there are language bootcamps you can send them to, which will help with their English. I have sent people to them, and they ended up being wonderful members of my team, once we got past the communication barriers. If you are willing to coach on other topics, refusing to coach on communications is an odd choice.
For my part, when building an offshore team, I did a few things:
1) Brought them here for a couple weeks. Seeing how we work, and getting to know each other in person made a huge difference, including being able to get used to accents and mannerisms. Like any other team, it built trust, which goes a long way towards working well together.
2) I took lessons in Hindi. Never spoke it to them, never got fluent, and many Indians don't speak it anyway... but just trying to learn it helped meet in the middle on accents, and helped communications to the point that I often ended up translating between 2 English speaking people who just couldn't understand each other. And they appreciated having an American who would just laugh with them when we couldn't understand each other vs. getting frustrated and making them fear for their job.
Nice points. Unfortunately the type that is looking to offshore has a lot in common with those who are not interested in training or coaching at all. No, must "hit the ground running."
I imagine if you're hiring offshore workers you aren't working at a large tech company, and there might be a more standard work day which is expected to be adhered to.
For example, I doubt most of the time the IT or programmers working for a bank can expect to roll in at 10 or 11. Different jobs have different expectations.
The last two places I worked, the devs were expected in at 7:00am, and 8:00am. The second place gave you a five-minute grace period.
These weren't "tech" companies. They were companies in other industries. You're not going to find a lot of 11am devs in finance, healthcare, or manufacturing.
Considering these developers usually work with people in time zones west of them this is actually the expected time. 11AM would mean 7:30AM German time. Which would align much better with the German dev hours and make working together smoother.
I'm in at 9 or 10. In our remote offices, the devs are often in by 8am (partially because that's the only time of day when our hours overlap, and thus the only time when live communication is possible).
This was a real insightful look at how "clients" feel when coming down to India. There are some great points made on how things don't gel well together.
I have been on both side of the fence - both as a "resource" for an offshore client and contracting a team for work. If I reading this correctly the issue might have started from candidate selection itself.
You have to be strict when it comes to hiring. Startup scene has ensured a good developers are paid well. But most offshoring firms tend to keep the salaries low even for in-demand stuff like mobile app development.
So, offshoring pools can be dry. In which case, companies tend to fudge resumes or provide some low quality devs.
So, look out for people being unable to answer basic stuff, that is red flag 1. And if they are unable to explain their past projects, that is red flag 2.
Apart from that, there is another thing you have to answer - What is more important? Good candidate or quickly selecting one?
We had to spend 8-9 months looking for a candidate. We found one who fit nearly 80% of our criteria, even with the best pay possible.
But when we tried building a team quickly - the overall pay rose exponentially.
IMO, a better idea is to open an offshore center and fester a culture that you want. It is difficult to ask people to follow one company's culture while they are working in another.
I owned a company that provided off-shore services to companies in the US, it worked perfectly.
If you are doing off-shoring, you really need to insist on the independence and the ability to speak up of the team, it doesn't work if you get yes-men, sadly that's the general case for India-based offshore companies
It's an old, old story; middle management's never ending quest to commoditize and automate software development. They'll never accept software development has almost no commonality with assembly line work. But they keep trying.
Although I never got an explanation, their managers were probably selling their employees to multiple projects. I've heard that this happens from people working there.
Offshore developers from a body-shopping company who are shopped to multiple customers is common. I've seen it happen multiple times in different countries.
I have over a decade of experience trying to make off-shore development work with several off-shoring companies, one of which was a wholly owned subsidiary (to avoid the various overbilling strategies). I've never been convinced it is worth it overall. The semi-irrational insistence on off-shoring was actually one of the primary reasons I quit my last job.
> But that was very exhaustive and couldn't obviously go on like that forever. Then we switched to weekly meetings, reviews were mostly done by their team lead.
That's where you went wrong first. You let go of the responsibility and handed it over to people who did not necessary have your best interests in mind. Quality, schedule, outcomes etc need to be managed, and managed so problems can be picked up early.
Secondly "It turned out that from those 8-9 developers we hired, at the end of the project only 3 of them were actually committing code. Although I never got an explanation ...", point to another management issue.
I am sitting in a country with a reputation for being an outsourcing hub, I am from the western world and I can tell you that there are many talented developers. The problems are the same as I have had with managing western teams, personal issues, skill levels etc though some of higher or lower impact. But the basic fact remains, the further you distance yourself from responsibility the greater the risk of failure.
I always thought this. However, it seems like this would require a lot of direct management. Who was the PM for you - was it you? if not, was she/he local to the devs? What was your timezone?
My struggle with offshoring to India (from PST) is that the nearly opposite timezone affords minimal overlaps, and thus either the offshore personnel or the local person managing would have crappy hours.
There’s a right way to do this and a wrong way to do this.
More than a decade ago I started out as a developer on an offshore team for a US based product startup. We grew from 2 people to 19 people and the US based company did well in its market and got acquired in a successful exit a few years later.
There are numerous success stories like this for every engagement gone wrong.
Now days I run an India based offshore team from Europe. The cost model has changed dramatically over time, but the premise that you can ship quality code with an India team is very much viable. Every large tech company does it. I’m happy to chat offline if you want.
I've hired a lot of remote developers over the years and it has pretty much been a flop 2 / 3rds of the time. I had some reasonably good success with Columbian developers a few years back, but the two most outstanding devs I hired on a remote basis were based out of Utah and Connecticut.
I hired one a few months ago from Ukraine who absolutely blew the competition away when it came to the coding test, but then failed to actually put in the work hours when he started the job.
Any advice for interviewing / hiring remote devs that don't suck?
I’ve heard and read so many “here is how my offshoring went wrong” (or even just outsourcing locally), that I am really looking for successful examples and what one can learn from them.
I'm currently working with two developers off-shore (through Upwork). I've used off-shore in the past for small jobs, basically to MVP a feature or so.
For example, I currently have someone building a small raspberry pi program that takes RFID input, and posts the ID and date to our API. I want to demo this to some clients and if it's well received, we'll build it out fully.
I think offshore can be great for small projects like this, I have no experience with larger, longer off shore projects.
I work as offshore / remote consultant with entrepreneurs and small-medium sized companies in the US. Some of these clients are working with me since 5-6 years.
I don't think it matters where people are as long as there isn't some hindrance to their work ethic or shady work schemes going on. You simply have to be due diligent AND be a tech lead at the same time. You cannot offshore that part. No way. Instead, you directly know each person working on the project and directly work with them, while providing guidance to the entire team. (Directly meaning on Slack since its offshore) For example, a coder puts out something sub optimal. You then correct that code, then go through this with your coder in a constructive way why this way is better and more efficient, while also noting to the group here is an example of X where you do Y. I make repos specifically for projects to refer to as example code scenarios that commonly crop up. For example, here's how you do a background image on a flexbox that auto sizes itself or here's how you destructure a promise.all easily, or here's a baseline project to start from with basic bones and structure to work from. You have to really guide and lead and there is no easy button where more time spent is the trade off of the cost savings.
In India hiring decisions, on any level, are mostly based on which college one comes from, how many random buzzwords one can speak, and not based on the actual skills one has learned during college or picked up at work. People 'learn' things by reading nuggets from interview prep sites, they memorize things and repeat like a tape-recorder during interviews. No wonder their 'understanding' is non existent.
At one end of the spectrum are people who come from 'premier' colleges (term invented by HR folks, I guess), like the IITs and NITs. Although these institutes produce some brilliant minds, the majority of graduates have no skills whatsoever. Most of the skilled ones go abroad while the'unskilled' ones get hired in India. So it's not uncommon to come across people, who have fancy titles, get paid insane salaries (by Indian standards) and who have been selected through 'rigorous' technical interviews to fumble when writing a simple application program.
At the other end of the spectrum is a huge number of people graduating from private colleges. The quality of teaching and learning at these colleges is abysmal. Most of them end up at one or other 'IT giants' doing menial maintenance work and earning a pittance.
The salary varies a lot across the spectrum but the quality of work is equally bad. Their approach to programming, and problem solving in general, is trial-and-error combined with some Googling. As the author points out the code that is produced by these 'engineers' and 'programmers' is compiler-ready not production-ready.
Of course there are exceptions too. A small minority of people who stay back in India working for startups or as freelancers are amazing at what they do irrespective of which college they went to or how they learned to program.
When you're sampling from this pool, your hiring process has to be ingenious or you end up with insurmountable technical and financial debt.
Another approach would be to start with one developer living in europe/US already but wants to live in India. Example: I have an Indian friend who was working in Seattle but ultimately wanted to go back to India. He found a job where he started at the headquarters on the east coast for a few months then moved to India to build a team there.
The key thing is patience on these projects and paying people well. FWIW I'm impatient and when I had a similar discussion with management as in the blogpost I openly said it was a bad idea and found myself laid off months later. The company eventually had changes in upper management and closed it's India design center.
A plug and play never works when it comes to scaling engineering function through not just india but anywhere.
One must invest from a long term standpoint. Offshoring isn't a shortcut to scaling, its better from cost perspective.
Its best to first get someone on the team who knows local ecosystem(offshore) and is good fit from your culture standpoint. Its a harder process but once you get this right you are most likely to succeed.
I'm from SF. Living in Saigon now for almost 2 years. Lots of people reach out to me to 'offshore' here because they hear that VN devs are pretty good and salaries are a fraction of the Bay Area.
What I've learned is that Vietnamese developers are generally smart and hard working. There is a lot of young hipster attitude. They don't suffer from some of the same cultural issues I've seen in other countries. They have their whole own baggage here. ;-) They really love the latest technologies and strive to keep up to date on things. At the end of the day, it is quite hit or miss, but that could really be said anywhere.
In the past, I've never really been a huge fan of offshoring, but with the right company, I've seen it work here on several occasions now. If you're willing to pay a bit more (but still way less than the bay area) for the better dev houses here, you can really get some quality work done.
Off-shoring is hard. But it can be done right. It requires honest intentions and a commitment of enough financial resources. If a firm is off-shoring simply to get the cheapest devs, its not going to work.
One of the first companies I worked at had an India office even though the company was pretty small (~50 engineers in total). The Director of the India office was good at recruiting good engineers and they were paid much above market rates for the city they were based in (still less than what US based developers were making). This situation worked out best for everyone. The only problem was when scheduling long face to face meetings, which had to be done either super early or later in the night. But I felt it was a small price to pay to get to recruit a lot of good talent.
Do the Indian developers get "cross-cultural training" in how to deal with Americans, Germans, or other people from 'hiring' countries, or is it assumed that only the Europeans and Americans have the aptitude to accommodate unfamiliar cultural expectations?
I am sure they do, it is very common to have cross-cultural training. Go back 30-40 years and the Japanese and Korean professionals were getting cross-cultural training to work with US teams.
Most MBA programs also include this kind of thing regardless of what country you get your MBA in.
Of course you get a lot of generalities like:
- Americans like fast decisions
- Americans would rather fix a wrong fast decision after the fact than wait to make the decision
- Europeans generally prefer analysis and deliberate decisions
[+] [-] t1o5|8 years ago|reply
I have seen many people who bash India and Indian engineers for low quality work, but lets get to the crux of the problem. Its not that Indian engineers are all bad. They come in all shapes and sizes. You will get the best ones if you pay enough. You pay cheap, you get cheap.
Where can you get cheap ones ? From those big IT companies who treats employees as resources. The employees in turn will also treat their jobs along those lines.
So if you need high quality work, please don't go to these giant corporations. If you look hard enough, you will find small high quality places, but they are not cheap and not 'scalable' like your manager wants them to be.
[+] [-] noir_lord|8 years ago|reply
"There are some truly amazing Indian developers, it's just a shame none of them are in India".
My observation was that the outsourced developers I managed, the good ones usually got visa's and buggered off abroad even though they where getting near UK wages in India they could earn more by moving.
[+] [-] apohn|8 years ago|reply
Basically, they were forced by their corporate entity to hire people that did not have the right experience and then train them in two weeks? <sarcasm> Sounds like a recipe for success! </sarcasm>
I've been in the position before where I had to work with a staffing firm and the majority of the resumes they provided were not a fit in any shape or form. Management did the smart thing and we found somebody else who could give us a better pool of candidates.
[+] [-] debaserab2|8 years ago|reply
[+] [-] GFischer|8 years ago|reply
I agree, you get what you pay for.
[+] [-] elboru|8 years ago|reply
I've worked in those companies, they do treat employees as resources. I was amazed how executives, RH and even Project Managers refered to developers literally as "resources", example: "We are happy to announce we have five new resources in project X".
No one seemed to care, that mentality was just sad.
[+] [-] tyingq|8 years ago|reply
It's the bait and switch. They give you the top talent at first, to make the sale. Then they slowly swap them out, because they are trying to use the top talent to close a sale with a different client.
There's no real way to remove that incentive. You can try, but the time and energy needed usually invalidates the initial business case.
[+] [-] fitpolar|8 years ago|reply
That should provide ballpark figures, and that doesn’t seem underpaid. Unless pay was split unfairly by the “hierarchy”.
[+] [-] x0x0|8 years ago|reply
[+] [-] ganeshkrishnan|8 years ago|reply
I outsourced my business and marketing to team in US/UK and it was an absolute disaster. Took me long to realize that you can only outsource tasks which you have expertise in and which can be measured.
[+] [-] xienze|8 years ago|reply
No you won’t, all the best Indian developers are somewhere else, getting paid more than they could ever hope to in India.
[+] [-] s73v3r_|8 years ago|reply
[+] [-] luckydude|8 years ago|reply
As a commercial DSCM provider, we got to watch a lot of out-sourcing attempts.
In 18 years of doing that, I've only seen one really successful one. Which was a Portland based dev team and a Singapore based test team. Every day, the dev team would check in their stuff (or make it available in a test tree) and the Singapore team would wake up, pull it, test it, document the failures, the Portland team would wake up fix and dev some more, lather, rinse, repeat.
As I recall, the Singapore team was out-sourced, different company, but they had a stable group of people dedicated to working with the Portland guys. It was more like two teams working on the same project.
I've seen countless efforts based on "I can get 3 guys in India for what I have to pay one junior guy here" fail. The time difference makes communication hard, you have to send someone to manage the India guys and communicate what you want, there is zero loyalty, if a better gig comes along all the time you put into onboarding those guys is lost, the quality of the code is pretty crappy, etc.
Pretty quickly it becomes not worth it.
[+] [-] compiler-guy|8 years ago|reply
In business, even in the US, there is almost never loyalty. Or, perhaps more precisely: In business, you have to buy loyalty.
I guarantee that there is a price at which you could buy a very stable, very competent team in India. But then it wouldn’t be super cheap outsourcing any more, and the benefits aren’t so great.
If you want stability in your workforce, you gotta pay for it. Whether in cash, working conditions, or some other way.
Pay for cheap labor, get cheap labor. And don’t be surprised or disappointed that you got it.
[+] [-] le-mark|8 years ago|reply
[+] [-] otakucode|8 years ago|reply
[+] [-] JoeAltmaier|8 years ago|reply
[+] [-] codingdave|8 years ago|reply
That could be a mistake - If you find someone who has good skills, and would otherwise make the team, there are language bootcamps you can send them to, which will help with their English. I have sent people to them, and they ended up being wonderful members of my team, once we got past the communication barriers. If you are willing to coach on other topics, refusing to coach on communications is an odd choice.
For my part, when building an offshore team, I did a few things:
1) Brought them here for a couple weeks. Seeing how we work, and getting to know each other in person made a huge difference, including being able to get used to accents and mannerisms. Like any other team, it built trust, which goes a long way towards working well together.
2) I took lessons in Hindi. Never spoke it to them, never got fluent, and many Indians don't speak it anyway... but just trying to learn it helped meet in the middle on accents, and helped communications to the point that I often ended up translating between 2 English speaking people who just couldn't understand each other. And they appreciated having an American who would just laugh with them when we couldn't understand each other vs. getting frustrated and making them fear for their job.
[+] [-] mixmastamyk|8 years ago|reply
[+] [-] iooi|8 years ago|reply
How is that late? It's not rare for some developers to get in between 11am-12pm in the large tech companies I know about/have worked at.
[+] [-] teachrdan|8 years ago|reply
[+] [-] kbenson|8 years ago|reply
For example, I doubt most of the time the IT or programmers working for a bank can expect to roll in at 10 or 11. Different jobs have different expectations.
[+] [-] reaperducer|8 years ago|reply
These weren't "tech" companies. They were companies in other industries. You're not going to find a lot of 11am devs in finance, healthcare, or manufacturing.
[+] [-] addicted|8 years ago|reply
[+] [-] khedoros1|8 years ago|reply
[+] [-] thisisit|8 years ago|reply
I have been on both side of the fence - both as a "resource" for an offshore client and contracting a team for work. If I reading this correctly the issue might have started from candidate selection itself.
You have to be strict when it comes to hiring. Startup scene has ensured a good developers are paid well. But most offshoring firms tend to keep the salaries low even for in-demand stuff like mobile app development.
So, offshoring pools can be dry. In which case, companies tend to fudge resumes or provide some low quality devs.
So, look out for people being unable to answer basic stuff, that is red flag 1. And if they are unable to explain their past projects, that is red flag 2.
Apart from that, there is another thing you have to answer - What is more important? Good candidate or quickly selecting one?
We had to spend 8-9 months looking for a candidate. We found one who fit nearly 80% of our criteria, even with the best pay possible.
But when we tried building a team quickly - the overall pay rose exponentially.
IMO, a better idea is to open an offshore center and fester a culture that you want. It is difficult to ask people to follow one company's culture while they are working in another.
[+] [-] dedsm|8 years ago|reply
If you are doing off-shoring, you really need to insist on the independence and the ability to speak up of the team, it doesn't work if you get yes-men, sadly that's the general case for India-based offshore companies
[+] [-] 0x445442|8 years ago|reply
Fast, good, cheap; pick any two.
[+] [-] andrei_says_|8 years ago|reply
[+] [-] Joeri|8 years ago|reply
Offshore developers from a body-shopping company who are shopped to multiple customers is common. I've seen it happen multiple times in different countries.
I have over a decade of experience trying to make off-shore development work with several off-shoring companies, one of which was a wholly owned subsidiary (to avoid the various overbilling strategies). I've never been convinced it is worth it overall. The semi-irrational insistence on off-shoring was actually one of the primary reasons I quit my last job.
[+] [-] iAMAGuest|8 years ago|reply
That's where you went wrong first. You let go of the responsibility and handed it over to people who did not necessary have your best interests in mind. Quality, schedule, outcomes etc need to be managed, and managed so problems can be picked up early.
Secondly "It turned out that from those 8-9 developers we hired, at the end of the project only 3 of them were actually committing code. Although I never got an explanation ...", point to another management issue.
I am sitting in a country with a reputation for being an outsourcing hub, I am from the western world and I can tell you that there are many talented developers. The problems are the same as I have had with managing western teams, personal issues, skill levels etc though some of higher or lower impact. But the basic fact remains, the further you distance yourself from responsibility the greater the risk of failure.
[+] [-] gabept|8 years ago|reply
We found extremelly talented people that were underpaid, dislocated and suffocated by a toxic and outdated culture.
[+] [-] r00fus|8 years ago|reply
My struggle with offshoring to India (from PST) is that the nearly opposite timezone affords minimal overlaps, and thus either the offshore personnel or the local person managing would have crappy hours.
[+] [-] carlsborg|8 years ago|reply
More than a decade ago I started out as a developer on an offshore team for a US based product startup. We grew from 2 people to 19 people and the US based company did well in its market and got acquired in a successful exit a few years later.
There are numerous success stories like this for every engagement gone wrong.
Now days I run an India based offshore team from Europe. The cost model has changed dramatically over time, but the premise that you can ship quality code with an India team is very much viable. Every large tech company does it. I’m happy to chat offline if you want.
[+] [-] maxk42|8 years ago|reply
I hired one a few months ago from Ukraine who absolutely blew the competition away when it came to the coding test, but then failed to actually put in the work hours when he started the job.
Any advice for interviewing / hiring remote devs that don't suck?
[+] [-] unknown|8 years ago|reply
[deleted]
[+] [-] lowken10|8 years ago|reply
Early on were some of them terrible developers? Yes, but so are many United States based Developers.
Now 15 years later I can tell you that my India based coworkers are some of the best developers that I've ever worked with.
[+] [-] beagle3|8 years ago|reply
[+] [-] giarc|8 years ago|reply
For example, I currently have someone building a small raspberry pi program that takes RFID input, and posts the ID and date to our API. I want to demo this to some clients and if it's well received, we'll build it out fully.
I think offshore can be great for small projects like this, I have no experience with larger, longer off shore projects.
[+] [-] wordpressdev|8 years ago|reply
[+] [-] sebringj|8 years ago|reply
[+] [-] farhanhubble|8 years ago|reply
At one end of the spectrum are people who come from 'premier' colleges (term invented by HR folks, I guess), like the IITs and NITs. Although these institutes produce some brilliant minds, the majority of graduates have no skills whatsoever. Most of the skilled ones go abroad while the'unskilled' ones get hired in India. So it's not uncommon to come across people, who have fancy titles, get paid insane salaries (by Indian standards) and who have been selected through 'rigorous' technical interviews to fumble when writing a simple application program.
At the other end of the spectrum is a huge number of people graduating from private colleges. The quality of teaching and learning at these colleges is abysmal. Most of them end up at one or other 'IT giants' doing menial maintenance work and earning a pittance.
The salary varies a lot across the spectrum but the quality of work is equally bad. Their approach to programming, and problem solving in general, is trial-and-error combined with some Googling. As the author points out the code that is produced by these 'engineers' and 'programmers' is compiler-ready not production-ready.
Of course there are exceptions too. A small minority of people who stay back in India working for startups or as freelancers are amazing at what they do irrespective of which college they went to or how they learned to program.
When you're sampling from this pool, your hiring process has to be ingenious or you end up with insurmountable technical and financial debt.
[+] [-] seltzered_|8 years ago|reply
The key thing is patience on these projects and paying people well. FWIW I'm impatient and when I had a similar discussion with management as in the blogpost I openly said it was a bad idea and found myself laid off months later. The company eventually had changes in upper management and closed it's India design center.
[+] [-] mindhash|8 years ago|reply
A plug and play never works when it comes to scaling engineering function through not just india but anywhere.
One must invest from a long term standpoint. Offshoring isn't a shortcut to scaling, its better from cost perspective.
Its best to first get someone on the team who knows local ecosystem(offshore) and is good fit from your culture standpoint. Its a harder process but once you get this right you are most likely to succeed.
[+] [-] latchkey|8 years ago|reply
What I've learned is that Vietnamese developers are generally smart and hard working. There is a lot of young hipster attitude. They don't suffer from some of the same cultural issues I've seen in other countries. They have their whole own baggage here. ;-) They really love the latest technologies and strive to keep up to date on things. At the end of the day, it is quite hit or miss, but that could really be said anywhere.
In the past, I've never really been a huge fan of offshoring, but with the right company, I've seen it work here on several occasions now. If you're willing to pay a bit more (but still way less than the bay area) for the better dev houses here, you can really get some quality work done.
[+] [-] pm90|8 years ago|reply
One of the first companies I worked at had an India office even though the company was pretty small (~50 engineers in total). The Director of the India office was good at recruiting good engineers and they were paid much above market rates for the city they were based in (still less than what US based developers were making). This situation worked out best for everyone. The only problem was when scheduling long face to face meetings, which had to be done either super early or later in the night. But I felt it was a small price to pay to get to recruit a lot of good talent.
[+] [-] jrochkind1|8 years ago|reply
[+] [-] rpiguy|8 years ago|reply
Most MBA programs also include this kind of thing regardless of what country you get your MBA in.
Of course you get a lot of generalities like:
- Americans like fast decisions
- Americans would rather fix a wrong fast decision after the fact than wait to make the decision
- Europeans generally prefer analysis and deliberate decisions
- Japanese are consensus based and hierarchal
Etc.
[+] [-] dominotw|8 years ago|reply
[+] [-] GordonS|8 years ago|reply