34 comments

[ 2.8 ms ] story [ 67.9 ms ] thread
because discrimination based on nationality is a good thing!
The point that they list as "key", that it's possible for programmers to learn with just Hindi, but not just Romanian or Hungarian, I suspect is wrong. Using number of language-specific Wikipedia articles as a proxy for content on the web, there are:

  - 158,215 Hungarian articles
  - 141,637 Romanian articles
  - 54,058 Hindi articles
Also note that universities use English almost exclusively in India and that only about 20% of Indians are native Hindi speakers.

I'm not saying that the observation about level of English is wrong, but the assumptions about the reasons for such are suspect.

[author of the post]

Those numbers are mindblowing- is there some kind of India-specific Wikipedia analogue where articles in Hindi tend to go to?

I believe you've just massively overestimated the prevalence of Hindi in technical discourse and on the web.

I tried to dig up some statistics, but Hindi isn't even prevalent enough to register in the stats:

http://www.newmediatrendwatch.com/world-overview/92-language...

http://www.translate-to-success.com/internet-language-use.ht...

Wow. That's pretty amazing, given that Hindi is probably the fourth most widely-spoken language in the world. I would never have imagined it to be used so little online.
I recall an informal survey on the Wikipedia mailing list at some point, and their (admittedly not very scientific) conclusion was that most of the Hindi speakers who edit Wikipedia are also fluent enough English speakers (at least in written English) that they can also edit the English Wikipedia, and for various reasons they often prefer to.

Some of the reasons cited, going by memory, were: 1. English Wikipedia already has more existing content for scaffolding so you're not writing from scratch; 2. English is seen as more official/academic, so an encyclopedia article in Hindi feels wrong, like writing a journal article in Hindi; 3. for India-specific topics in particular, writing in English is seen as a way to disseminate information about India and Indian culture to a worldwide audience; 4. English is more neutral in a within-India political context, without the north-south issues Hindi sometimes has.

Your post reads like you've never actually been to India. I won't comment on the quality of Indian programmers, but I would say it's nearly universally accepted that the Indian flavor of English* rates at about the middle school level in the US. I have never seen so much poor grammar and misspellings in public places anywhere I've been. My guess is that they are taught English phonetically and that as long as the spelling looks like it would be pronounced correctly, the fact that it's way off doesn't matter at all. Most Indians, provided they're from the same region, speak to each other in their native tongue rather than English (whether it's Kannada, Hindi, Urdu, Tamil, Telugu, Gujarati, etc). English is the fall-back when people don't share the same Indian language.

* I'm commenting on popular English, not scholarly works.

I've spent about two weeks in India. Most Indians don't speak English. The college educated – a tiny minority – do.

The mangling is somewhat typical of a lingua franca in less-than-cultured contexts. That a shop owner can't write properly in their third language doesn't say much about the intellectual class's abilities.

Real Indian-English – the stuff you hear on the news – is a proper dialect (akin to, say, Scots), not simply bad English.

Re: Most Indians don't speak English. The college educated – a tiny minority – do.

The question isn't about no. of Indians speaking English. The question is: do Indian programmers (and professionals) speak English?

Answer: 99% do.

Romanians are doing great when speaking of communication skills.

There are 2 reasons for that ...

* English is learned in school from the second grade, and we don't have a local dialect

* TV stations / cinemas are airing movies in English (we are used to subtitles) :))

* we are a latin country and our culture isn't so different from the one in US

Of course, I'm not speaking for a majority of the population, but all the educated professionals I know have proper English skills, especially programmers ... since the literature here lacks, and the only valid way to learn real-world programming is to read books/articles in English. Of course, there are always exceptions.

Speaking the language doesn't automatically give you good communication skills. That being said, I agree that most Romanian programmers have good English skills. I studied computer science in Romania with English curricula - all my colleagues spoke outstanding English, making English classes somewhat superfluous.

I find that good command of the English language is a conditio sine qua non from a Romanian programmer - how else would he go about to continuously educate himself ?

There are other countries which are good resources of competent developers but not as popular with the two countries mentioned. One example is Philippines.

Philippines is an English speaking country and have excellent developers. Sadly, a lot of senior developers were pirated by large banks and firms in Singapore.

The problem is outsourcing individuals/companies often look at price first rather than the talent of developers -- money matters at the end of the day.

I would like to hear anecdotal evidence from regulars here who have used services like eLance. Did it work out for you?
I got my site done on eLance (two years ago), and was extraordinarily happy with the experience. It was cheap and much better than anything I could have produced.

http://www.kalzumeus.com/2008/03/02/my-experience-with-outso...

Yet (iirc) when you had other work to do you chose to cut out the middleman and simply post job offers directly on your blog.

Does that mean you found those sites less useful than the direct approach? Or was it simply that you were already getting a lot of unsolicited job offers in your blog comments and felt you had a big enough pool of talent to draw upon directly?

You have a very good memory.

eLance, et all, fundamentally solve the problem "A customer has work available and doesn't know who can perform it to their specifications at their price point." For that, they take some money and give some headaches (e.g. wading through a lot of bids by companies which I would not consider using, which is a time cost of outsourcing that provides no direct value to me).

As my blog readership has grown, I've gotten to the point where just announcing I have work available will result in a handful of very talented people writing me telling me how they plan to do it. No middleman cut, no paging through 17 screens of Yes Sir We Can Make Your Site In HTML and CSS.

I love outsourcing, and I mostly love the freelancer sites. I just have a better alternative these days. If I didn't I'd be back on them in a heartbeat.

I have worked with multiple Indian groups on projects while working full time at different companies and I also have some experience outsourcing tasks for my startup through Elance.

Here are my rules with for working with Indian companies:

1. Never outsource the whole project or even a majority of it. I've seen companies do this because it's cheaper than hiring a staff of full time in-house developers. The projects usually fail.

2. Never ask them to do a task that you wouldn't know how to do yourself. You should never outsource a key piece of technology just because you don't know how to do it. You should only outsource something if they will get it done faster than you can or you want to work on something else. You will still have to review and test every line of their code to keep the quality up.

3. Expect communication issues. From my experience, Indian consulting firms try to communicate the best they can but you do have to stay on top of them.

4. They are much better at coding than they are at design. I've always been happy with the code they produce but not with their graphic design abilities. Never leave the UI design up to them.

I'm a single founder of a startup and the only way that I'm going to get my product off the ground in 30 to 60 days on a shoe-string budget is to outsource pieces of it. If you want to keep up with my progress then go to http://sqlmover.com to sign up for the private beta that is going to be launching next month.

Re # 4. My experience is exactly the opposite.

I guess there needs to be a #5 - Outsourcing is a competency in itself and can be hard. People have different experiences and offer conflicting advice. If you do it often, you will find ways of doing it better. If you just need to outsource something once, it may not be worth the learning curve or risk.

I agree with your points but wanted to put special attention on 1 & 2 because I've found those to be the most important in my own experience.

Generally what I do is to make a class diagram and then hand it to an outsourced coder to create. That way there's no question of what is supposed to go in and what is supposed to come out and I can test it easily. Plus that way allows me to keep track of which pieces I outsourced so even if I get a bad coder who writes inefficient code I can go back at a later date and correct his work.

We love elance. We currently employ about 10 full-time equivalents on elance.

I'd agree with the linked article. For most serious skills (beyond basic HTML markup) you need to pay $15-$25, but the results we've got have been top notch.

Here's what we've learnt:

* Only hire people to do stuff you understand. You don't need to be an expert on it, but you have to be able to understand what you are speccing and what you are getting.

* For anything beyond basic HTML we've never had success with a company from the Indian sub-continent. For basic HTML stuff we've had good results.

* Our best results have come from Eastern Europeans, but we've used people from the US, and western Europe as well.

* For many projects we hire people on an hourly rate. There are exceptions - if we have a really clear spec, and it's a side project (e.g. we need some flash client work) then we may do it fixed price.

* Deal only with individuals - ignore companies. They only exception might be a small bunch of 2-3 hackers working as a team.

* As with any form of recruitment - there are good people and more bad people. As with buying on ebay - look at feedback, and use your judgement.

* If you're looking for people on an ongoing basis, then be prepared to interview and test them thoroughly. When hiring C++ coders we actually pay people (as a elance project) to do a 20 hour long programming test. This might cost us $400, but we prob take on 1 in 2 people who get this far. So an $800 hiring cost is cheap, especially if it gets people up to speed on your technology. We normally get them to right a cut down version of our actual project.

* You need to monitor people regularly and manage them as you would a physical employee.

* Give people respect, and deal with them fairly.

* You have to be good at working virtually. We make extensive use of Wikis, Trac, Skype etc and this enables us to manage a virtual team well.

The benefits:

* For about $20 an hour ($40k per annum) you can get a top class programmer that would cost you $100k an annum in SE England, or the West Coast. But you have no hiring cost and no long term commitment.

* We typically can put an advert on elance Monday, be interviewing by Wed, and have taken someone on by Friday to start the next Monday. In the old world it would be arguing for budgets to hire for a month, spending 2 months interviewing, waiting 1-2 months notice period.

* We can very quickly bring in specialist skills. E.g. if I need a Silverlight developer, I can find one who can start within a week, and can terminate when the project is done.

Hi, this is Nicole from Rent a Coder.Rentacoder provides access to programming, writing, illustration, even data entry jobs. (You can get a sense of the broad scope of work available here: http://www.rentacoder.com/RentACoder/SoftwareCoders/BrowseWo...)

I'd like to point out a few differences between our service and services like Elance since those differences could influence the success of an outsourced project.

=== Employing a new worker that you don't yet know/trust: ===

When you don't yet know if a worker is productive, both Elance and Rent A Coder let you employ them in the safest way possible: by paying them a fixed price for the final deliverables (called pay-for-deliverables). However, if there is a problem, Elance charges you for the arbitration process necessary to get a refund (while Rent A Coder does not), and the process can take much longer if the worker is abusive. Elance, also does not offer a forfeitable on-time delivery guarantee.

1) Money-back Guarantee --- If a worker doesn't deliver what they agreed to, both sites will step in and give you a refund via arbitration. However Rent A Coder does this for free. If a worker doesn't deliver what they agreed to, both sites will step in and give you a refund via arbitration. However Elance charges you $66-$133 to do this. This may also make it impractical to get a refund on smaller projects. Rent A Coder, on the other hand, does this for free.

2) Arbitration --- On Rent A Coder you can start arbitration immediately. A worker intent on abusing the system can stall the start of arbitration on Elance for 21 business days and during this period your money is not available to you. During the first phase (dispute assistance), the worker has up to 3 business days to respond, and can make this phase last up to 12 additional business days (15 business days total). After this, the arbitration phase "begins", but does actually start because the worker is given 3 business days to acknowledge the notice of arbitration, and the another 3 business days if they did not acknowledge the first notice. Only at this point is arbitration actually started. See the Elance contract for more information.

3) On-time Delivery Guarantee --- Some workers are better at meeting deadlines than others, and when you have a critical and time-sensitive project you need a way to quickly differentiate between the two. The most effective way to do this is to require the worker to guarantee on-time delivery with a deposit (which they only get back if they make the deadline). This signifcantly discourages less qualified workers from bidding on your project, and financially aligns the worker you do select more closely with your own situation, resulting in a better partnership.

=== Employing a familiar worker that you've worked with before: ===

Once you know the worker is productive, both Elance and Rent A Coder let you employ them more flexibly and cheaply by paying them by the hour (called pay-for-time). However there are important differences in how Elance and Rent A Coder provide this service.

1) Over-billing Safeguards --- Rentacoder requires all workers to punch-in and out of the AccuTimeCardT in real time, to prevent them from fabricating hours. To allow you to monitor their presence and productivity, it also records their webcam and desktop. Elance workers bill you using a traditional, old-fashioned time-card. As a result they may freely record hours that they did not work, and you cannot monitor their productivity. This is not the case with Rent A Coder workers.

There are other differences as well. I invite everyone to compare the 7 major services through this link to learn even more: http://www.rentacoder.com/RentACoder/DotNet/misc/CompetitorI... (Short version:

I found this post disappointingly short on administrative details, unlike Max Klein's earlier Rentacoder-related post, which is surely the definitive reference on this subject:

http://blog.cubeofm.com/the-subtleties-in-outsourcing-using-...

I've found that the administrative details are pretty minimal when you do your filtering well- people on Elance are often looking for long-term gigs, 10 hours a week, 5 hours a week, that kind of thing. That incentivizes them to work with you with an eye to the future, so there aren't as many details to the day to day.

The trick really is in getting rid of 99% of the applicants, and then paying well and being nice to the person you choose.

I don't know much about Romania, is $25 really a top-tier rate?

From experience, when you talk about top programming talent, the rates between countries start to converge. So almost everyone at the top demands > $50 an hour regardless of the geographic location.

Of course working at that rate means that you not only have exceptional technical skills, but you can communicate well, have a business sense and actually care about the success of the project and the customer.

I still freelance part time on select projects but my hourly rate is rarely less than $50/hr and that's only because i do not take on large projects due to my day time work and business. I also stopped working with customers who differentiate on price alone.

> I don't know much about Romania, is $25 really a top-tier rate?

Yes, it is top-tier.

The average Romanian programmer makes $646 per month (http://www.worldsalaries.org/romania.shtml) or around $16.65 an hour. I don't know what experience you could have that tells you prices converge because that's just not the case (and if it were sites like eLance would have trouble staying in business).
>$646 per month or around $16.65 an hour

You may want to divide your price per hour by 4 assuming they work an average of 40 hours per week

Well, when you talk about working on projects that are not your "run-of-the-mill php web page" then the rates completely change. Again, that's just been my experience, so its not necessarily universal.(or I just might have been lucky)

So for example projects that deal with video streaming and its intricacies, scaling or optimization, or my personal favourite, maintaining or porting legacy or broken systems done by programmers that are worth $5/hr.(sorry, i don't mean to be harsh, but we've all been there)

Typically those kinds of projects are not easy to come by and are not that many to begin with. They also tend to be awarded to people you've already worked with or know, not auctioned off on sites like elance.

I've once worked on a video streaming solution that used elements from Red5 and it was known that good Red5 consultants won't talk to you for less than $100/hr. I was not making anywhere near that of course, but I use it as an example.

(comment deleted)
One thing to also keep in mind: if you're getting too good a deal the worker probably won't stick with you for long, so make sure you treat the worker well and pay them what they're worth (or someone else soon will).
If you look to hire coders/designers/writers on freelance marketplaces like Elance, Rentacoder and Scriptlance, hire those that ask questions.

On any project above $100 you'll receive 20 or more bids, but 90% them will simply be a price and a list of references. You can be pretty sure most didn't even read your project description.

The 1 or 2 that ask meaningful questions about the project, no matter how small it is, are the ones you want to work with.

I flew out to Pakistan in 2001 on a holiday, and then ended up hiring a programmer from there. Turned out to be a right royal mess. The quality of work was poor, and his work ethic wasnt great either. I ended up delivering a software project to a client, that wasnt really worth what i charged them. I regret that i charged them what i did, but only later found out how poor it was under the hood, and had to pay out of my own pocket to get many of the bugs fixed. THAT was a nasty experience.

Recently, i decided to try it again, as i've been in need of assistance, and hired an indian firm to do some jQuery work for me. The work was literally 60 to 90mins of work, and required no more than 5mins of explanation, but in the end they had 3 skype meetings with me, and spent a week designing something that i hadnt asked for, and then wanted to charge the full time. Again a bad experience.

BUT, then, i spoke to a contact here in London, who has spent much time out in India working with ex-Microsoft and IBM employees, and he has learned the culture and how to manage them. I gave him the work and he got his team over in India to do it in about 90mins. So i'm now using him as my middle man who takes the time to understand my requirements and then translates in whatever way required to his team abroad. Its costing me slightly more as an hourly rate, but with the time and headache saved, the net cost is actually much much less. Overall great experience.

Point being. Its not about the geography, or where you outsource to, not even so much who you outsource to. its HOW you manage.

One story is not every story. Writer know only know one story about Romanian, India etc.