Though I'm a developer, I outsourced the development of my side project, http://www.watermarquee.com. That was a bad call on my part.
I used oDesk to hire a development team from Indonesia. At the time, with a small baby at home, I felt like I didn't have the time to develop it myself. Also, I was just learning Rails, and felt that if I wanted it done right, I should hire a professional, instead of trying to learn as I went (I had written the free version myself, and hired the dev team to make the "Pro" version which costs $5/month)
The development team did a good job, but only after the work was complete did I find out they implemented some things differently than how I would have preferred (my fault for not paying more attention). Also, it ended up taking much longer than I thought and, thus, costing much more than I had anticipated.
Knowing your application code from top to bottom is the only way to be able to maintain it after the development contract ends. I dread having to modify my app because I don't understand it all. I've done other projects since then, and wrote them myself (in Sinatra or Node), and am now way more confident in my development skills.
I was going to email you but you don't have contact info in your profile.
Small tip: Please change the link that the logo on that top of your blog goes to. The self reference to blog.hwatermarquee.com is silly and pointless. Change it to www.watermarquee.com so folks can easily get from your blog to your actual site (without having to click the "give it a try" link... which scares me because I assume it's going to dump me off at a form to signup rather than the site for more info.)
When managed properly outsourcing doesn't have to be a problem. Bad hires do tend to take a bit longer to show themselves and could end up leaving a bad taste to everything outsourcing related.
A few years ago I did some work via oDesk and ended up with a permanent contract for a US/Mexico based company that allowed me much more freedom than I would have had working at any South African company in my area.
Overall I enjoyed working with most of the other employees from across the world and some of the brightest people I've worked with was part of the team. I do think however that it probably put a lot more pressure on our manager than most conventional environments would.
Oh, as a side note. The company I ended up working for also used a timed "mini-project" to filter out some candidates, it wasn't much more than 2 days worth of work. After that I also went through a telephonic which was more of a introduction to what the company was doing as well as a bit of a culture check to see if I would fit in.
> Seriously, if you are an online entrepreneur, do yourself a favour and start outsourcing. It is low risk and has great returns.
If you are a serious online entrepreneur and have 0 experience outsourcing online, be very careful. It's very hard to find the right developer at $12/hr. The picture isn't always as rosy as the OP paints it.
> Once I picked three candidates, I tell them they are entering a trial period where I need them to develop a small project.
This is really good advice, but this means you hired a developer at 3 * $12/hr, which means you're project actually cost you $36/hr. This is reverse thinking for many people, since most people go to oDesk/elance/etc because they think their dreams can be created for $12/hr right off the bat. The reality is, you should expect to pay a large amount of money up front (trialing developers) to then get lower ($12/hr) returns later. This is a massive misconception in the outsourcing world.
The miniproject is not the reason why I hired him.
I was hiring a web developer to help me work on weekplan ultimately, the developer over the course of the year will cost me much more than 6h*3 worth of work.
For $12/hour you are not going to get the right stuff, not by a long shot.
By rule of thumb, if you are paying less for a professional in a job that requires decades to do well, than you'd pay a McDonalds burger flipper, what you are going to get is a McDonalds burger flipper. Good luck with that.
You know how companies always like to tout that they hired the cream of the crop, the top percentiles? Well, by aiming for the $12/hour price segment, you've made the reverse commitment, you've decided you're gonna hire from the bottom 10th percentile, if even that.
As Paul Graham noted, the productivity difference between an average developer and a great developer can be as great as 50x. I'm leaving it for you to figure out what the difference between a bottom barrel developer and a great developer is (hint, it's probably more than 50x)
I don't know if the author considers Czech Republic as part of Eastern Europe but $12/hour is pretty low there. It would be OK for a high school/undergrad student to earn some extra money that way, but other than that it must be a desparate "developer" to work at that rate.
fwiw, 12$/hr is very low for a good Indian developer who lives in any Indian city of even moderate size. (I am sure there are some people who live in rural areas and/or are sufficiently desperate to work for 12$.)
Interesting that Eastern Europe seems to have cheaper developers than in India.
Median salary for junior .NET developer in Ukraine is $1500/month.
This data comes from full time employees, not freelancer.
It is obvious that freelancer should spend more time that full time employee to get the same amount money.
So, $12/hr is below the average for Ukraine.
I am RoR developer from Ukraine, with 4 years of experience and 'Rails Core Contributor' achievement, my oDesk rate is $40/hr. And I consider it low.
TIP: Don't hire developer from Ukraine for less than $25/hr, or you will get into trouble.
Great writeup. Another approach I've seen to get inexpensive face-to-face work is to call a local high school (sometimes college) and ask the CS teacher if any students have some knowledge in web development / mobile development that they gained outside of school, and then see if such a student wants to work for you. It's usually a good deal for the student since they get to improve their skills and learn more while getting paid better than a bagger's salary, and it's a good deal for the boss because the student is probably a quick learner and can fill in any knowledge gaps quickly, plus a part-time work agreement during the school year is a low-risk trial period that can lead to full-time in the summer.
Outsourcing to $12/hr programmers works well when you're designing the structure of the code and the way things work. Not so well when you give them a free reign of how to code a feature (for example)
Not everything can be outsourced. Like someone said in the comments, it is harder to outsource a new project, much easier when you are set the conventions in place already.
Also a lot of companies still need face to face. I am a freelancer myself and I don't feel threatened by outsourcing.
Integrity is a big problem with outsourcing projects. How do you know that your dev wont make a spin off of your product or give you a little "present" within the code in case you decide to fired him? I am sure that the people who outsource their projects for $12/hr won't even care about legal binding.
Not to mention, integrity is just one of the many problems. So, I don't see why you should be worrying.
I think going with that nomenclature most of those countries (Ukraine, Hungry, etc) would be second world countries. If I remember correctly folks in the US coined those terms during the cold war. The first world countries were the US and allies, second the USSR and allies and third world the unaffiliated countries. Third world has come to be used as a term for impoverished countries as many of the unallied countries at that time were rather poor, but that wasn't the meaning. Somebody should definitely spot check me on this postulate before they accept it as fact.
Originally, first world = NATO + allies, second world = soviet bloc, third world = countries that were politically and economically too poor to warrant investing much effort in. It was a Cold War thing.
These days, first world is synonymous with 'developed', third with 'developing' and second doesn't really have a meaning.
Yes, the standard of living in too much of Eastern Europe is quite low. Perhaps not as bad as some of the _worst_ of 3rd world countries, but low enough to make the $12/hour the author paid quite high.
I don't know about Ukraine but I think that standard of living is not low in EU countries such as Poland, Czech Republic, Hungary or Slovakia. In all of these countries is $12/hour well above average salary. In the CS field it's probably below average, but you wouldn't have problems with finding a skilled student for that pay for example.
By the definition posted bellow they are all 1st world countries. In what I consider a 3rd world country most citizens don't have access to clean water, "proper" housing, health-care, etc... and $12 is closer to a weekly salary. And I'm pretty sure the lowest standard of living is much worse (and affects higher percentage in population) in India or all of the South America than it is in Ukraine.
I'm from Europe and I somethimes feel like that.
North- and West-Europe (France, Germany, Sweden, UK and stuff) is mostly Okay, but the South and the East is like they are stuck in the past.
According to the original definition, the region in question was all Second World. According to the modern definition, there are developing nations in Europe (eg Albania, Belorus).
> That lives you with around 30 applications. Off these applications, I focus my attention on Eastern Europeans. In my experience, Eastern Europeans have the right mix: low cost of living, high level of education, high level of integrity.
> I have hired developers from India in the past but it is harder to find the good ones among a lot of low quality applications.
Since when is it okay to be casually racist when making hiring decisions? There's a reason this sort of shit is illegal in the US when hiring employees.
He's not being racist, he's basing a decision on previous experience. He didn't just decide "I won't hire anyone from India" - he tried it (it sounds like he tried it more than once) and didn't have a good experience so he's decided not to repeat that mistake. He doesn't think all Indians are bad programmers just that it's easier to find a good one in Eastern Europe that meets his requirements.
I'm an Indian, and I didn't perceive that comment as being racist. It appears to stem from the OP's experience. And it is true: there are a lot of low-quality developers in India (but also a few very good ones.)
Generally, I think outsourcing has gotten a bad rap because a lot of the poor quality firms / freelancers that have sprung up. The big sites like oDesk, eLance, etc. have certainly helped to prevent the scammers that initially populated the field, but more and more quality firms are popping up in countries like the Philippines.
The key to outsourcing is doing it right. Outsource work you or key players shouldn't work on. If you're a design company, find someone to slice and dice for you. If your a coding company, find someone to design for you. Find a partner that can be trusted and you work well with and you're set.
Outsourcing is something I need to get better at. For some reason I never feel at ease giving away control of my projects, which is why I often end up spending time on peripheral things like setting up servers or coding up mockups.
There's also the fact that I would feel bad about hiring someone for $12/hour when my own hourly rate is more than 10 times that. But at the same time, I would definitely not be able to afford somebody as expensive as me (or even half as expensive)…
1. Someone paid $12/hour is actually a good pay in some regions of the world. Even paying a virtual assistant $5/hour in the Philippines make sense financially for them. So don't feel bad, you allow someone to be paid well and have great flexibility at home.
2. That's why the mini-project helps, you get to judge the person's trustworthiness. There is a risk in outsourcing, I can't deny it, but the returns far outweighs the risk for me.
I like the idea though, it shows you can find the right people without throwing too much money in, provided you plan it right, and put yourself in the developper's shoes at some point. It would be interesting to evaluate how much the recruiting costed you as well in the price. Your time, the paid (I hope they all were) trials, and the time to organize your guy's work once in the place.. Just being curious!
Why do you think it would result in better result? You are assuming people from countries with higher cost of living would do a better job than people from countries with a lower cost of living. This is just not true.
That's not how it works. Devs place bids within the users budget. Typically the dev who quotes the least will be chosen for the job so when the budget is $12-17 you are most likely to get selected by bidding $12.
I used oDesk to hire a development team from Indonesia. At the time, with a small baby at home, I felt like I didn't have the time to develop it myself. Also, I was just learning Rails, and felt that if I wanted it done right, I should hire a professional, instead of trying to learn as I went (I had written the free version myself, and hired the dev team to make the "Pro" version which costs $5/month)
The development team did a good job, but only after the work was complete did I find out they implemented some things differently than how I would have preferred (my fault for not paying more attention). Also, it ended up taking much longer than I thought and, thus, costing much more than I had anticipated.
Knowing your application code from top to bottom is the only way to be able to maintain it after the development contract ends. I dread having to modify my app because I don't understand it all. I've done other projects since then, and wrote them myself (in Sinatra or Node), and am now way more confident in my development skills.