My suspicion is, if they can, an individual will opt to go where he/she can earn more/get better experience than put up with the tasks typically handed over to the job shops (WiPro, etc)...Furthermore, given these firms are the ones that most US employers deal with, the view for outsourced labor will be clouded by this "narrow" exposure...
I myself work from my home in Bangalore, while my company is in UK, and I get paid well. I have had offers from US before, but I am staying - because I am trying to bootstrap a product as well on the sides, which won't be possible/easy when I am in US.
On that note I have a question for smg. I have not been able to figure out why there are so few Indian tech startups serving the Indian market. I can only think of naukri and makemytrip. Do you know why? I read somewhere that there are 120M Internet users in India now, up from 80M two years ago. Do you think it now makes sense for Indian web startups?
I'm not familiar with mobile startups in India though, so maybe there are a lot of those.
The Chinese market is stacked against foreign competition; I don't think that the Indian market is likewise restricted.
1. The total number of startups is going to be lesser due to redtape although I believe that is becoming less of an issue as time goes on.
2. It is probably perceived to be more lucrative to target the American market. I would think that a larger proportion of the ~ 120M internet users in India would be similar (young urban professional) and therefore easier to release products compared to the general public (cultural variations and interests make it harder to disrupt outside the cities).
Mobile usage is even higher as you know so it seems like mobile app startups could do really well. If the growth is happening in small towns/rural areas even better, no SV company is going to want to spend time in Gummmidipoondi to understand their target customer. I don't know if cultural variation is really an issue: look at iPad for instance, even a non-English speaker has a finger with which they can tap on the screen.
I've heard horror stories about red-tape, corrupt officials and so on from friends. But every time I've dealt with GOI officials they've been extremely helpful. Maybe I just got lucky.
Anyhow, beating the usual drum: don't be a cost center. Figure out how the business works and nobody will even consider outsourcing the projects you'll work on.
If you go with a company that is billing you less than that from India, you should know that your work will suffer because that company does not hire the best skilled coders.
Again your point just confirms fact that Western developers shouldn't worry about competition from India.
But they're having trouble filling positions at their salaries, most decent programmers here earn more than U$ 1.000 (I make U$ 1.500 myself, and want to make at least twice that, so I'm about to start my own company).
Exactly. It's easy for a tech person to get lost on the tech side of things. We have to remember that the business people really don't care how cool the algorithm was that we used to solve their problem. All they care about is that a) their problem was solved and b) it saved/made the company more money. In reality a tech person is going to be a stronger position than the pure business person because the tech person should also have the skills to implement. The business/tech hybrid who can see the business problems early on and has the tech skills to solve them will always be an invaluable asset.
- Although the raw number of 'programmers' in India is large, the percentage of good programmers is smaller than that in the US (anecdotal, as observed by me over ~10 years). So essentially, you get what you pay for because the good programmers can command (and deserve) salaries close to what their American/international counterparts make. Many of these better programmers are snagged by the Amazon/Microsoft/Google of world who have development centers in India.
- A lot (most?) of firms in India that employ programmers do not invest in educating/developing their employees' skills. This is partly the result of employees jumping ship very often (hence making the investment in their development not worth it), and partly the result of the business (they do one-time contracts and paid by the hour, so delivery == success. Quality/sustainability isn't as much of a concern).
- For a large percentage of programmers, career development is defined by a larger paycheck, not necessarily stronger experiences/skills. Therefore, their motivation is to switch jobs very often and do the same caliber/quality work, and yet make more money with each switch. So they too aren't motivated to excel.
Exactly. I think it has something less to do with India or the remote-ness than it has to do with choosing the cheapest possible team. Outsourcing is mostly premised on the idea that workers overseas are undervalued / perform the same task at comparable quality for less money. You wouldn't hire a US firm for 14/hr, but you assume that an Indian firm at 14/hr will be dramatically better. Once that's not true, the competitive advantage to outsourcing ends.
A lot of outsourcing to India started with Enterprise Java applications, MVC/CRUD type stuff that was simple, but also time consuming. So, it made sense to move the tasks that didn't take advantage of your strong programmers overseas to help with the burden. A number of outsourcing firms WiPro, Global Logic, etc. started with this model. Many, even well into the mid/late 2000s worked on these same Apps. It was their domain of "expertise". Teams were generally set up to have a "good programmer" as a lead/architect that was often your main contact and was responsible for one or more junior developers doing the work. Even if you had a strong set of requirements and a good relationship with the lead, implementation could suffer from the "chinese whisper" effect -- what you request gets distorted the further down the chain it goes. For CRUD apps that weren't performance dependent, this was fine.
As the push for outsourcing continued, from my experience, these formerly Java Enterprise app shops were asked to do more diverse projects. The majority of the ones I had to work with were a failure -- if they kept the same team structure -- i.e., remote lead who oversaw remote juniors. The biggest cause wasn't necessarily one of background, it was more turnover and drive. The churn was very high and developers were asked to do something boring or beyond their skill set (or, the still lingering issue of sticking to actual requirements).
One prior startup I was at outsourced non-core monitoring stuff that was a reasonable success. However, a local executive was all hung ho about outsourcing more core technology until a couple of us put our foot down and indicated the unaccounted overhead of the local work needed to fix things. That stopped that angle. At the same time, we had amazing success outsourcing targeted pieces -- an arm assembler optimization of a key piece of crypto code, being one.
The reason for the success? The coupling of a bounded small project that was sent to a team with that relevant skill set. This is the key area where outsourcing is successful. Bounded projects, targeted to a team with the relevant skill set, and good communications between them.
Where outsourcing fails is the generic skill set approach nd overhead that most of the big firms employ. Local management just sees the reduced dollar and doesn't account for the extra time -- to fix, to integrate, and to iterate on deficient deliverables.
This isn't an india / US issue. This is a good approach regardless of the topic. It just happens that India was the envouge outsourcing destination and the majority of US Management solely focused on the assumed reduced cost.
Source: A lot of my friends go through said 'training'. And I was that 'friend' who was called.
I have worked in extremely challenging projects which were billed for dirt cheap prices. Considering the cost at which finished the projects it was almost like we were giving our work for free. For every story like this there are a 100 good stories you will hear out here. There are also cases where people do endless work and those hours don't get billed. Yes, there are a lot of cases like this as well. There are 1000's instances where we do work without billing them because some one at onsite put a polite request. I used to work with a very senior person in the UK. During meetings he used to be shocked that we put that crazy hours and efforts for such low prices.
The problem some projects fail here in India is because of the same reasons they fails else where.
When you talk of all this, even manufacturing in China. You need to look that whole picture and then see how the statistics work. At volume, and that scale of economy, If you measure No of Failures Vs No of Success and measure them against money saved. It's a very different story.
One project failing somewhere doesn't talk of the whole outsourcing story.
Meme against Indian is "Indians are taking our jobs by unfair means like working below sustaintable rates".Meme by Indians is "This guy is here to boss us around and confuse us just because he happens to be on the client's payroll."
Even some of the largest consultancys here in the UK will get grads from non tech background, send them on a few Java cources and hire them out at £1000 a day.
I fixed the title for you. Next time try and avoid generalizing entire countries.
Good programmers in India, like good programmers everywhere, cost more than bad programmers. If you would like to hire a decent shop, there are boutiques and larger firms available, but they will charge $40-50/hour, not $15. The problem isn't in the outsourcing, it's treating development like a $15/hour commodity. We all know that it doesn't work that way.
The author described paying an hourly rate for their offshore developers that was 10% of the local rate. If you compare the salaries of good developers in places like Bangalore to developers in more wealthy countries like the US, you will find that the difference is not that vast--maybe 25-40%, not 10%. If you would like to hire these people, expect to pay corresponding rates and receive good-quality work.
And don't let anyone tell you that you need crystal-clear requirements; pay for a qualified local business analyst and expect to spend a lot of time on the phone with them.
And at that point it's just easier to hire local developers.
I just don't get the push to hire cheap people. Even if you do find someone who is a rock star in the Philippines for cheap they might work for 3-6 months before job hopping again. Any sizable business is going to have systems and businesses processes that take time to learn and if you're constantly churning through people you end up not getting much real work done.
Unfortunately, it's because you're a programmer that understands the actual cost of software development. Believe me, there are many "business" people that don't understand software and never will. They see stories on the news of teenagers developing million dollar iPhone app in a weekend and think "Wow, this must be so easy."
And because they don't understand the difficulty (especially with larger systems) they don't understand why paying one developer $75/hr is probably better than paying one $15/hr. (I say probably because I have come across people charging high rates that weren't really that productive). As a business person who probably can't be that much more productive than the next person, they don't understand how a programmer could really be more productive and get things done in much less time.
To give you an example. On my last contract I was hired near the start of the project. And even though it was near the start, I could tell from the code that this was headed towards a disaster. Eventually I got things cleaned up and got it released for them and they are making money from it. They went through 5 other developers and I ended up being the only one near the end. I left shortly after one of the company owner's comments got passed down to me. He said "Why are we paying this guy so much when we could just hire high school students at $10/hr."
People like that will just not understand the difference and look only at the hourly rate.
And at that point it's just easier to hire
 I've never interviewed at any of those so maybe I'm scraps. Every company I've worked for though is still using my software internally to make them better than their competitors.
As a salaried position, it's plenty of course...
All these side expenditure and head ache in managing them saps a lot of money and people.
A lot of people feel its better to some money and have others do it for you. Than you doing it. Especially if that job is not your company's core expertise.
After corporate/employment type taxes and run of the mill expenses you would not incur as an employee, that's about 80k.
80k for lawyer-hours is not worth it. (2000 billable hours is a common law firm quota)
(To bill 2000 hours a year, you have to work much more like 3-5k hours, really expect to bill more between 1200-1600).
Not that people should undersell themselves, but there are smart people around this country that may be looking for a gig that are losing out on services like Elance/Odesk (if they even know about them) because $15/hr sounds like a good deal.
The crux of the problem is that working with a remote team is a very different proposition than working with people onsite - a fact that is obvious but that people generally fail to act on.
Quite often at my company we're contacted by clients want to hire folks in a foreign country and expect them to work like remote employees, but cheaper, and with fewer legal responsibilities. They think that through the wonders of Skype and email, people in India (or South America) can work just like on-site employees.
The reality is that outsourced development to remote teams only works when the client is willing to adapt their own work patterns to it. As a client, you need to:
* Have a crystal clear idea of what you want built. The less communication overhead you have with the remote team, the easier your life will be, and the more likely it will be that stuff gets implemented the way you want to.
* Have frequent and early deliverable dates. Don't start a project that will take 6 months to get a first release out with a remote team. Shoot for as early a release as possible, followed by frequent small releases. This lets you pull out almost whenever you want and also reduces the likelihood of burning out the developers on the other side.
* If you already have a company with a bunch of people, have the remote developers work outside your regular dev cycle. Don't expect to plug in a couple of guys located 5 times zones away into your regular team, unless your regular team is already distributed.
* Be linguistically very compatible with the folks you're outsourcing to. If you have any difficulties understanding or being understood by the folks you're hiring, then you're significantly increasing your risk.
The well known Ruby consultancies like Pivotal, Thoughtbot and Hashrocket will all tell you, that outsourcing to foreign countries is a mistake, and that developers need to be on-site. This, of course, while basing a huge amount of their business on Rails and a bunch of other open source libraries and frameworks which are developed almost entirely by distributed teams. These companies have an economic incentive to lead people away from outsourcing to cheaper countries, so follow the money.
It just also happens to be the case that since many clients don't understand how much their own workflow needs to change, many outsourced projects fail and reinforce the idea that outsourcing doesn't work.
> Have frequent and early deliverable dates.
Both of these things are extremely difficult (if not impossible) for experienced software consultancies to know up front, let alone the crowd looking to outsource. More importantly both figuring out what to build and knowing when those things are deliverable have, in my experience, required the involvement and input of the developer.
Telling an outsourcer "do X for me", where X isn't a well defined thing (ie. run a warehouse, manage windows servers, etc) is going to be a disaster. What does "add a shopping cart of my site" mean? Do you want to figure out sales tax for various jurisdictions? Do you need to to interface with the German banking system? Is there a configurator?
If you treat an outsourcer as a partner in development and participate in that process, you're either going to get a result that makes sense, or you'll figure out that the process isn't working out and terminate early.
Bingo. This is why you need in-house dev talent for creating bespoke applications.
This is why I am not too concerned about outsourcing . Most of my projects start with a 'this would be neat' sentence and then it's left for me run with. I know the business and the people so that's usually enough for my team to get a first iteration completed. From there we add users, get feedback and iterate again.
If businesses have a crystal clear idea of what they want then chances are there is already COTS to satisfy that need.
 Jobs are never promised and a PHB at anytime could decide that the company doesn't need tech, but that's not really an outsource problem.
I'm happy to help them come up with the spec. But if the client can't give you an elevator pitch for what you're going to build for them, run for the door.
Rarely have I ever worked for a company that knows this. The last company where I worked would change their mind mid-stream every couple of weeks and it added almost a year of extra time onto the final release date.
It's usually not this bad, but if more companies followed this (not even just with outsourcing), there wouldn't be as many failed projects.
I recently hired a guy over there to work for our startup. He's smart and he gets things done. He's still a little green, but overall he adds a lot of value to our company. He's just as good as anyone I would have found in the US.
And after we exit/die, the company he starts might be competing with yours.
India has a billion people, 10's of millions of code monkeys, and millions of good coders. The existence of code monkeys doesn't mean you don't need to compete with the smarter guys.
My Dad thinks I'm a bonehead for spending my time at startups and such even though I've tried explaining how working at a large corporation can suck your soul out. I'm pretty sure its not just my Dad and immediate family.
That hasn't stopped the likes to Tony Hsieh (Zappos), Fred Chang (Newegg), etc etc. And that's not even mentioning any entrepreneurs in Asia.
India has a billion people, I think it's pretty safe to say that there are a significant number of entrepreneurs worth their salt that will come out of that place - cultural impetus or otherwise.
I know of the folks you have mentioned however they gained success in US. There have been lots of successful Indian-American tech entrepreneurs as well.
I WANT successful tech entrepreneurs to come out of India. I want young Indian techies to contribute towards the upliftment of India instead of working for US. No offense towards native-born Caucasian Americans.
I'm just puzzled its taking so long especially when it seems conditions are so ripe in India for tech startups. So I can only imagine its a cultural thing.
In fact, If OP was able to hire a single guy who is good and works remotely, that single guy is 100% startup material (otherwise, he would have been already employed at big IT service company) and very likely to start on his own few years down the line.
But you have a good point about the OP's hire. I'm also very glad to hear youngsters are starting to do their own thing. :-)
The issue is not whether the average Indian programmer is as good as an average American programmer. My guesstimate is that they aren't. The issue is whether out of a billion people, you can find quite a few competitive ones. The answer is that you can.
When after a week of understanding the scope, I quoted my price at around $150/hour they were shell shocked. The work was for redesigning systems that simply were not scaling (designed originally by a US company by the way). At the last minute they backtracked and demanded that since I was from India and the cost of living was much lower, I should charge them around the standard $25/hour.
I can never compete in the project game - and I dont want to anymore - because of this attitude by every single US company that I have ever interacted with!
I passed them on eventually to a $20/hour company in Delhi, even while I explained to them that none of the coders there had any experience with designing systems that scale.
There is also a tendency to feature creep the project since it is only $20/hour which amuses me and is a sure fire recipe for failure. When we ask them if they want a project manager or an architect who can work with them on architecture/ feature set selection they refuse because they cost way more than the coders.
I am not saying your experience is not true, I am just saying that given the attitude towards India, it is bound to the experience more often than not.
The non-completion of the project above could have been for many reasons... feature creeping, inability to communicate what the client wants, language differences and yes, downright bad coding. Since you were not able to clinch the project - which I believe is simply bad salesmanship, like in my case earlier - your "I told you so" rant is based on a massive leap of faith that you or any "US based" programmers could have finished the project on time, which I am simply have no reason to buy.
There exists good developers in India, but they are harder to find than good programmers locally, because of the distance.
It really is the case that 50% of everybody is below median — doctors, programmers, judges, …!
India: I didn't like working with the Indian team. They had the tendency to be overly literal and "by the book" - the book being whatever tech stack they knew. They wouldn't ask questions or push back on things, and the result was crap.
Romanian and Ukrainian teams: did / doing an excellent job. We were able to get them at $40-50 an hour, and they are every bit as good and productive as local teams. I sometimes feel like I like working with outsourced teams better than local teams, because the relationship is straight-up business. I have to make sure that everything I ask for is really strong and really helps the business because I'm very aware of the costs involved.
Having said that, it is important to have a couple things: have someone local who can look over the code and be a man on the inside, to make sure everything a PM can't see is to the standard, having a good project manager of the remote team, and have someone who manages the whole thing who knows how to do it.
My anecdote: We had a spec for a financial business application. Two of the database fields were last-changed-username and last-changed-timestamp. The document mistakenly had them populated backwards, specifying that the current user's name should be populated into last-changed-timestamp and vice versa. You can guess what happened when the Indian outsourcee coded it.
"I ran this and got a type conversion error. Did you even test it?"
"Yes, I got the same error and that is what should have happened based on the spec."
"How did you test the rest of it, then?"
"I was unable to proceed because of that error."
(I'm not generalizing from this one programmer to all Indians. I'm sure programmers that dumb exist everywhere.)
To be clear, I don't mean to dump on India specifically, but rather offer up a narrative that counters the notion of overseas talent being an insurmountable threat. This missive applies equally well to any offshore outsourcing, but I agree that generality gets lost. andrewfelix's suggested title "Why I Will Never Feel Threatened by Bad Programmers" is good but doesn't quite hit it: "Why I Will Never Feel Threatened by Outsourced Programmers" perhaps captures my intended message the best.
This is about insights I've gained from "coming late to the party": projects that first went for implementation overseas, and which I subsequently got to clean up or improve upon. Much like many of you are saying, I found it refreshing [within the context of the "threat" of outsourcing] to experience that programming talent is indeed the primary factor in winning development jobs, with solid communication ability (aided by proximity) a close second.
I don't know that everyone has the benefit of that realization born of seeing firsthand how several such projects turn out (I didn't--out of school in '03 a popular narrative was that programming jobs are vanishing and there's nothing you can do about it). Calling out the myth of cheap overseas programming I reckon can be useful to both programmers (encouragement) and decision makers (insightful warning).
For sure, there's nothing statistically significant about my few experiences: I have only observations of some of the shortcomings that are quite real.
The problems pointed out largely surrounding happen due to the difficulty of communicating with a remote team. Having the product owner and the development team geographically distant make everything ten times harder; doesn't matter if they're in India or on the other side of the same country.
I agree with you that the problems he has faced would probably be similar when outsourcing to most companies no matter where they are.
Another is the fact that the culture within a lot of contract shops isn't exactly innovation-driven. I really don't understand how you could get an engineer/coder passionate enough to be interested in some stranger's project.
Net net I agree with the author: you can still make a career out of tech. The doomsayers from ~10 years ago who predicted the end of the US programmer were wrong. I don't think however that big companies (Cisco/Microsoft: any company with a big India development center) will ever hire legions of US programmers again though. That train has long since left the station.
Are you sure? Lots of US companies are hiring lots of US developers. Google comes to mind immediately, but I'm sure everyone else is too.
I think there are a number of reasons for this.
1. Many engineers just aren't interested in the old fogey US tech companies. Do you think a smart kid out of a US college would be more interested in working at Google/Facebook or at Cisco/Microsoft? As a result they have a tough time hiring. In India, people actually LIKE working for the man at big giant companies. It is a status symbol. So its a lot easier to pick up good talent there even if the company is regarded as a has-been in Silicon Valley.
2. At some point in a tech company's lifespan, decisions seem to be made purely for financial/cost-saving reasons instead of for product/customer reasons. This is usually the point at which good engineers start leaving the company because they realize the bean counters are running things.
This is also when these companies start expanding their India ops. Word gets around, and hence this is somewhat co-related to point #1.
3. Empire building: For some weird reason, engineering managers love having a lot of reports. Its reasonably cheap and easy to staff up in India and China, which means an engineering manager at some loser company in the US can get to brag that he (its always a he) has 100 engineers reporting to him.
And, they live in a country where $2 still buys you a decent meal. I don't see why they wont be able to do a good job, for less.
1. Communication: They fail to communicate not because English is not their native language. They'll also fail in their native language. Communication is a skill. English is a language. They don't invest to learn good communication, and also to learn the language.
2. Coding: They are bad coders. They don't produce good code because they don't want to learn version control, unit testing, and programming patterns. They are too lazy to open up a book and read. They are too lazy to subscribe to programming blogs and listen to podcast. They think that what they learnt in school and university is more than enough.
3. Creativity: Briefly, they can't look beyond their room window. They don't bother to know if the UX is good enough or the kind of audience for their product. They don't want to create. They prefer to copy/paste.
This is not India. This is most of the "developing" world, a also a part of the "developed" world.
It's difficult enough to determine exactly what it is a client is really asking for as a native English speaker sitting in the same room.
Add in a language barrier, time-zone barrier, remote communications barrier and a cultural barrier and it becomes increasingly difficult for any non-trivial project to succeed.
Outsourcing seems to be most successful if you can very clearly define a specification or systematize the work, have enough knowledge to review the quality of the work that comes back and have plenty of time to micro-manage the project.
Demonizing / downplaying foreigners to feel better about ourselves doesn't really solve it either.
Take a look at who decides to send work overseas to increase their profitability. Business owners and management.
Threatened people are usually those who aren't moving. I'm not saying you're not moving. If you're ahead... stay ahead. :)
If we don't feel threatened today and sit cozy, if developers elsewhere (even in North America) keep improving, they will eventually catchup and get ahead.
My guess is that a big problem is "business people"(1) deciding to get their idea implemented on the cheap without knowing the technical challenges involved or even how to clearly communicate with programmers.
This just demonstrates that a founding team needs to have some sort of technical expertise, preferably from everyone on the team. There's no need to be a genius, but at least have a little, tiny bit of experience making a computer do what you want it to do. That makes communicating with programmers a lot easier.
I don't work for a startup, just the opposite, a huge multinational. I see the consequences of relying on people with zero programming experience making decisions about managing software development. There is definitely an attitude of "just ship it to India" without really thinking through the details of what that means. Tsk, tsk, the consequences will not be pretty.
(1) I am not bashing business people here, I am one myself, I am just saying this is often the root cause of the problem.
My thought is that to a large part we've ALREADY been sold on the idea that we can't compete, so we shouldn't even try--that outsourcing is here to stay, and programmers in other countries will have no trouble out competing us. I'm proposing that we don't believe the hype, that we can compete effectively.
It's a rallying cry against complacency.
Based on lots of experience dealing with off-shore developers, the problem has always been communication.
Once a company figures out how to properly communicate the right level of detail, outsourcing becomes a significant force.
The opportunity gap of $15/hr versus $50/hr is too great to ignore.
Outsourcing or not, if you want cheap, you will get cheap.
The biggest issue I've seen is that if you don't have things fully spec'ed/flushed out, it becomes a mess. With a couple of committed developers working together no matter where they are, let's you be more agile, and not have to do as much up front work.
I outsource and I don't tolerate a 20-30% overage in time at any rate. Surprisingly 100 hour quotes can come down to 30-40 because there was a "mis-understanding in scope".
Another thing I've found is a "Senior" person overseas has 3-5 years, which is maybe $20-25/hour in North America.
Paying $14-17/hour overseas is hilarious for the disconnect in time, assuming you know how to write clear enough specs that it works how clearly communicated and understood.
I think it is about lack of homework on the part of the outsourcer that causes the trouble most of the times. When you are smart enough to hire a developer at less than 1/10th of the price that you will have to pay you otherwise shouldn't you be atleast twice that smart. A clearly defined wireframes with specification document is a must before you start any project. Ask your developer questions on the basis of wireframe to ensure both of you are in sync. As a first step outsource 2-3 modules in phases to see if the developer is able to meet up to your requirements. And do the above irrespective of if you are hiring someone from India or any part of the world which promises kick-ass developers at $100 per hour.
One of the biggest problem in India is culture. Right now we have a culture where companies like Wipro & Infosys go to campuses and hire 100-500 graduates , majority of them are from fields other than CS where the companies provide 3 months on training. Why do they do this? Coz someone somewhere needs to get workdone at cheaper cost, and 9 out of 10 times it cuts quality. Quality of code for the client and quality of hiring for the company.
The other major issues is culture. Indians push their kids to be Engineers and Doctors and kids do it even if they dont like it. more than half of my class of 2006 is no longer in the Software development fields coz they never liked it.
Also you can get bad programmers everywhere , its just that India , due to the population has a large number of them which makes finding good people & companies very tough.
That, in turn, is why you need to give very explicit instruction, and why much of the work needs a lot of QA.
Knowing this also makes it a lot easier to interview firms or individuals, looking to their own personal motivations to see whether they match the overall cultural trends or not, and thereby you can build a better team.
- Not adequate training of these guys. I tried to convince the powers to send someone local over there for 6+ months to get these guys up to speed and ship shape but the management feeling was a good set of written instruction will do the job. Sorry, it wont for work roles of any complexity.
- Being remote and in different timezones created lags in turning work over that had to be looked at at both ends. Also they didn't all see the bigger picture or side issues which are important to help understand motivations and then create solutions and value ad in many project as they just had the main brief.
- Cultural differences with Indians I found is they don't like to say they don't know how to do something. I think this is a loss of face not to know or perhaps they are just worried about keeping their jobs. So often if you give them a project and they don't know how to do, they will do something else they do know how to do just to show you they were working. I kid you not... it was really frustrating finding out a week later they didn't know how to do a job so decided to make a new database instead because they could do that. It created problems a bunch of times.
Overall in my experience I found outsourcing is good for jobs where you have clear "A,B,C,D" instructions but for jobs that had to go from A - D and they figure out B and C, your better off keeping this locally. But that said I'm not adverse to outsourcing more complex work as these guys are generally smart and highly motivated. I think the problems I had could have been fixed by rotating local people in a reasonable ratio to the Indian group to keep culture aligned and maintain personal contact.
It's the model, not the location/nationality.
I have not doubt you can outsource your programming work to India if you do it the way companies like Oracle and Google do it - go to India, hire your own management, hire employees, and give the local managers enough authority to manage the project in their time zone.
But that does not mean that India is all about cheap software development with code that never works. Outsource your projects to the right people and you get things right. There are pretty good companies such as Slideshare, Zoho and most of the big guns like Google, Microsoft, Adobe with offices in India where great products have been developed by Indian developers.
All I say is, give developers in India the kind of money they really deserve (which is still significantly less than what their American counterparts command; it's more to do with the lower cost of living than anything else really) and you would get software that matches international standards.
Sorry, but you really should try and do that math again.
With developers, you get what you pay for. Good developers in India cost almost as much as good developers elsewhere, and the small cost saving is eaten up by the losses due to distance and culture.
Does it mean Indians are not smart? Of course it doesn't! It's just that most Indians who actually are smart either transport themselves to the States or end up in the Indian branches of companies like Microsoft or Oracle. Only the absolute bottom rung of barely-competent people end up in software outsourcing companies and that is why you get such POSes out of them. And don't even get me started on the call-center recruits!
1) Some Indian companies, look to cash in the price arbitrage, and have a short term view (3 - 5 years). So they bid for projects, where they have very little expertise and experience. (In India, there is a huge market for sub-sub-contracting. Companies, win projects and then look for people with expertise to actually execute them. (Personally I have been asked to consult so many times)).
2) Education in general is in shambles and especially C.S. education. Also education is (unfortunately) a business. For example the latest fad is to start Android development classes. So many are coming up. (but most of them don't have good tutors. (Again, personally I am asked to come in as "Industry Expert"). Students join these classes and 3 / 6 months later they consider themselves qualified. (when in reality they know so little).
3) Most students (regardless of aptitude to software development) take C.S. is college because of better job prospects. Obviously they cannot be good engineers. There is such a shortage of engineers, that invariably such people do get hired (which feeds the cycle) and lowers quality of output.
About Me: I am an Indian software developer and founder of a software development shop.
If anyone here would like me to build a web application for them from scratch, I will quote you a price and a time. The price will be my usual freelance price ($100 / hour) but the turnaround time AND the quality will probably delight you.
Here are my credentials briefly:
I have built complex integrations using the facebook platform since 2007 and I have built apps and pages for various brands etc.
I authored a framework that lets me develop social sites and apps in a fraction of the time it would take from scratch. An earlier version was open-sourced at http://phponpie.com
I can administer Linux and set up development environments, version control, project management, and can act as a team lead
I have had to deal with issues involving scaling architecture (e.g. sharding), security (e.g. CSRF prevention) and browser incompatibilities. In fact my framework takes care of most of them out of the box, so I don't have to reinvent the wheel anymore.
I've been managing a team of developers for the past two years (http://qbix.com/about), so I could help you with leading a team
I've created some apps that have been downloaded about half a million times and have 30k daily active users, so I could probably consult you on increasing word of mouth and engagement.
I'm a CEO of a start-up, which has exclusively hired overseas developers. They are Russian-speaking, however, not Indian. It works for me since I am Russian speaking.
But I do consulting on the side.
The experiment is ... I am curious who reading this would actually contact me and want to hire me. I will make myself available for the next month to do my best on any project I decide to take on.
My guess, however, is that hiring is difficult and connections are usually made through other channels (such as recruiters). This is why many people hire Indian developers online. Because online, it is a much more attractive option.
You can contact me by going here: http://qbix.com/about and clicking the right button.
I will report on whether I got any real offers :)
If price quoted was the only criteria to evaluate, then there are many unknowns
We face the reverse problem, so many times american clients come to us to get a quote, after getting quote then telling it is 2x their budget.
When we give them a detailed breakup question the need for documentation, requirement freezing in the name of Agile.
Also many question why the need to signing off with acceptance testing and would ask for perpetual warranty support.
Now our new presales activity includes gauging clients software life cycle knowledge and understanding working with remote teams.
We take clients and projects where we find a right fit, and can meet or exceed client expectations.
We have been growing at 100% year on year for past 5 years, and employ 132 people now
There are two reasons why you deserve your $250/hour rate: because you know how to build software, and because you know what not to build. If you can't do the second one, you're not going to make your $250 an hour.
OK, the cost of living is cheaper in India than it is in the West. Thats fine. However, if that means that they are charging 25% of the minimum you would expect to pay you have to ask why it is THAT cheap.
Often the difference in cost is a linguistic barrier and copy and paste programming.
I think India can really compete by charging 60-75% of what a project would cost in the West and providing the work to meet those expectations.
If you are going to India for a bargain though you are more than likely going to get burned.
- misaligned interests
- availability of information
- security and compliance
As far as "does it EVER work" concerned: it does. It doesn't work well though. Most people can run, doesn't mean that most people can run as fast as Usain Bolt.
My whole opinion at:
Otherwise in your next iteration you'll still have an inefficient poorly coded app, only you would have spent 3X times more money getting there.
I feel that this is a really arrogant attitude. I wonder if the author ever heard of that part of the world called Europe for example.
The argument sounds like something Rush Limbaugh would say, "It's cold where I live, therefore global warming is a lie!".
Did they pump contacts for recommendations on a good outsourcing shop first, or at least ask for references and follow up on them?
I wouldn't even take my car to a mechanic blind.