The subtleties in outsourcing using RentACoder
blog.cubeofm.com
blog.cubeofm.com
Here are some summary points, generalized away from rent-a-coder:
* don't hire Americans to do commodity work (i.e. PHP CRUD)
* be clear but not ominous in your job description, and include visual mocks if at all possible
* don't try and be secretive - no one wants your dumb idea anyways
* make sure someone has a decent reputation on the site you use
* keep track of the progress of the product and keep in touch with the coder, but don't be overbearing
* be somewhat flexible with the deliverable - aim for perfect but accept done
* test the code thoroughly and request fixes in one shot, but don't conflate new features with bug fixes or no one will be happy
The only points I would modify are:
* Job requests can include bullets, but don't be overly fine-grained.
* You can in fact build relationships with outsourcers via rent-a-coder (MTurk, 99Designs, etc), and you should - this will lead to much better long-term work. A good way to get this started is an unexpected bonus.
* Don't ever screw someone on work. This is just karmically bad. They live in Eastern Europe and are poor. You live in America and are rich. I think the best way is to give someone a piece of work (5-10 hours worth), ask them for a bill, and proceed from there. If the work sucks or is over-billed, you pay and move on. Otherwise, you can give them more work.
This is why Americans are saying they are from overseas to get the jobs. If the price is the same, what does it matter where they are from? Speaking a common primary language and being in the same time zone has value.
When I offshore work, I send an email and have to wait until the next day to get a response. When the worker is in my timezone and I get quick responses, the project success rate improves.
I agree with the other points and have been on both sides of the payer/worker transaction.
I've done both, and the amount of money a person can charge has a lot less to do with skill and experience than you think. Several people who worked for me for sustenance wages now make more money than I do because other people noticed that they are pretty good.
Selling yourself is a skill, and it has very little overlap with the skills required to be a good Engineer.
I'd be honestly embarrassed to tell you what I make at the day job. When I told my bosses I was quitting to pursue other opportunities, they tried to convince me to stay, and the insanity that is salary negotiation reared its ugly head: the value of my labor has increased by easily a factor of ten in the last three years, the best offer they could possibly give was +N%. This follows standard economy-wide employment practices where we pretend that almost everyone (with the exception of salesmen, finance professionals, and very few other white-collar jobs) is an 18th century water loom operator and pay them in, essentially, the same matter as we paid 18th century water loom operators.
I think one of the major Big Ideas of this century is that the economy is being dragged kicking and screaming to where salaries converge closer to actual value faster, rather than being tangentially sorta-kinda arranged in rough proportion to expected value. That's exhilarating and terrifying at the same time.
The problem with the 'end run' of just starting your own company is that you then end up with embedded systems engineers doing things like web applications, because it's easy to do the web application as an independent, while it's harder to properly utilize that Engineer's talent without a large corporate team.
I'm sure there are exceptions, but on aggregate I'd be shocked if you can find Americans to build something for you as, say, equivalently skilled Romanians. There are millions of reasons you'd elect to pay more for the Americans, but the localized standards of living at a given rate are going to keep Romanians cheaper at the equivalent skill levels.
That said, it sounds like you have more experience with this than I do, so this may be that one time in 2010 I'm simply wrong. ;)
Personally, I believe the market is so opaque; the water so turbid that the cost of living difference is almost noise compared to the value I can get by finding good people who other companies don't notice.
I think the thing is that nearly everyone trains to send false signals in this market. It's extremely difficult to measure a persons ability at an interview. (hell, it's no cakewalk to measure a persons ability at all, but I have a hard time imagining a worse way to evaluate non-sales candidates than an interview.)
I'm spending a lot more effort finding the person than most companies do, and that's a lot easier for me to do in America. Almost everyone I've hired that worked out well was a friend or a friend of a friend. I've tried many foreigners; the only one that was really good was someone who I knew personally (she worked with me in the US at my dayjob, then worked for me remotely after she went back home.)
I don't think this is due to a dearth of good people overseas; I believe this is just because the hard part is figuring out who is good and who is not, and really without working with someone for a while, that's an extremely difficult thing to do.
One was the classic example; this guy happened to be my roommate at one point. He was obviously brilliant, but he practically radiated self-doubt. He had this slouch that took a few inches of his height and make him look a little like he thought you were going to hit him.
But he was obviously brilliant, and had worked as a C/C++ programmer for a while, he even had some open-source code out there. But he lost his job during the .com crash and had been subsisting since on savings, menial jobs and an occasional elance-type gig.
oh man, and his lack of confidence absolutely killed him there. He had this one client who'd call him up for hours every night and kept adding features and changing requirements. He said he made $2/hr on the gig when he said he was quitting. At that point I think he was into me some for rent, so I offered to hire him at $40/hr. I called up his customer and explained that I'd get the work done for $60/hr, but he couldn't talk to my friend, and that he'd be paying for phone, time, too (I was, well, quite a bit younger at the time. 22? 23? and thought $60/hr was a fine wage for yelling at/getting yelled at by some asshole. I was just figuring out the whole 'if you are arrogant and aggressive, people give you what you want' thing.) The job got done, and everyone got paid, and my ego got stroked. (I mean, yeah, the wages were not awesome, but eh, when you are that age, it's certainly a living wage)
Really, once you got down to coding, my friend's apparent self-doubt evaporated like it was just an illusion. "I don't write segmentation faults" he insisted. But he did really badly in interviews. But my point was that he was really good before he worked for me; but that fact was obscured by the year or two of downtime after the .com crash. My friend eventually got noticed by a real recruiter, and got a full-time job shortly thereafter. he currently works for some compiler company or something making rather a lot more money than I do. (more than I was making when I left my full-time job... my current business pays me, ah, mostly in equity.)
obviously, one anecdote does not equal statistical significance; I'm just saying, I've seen people with experience fall behind in the 'interview arms race' and end up underemployed, to the detriment of their potential employers. Because it is so hard to sort the really good people from the mediocre or the useless, there is huge value that can be had correcting the market's mistakes.
I will try to be more explicit next time I make a throwaway one-line comment.
OK. I know it wasn't supposed to be anything like that, but this sentence sounds really bad. I actually got the idea that the coding business of any sort can get you in a pretty good position, financially. One of the reasons is the fact that you are not dependent solely on your local market. And there's also the lower cost of living.
I wrote this because of something I saw. A friend of mine has a popular iPhone app, and he was pressuring some overseas consultant to lower the final price for some work because he wasn't happy with the result.
I don't think you should be leaning on your workers after the fact - it's up to you to ensure you hire quality worker, and pay them bit-wise so you are both happy.
Talking about "people in Eastern Europe" is just silly... Which country? Estonia is different to Ukraine, which is different to Romania, which is ... Talking about "people in Eastern Europe" is like putting Mexicans and Canadians in a "people in North America" bag (and trying to get some meaningful economic average out of it)
Why does this depend on a country: "he was pressuring some overseas consultant to lower the final price for some work because he wasn't happy with the result". If the result was not right according to the specification, then why not lower the price? If the result was correct, then changing the price is not right. But what does the country have to do with that?
Proportions of spending are not a good comparison of wealth between countries, only within them. People tend to live approximately at what they can afford, perhaps borrow or save a bit. Most people will spend 30-50% on housing and 10-30% on food, just because they will adjust their tastes to their means.
What you can afford with the X% however differs greatly between countries.
In most of Eastern Europe, spending 30% of your income on housing will get you a 30-year loan for a 600 sq. foot apartment in a "soviet projects" style high-rise apartment block. Only middle class can afford a car, and only the upper middle class or wealthy have more than one car per family and a house in the suburbia. It is common for three generations to live together to save on housing and childcare.
Also, while the prices of services are adjusted to the local labor rates, import goods are not. A new laptop is a significant purchase - similar to how you buy a car in the US.
2. Estonia and the Ukraine are much more similar to each other than any Eastern bloc country is to the US. And I wouldn't lump Canada and Mexico together for discussion, but I would surely lump Mexico in with Central/South America and talk about them.
3. In America, you can agree to a well-defined contract and enforce it in court. Sometimes a buyer shouldn't pay for work completed. If you are dealing with a foreign contractor, neither party has legal protections, the buyer has a lot of leverage and more money, and as such should treat the contractor extremely fairly.
The difference between Northern Michigan and Southern California or New York is substantially larger than the difference between Poland and Romania or Ukraine.
The biggest difference between those countries and the US can be summed up in one word: market.
They simply have a very limited local market for these skills, but plenty of people there have some skills and are prepared to work very hard to get more. Their cost of living can - at least in the former eastblock - easily approach the cost of living in the US. Plenty of ex eastblock countries are now using the Euro, either for their day-to-day transactions or already for their debt, even though they still have a national currency (because the Euro is more stable, banks like to borrow money in Euros to individuals that get paid in a local currency, very risky but many banks got burned badly during hyperinflation at the end of the 80's).
We agree on the contract bit, I think.
The contract situation is something that is not so important when using systems like rent-a-coder, you're not going to use it to write the gut of an ATM or a mission critical piece of software for a financial institution or a health care provider.
Rent-a-coder is primarily intended for relatively short running simple projects that you want to get done on a minimal budget.
The whole idea of relying on such cheap labour for something that you put a very high value on (high enough to go to court over) is counter to the intended purpose of the service.
We can go into an endless rabbit hole about which difference is bigger, on which parameters. Northern Michigan and Southern California operate on a substantially similar and similarly enforced set of laws. This is not the case for Poland, Romania or Ukraine.
And before you say that the highest number, $21,000 is meaningful in anyway, let me just add that I've paid programmers $65,000 a year (in Poland).
Please, people, stop generalizing. "Eastern Europe" is just as silly as EMEA, "SouthEast Asia" or "North America".
Re. 2: Good luck telling people in Estonia and Ukraine that they're similar in any way ;) "Eastern block" was not a one big lump of states by people's choice and did not break without a reason.
Re. 3: What really bothers me in the previous post is something completely different than you say here. Of course - you can double check to be sure you're right before blaming foreign contractor for the quality of work - because of the lack of legal protection. But if your requirements are not fulfilled - why does it matter if the work was done in US or somewhere else? Your friend wasn't happy with the result. When you say you shouldn't be "pressuring some overseas consultant" in a post about EE countries and income, it seems to me a bit condescending...
We found a good developer on RaC, and now they do part-time dev work for us and we haven't gone through/used RaC with them for at least a year.
The rest of the advice is pretty good, though.
As of culture, South-Eastern Europe is very different from North-Eastern Europe. And Mid-Eastern Europe is totally different thing as well. Some are slavs, some aren't, some has more relations w/ russia, some w/ italy or germany. It varies from country to country A LOT.
The author's recommendations provide extremely reasonable advice to follow in any project management endeavor. He emphasizes an assertive but respectful approach, taking the needs of both sides of the project into consideration and outlines a wide range of practical details that you could only know about from having a high degree of first-hand familiarity with this service.
I'm saving this and hope to draw on it soon, now that it doesn't seem quite so daunting. Thanks for posting.
Nope. It has developers from all over(I live in Lebanon). Freelance programmers are simply programmers that don't work exclusively for one client. I am guessing you don't mean this in a bad way...
- "The availability of particular skills is very limited."
I started my freelance career on RAC 4 years ago. 6 months into it, i was taking on bigger projects using some of the technologies you mentioned(I'm a python guy but also do C# and Java...). Roughly 8 months into it, i was working with start ups and people were contacting me directly even though my rates are not the cheapest.
I no longer look for gigs on RAC, but its certainly a viable lively hood if you're picky with the projects you take on. The trick is to always be honest and decent, the way you should behave in real life.
I also found it funny that some Indian companies started outsourcing projects to me.
The only strategy that I used was to show that i know what I'm talking about in my replies. So don't just say "Yeah, I can do that" or something similar. Ask questions, tell them why what they're asking for is easy or hard or how it will work. Even if they were non-technical folk, just make sure you can get the message across.
Again, just how you would behave in real life.
(If you're just starting out, take one or two jobs at a reasonably low rate to get the ratings before you ask for your desired rate. Its a compromise, but it will get you there.)
So a buyer coming in with a new request won't have this person available to him, and should he find a person, he will also try to monopolise the persons time, taking him out of the market.
After a year or two of freelancing and if you're good, you'd pretty much get to choose the projects you work on. I usually go with the projects that are interesting to me(research projects from my local university) or that come from good clients or friends.
Thanks Max.
It has nothing to do with the newsletter. But setting too low a price gives the message that you're not serious about the work or are just trying to find someone to take advantage of(and you will if that's what you're looking for).
Things like scope creep and how to return beta reviews are really spelled out well.
I'm intrigued that this might be a way to get some small projects done I've been putting off done (like a simple shopping cart app with a few specific functions, that I just can't get interested in.)
I think I need to find another trade.
If you work 8 hours per day, 5 days peer week, and 4 weeks per month, then you can make $5 * 8 * 5 * 4 = $800 per month. This is 4 times the minimum wage in Romania and Bulgaria -- it is more than enough.
$200 a week can definitely get you a shopping cart. But so can $10. And I am not sure how well it will work.
Usually for that kind of money you'd get someone customizing or re-branding an off-the-shelf open source one or some programmer trying his hand out at writing it from scratch. Use of open source components is fine and probably the way to go but its not ethical if you don't tell your client that you're doing so otherwise use a framework.
I'd say something like $500 should get you a shopping cart with the regular functionality. Probably $200 for customizing an existing off-the-shelf one.
Of course these are just my opinions and experience, so they might be completely off target.
My experiences as a hiring manager have been from having a dude stiff me for $800 of work, to hiring a full-time developer I found on rentacoder that became a personal friend.
For RAC, they used to charge 10% of the transaction value so it could build up. My experience was that most people contacted me off site after our first project but sometimes still used RAC for payment because it was easier for them(I can't use paypal). Although they were nice enough to take on the 10% charge.
Unless your product is extremely straightforward and doesn't need to be flexible in the future, there is a huge hidden cost when your developers aren't on the same page. In my experience, the result is far from "agile."