I made a living a few years ago by fixing websites that offshore developers have created.
I'm not saying that offshore developers are bad developers. Communication and the difference in mentality creates a huge chasm between US and abroad.
You can outsource website design, graphics etc but for serious programming I would suggest to look for a good developer in your network.
In my experience, offshore developers work if you have a highly technical person in the states that can feed them detailed specs and review their work on a regular basis. You can expect to pay between $15-$20 per hour per developer. I've worked with a company called EffectiveSoft (based on Minsk, Belarus), but there are several others to choose from.
I think it's worth the premium to go with a known company over an individual since companies generally care about keeping you happy (reputation), and will quickly replace developers if you're not happy with their performance. You also get a chance to interview developers over the phone or IM before you agreeing to work with them.
I agree with Ellery and will go on to say that unless you have managed a team of developers locally or have developed similar software yourself, it will be a disaster. Remote management is challenging. Remote management with differing cultures and languages is even more so. Doing it with no understanding of the technical side is just a waste of time and money.
I have seen cases where it worked out OK. (These were the exception)
Yes, you can definitely outsource or partner with strong service providers. We have worked with startup's and large Enterprises in building the products from the scratch.
But, with so many vendors claiming their competence in IT Services, it is often overwhelming to pick the right offshore partner. The fact is that most of them have no foot-prints in IT Outsourcing. It is suggested that it helps to follow a structured process, as described below, to arrive at the right partner.
Learn - Identify - Seek Information- Evaluate - Check References - Select Vendor - Try pilot - Scale-up
Learn: When considering a successful outsourcing initiative, it is very essential to initially understand the concept of outsourcing and industry trends. Also, set your strategic and tactical objectives upfront.
Identify: Identify offshore companies based on clientele, references, known-contacts, market-research firms, search engines etc and prepare a short-list of them – not exceeding 6 to 10.
Seek Information: Obtain detailed information on company, infrastructure, scalability, clientele, relevant experience, references, technical competence, global presence, multi-language capability, disaster recovery, IP protection practices, quality and process standards etc.
Evaluate: Critically evaluate telecom infrastructure, technical competence of the resources, HR policies, cultural fit, process compliance such as ISO/ISMS etc.
Check references: Speak with management of offshoring companies, their employees, and obtain as much information as possible from their other clients – preferably visit their clients.
Select Vendor: This is the most important activity of outsourcing initiative. It is important to select the right partner from heap of several who claim they are good vendors. Make sure, you get the executive commitment from the offshore partner company - that goes long way in your success.
Try Pilot: It is always advisable to try small and then expand quickly. Pilot should help you assess your partner’s competence in terms of telecom suitability, management commitment, technical competence, process adherence and SLA compliance.
Scale-up: This is the time for you to scale and reap the benefits of outsourcing to the fullest extent. Prepare the transition plan based on modules of the product, or geography of the customer base or simply number of resources.
I own an offshore outsourcing firm, and I can tell you that while most startups are vehemently against outsourcing (especially offshore), they are starting to do it all the time.
There is a cultural and emotional barrier to offshoring tech for startups - they feel obligate to adhere to the hipster image of staying up late at nightm, saying 'agile' and 'pivot' a lot and wearing kitchy t-shits. But, the reality is that getting to market is getting to market, and as long as you can deliver a quality product you can do very well with outsourced programmers.
Of course, it's not easy and most offshore efforts fail in some way. But, that's not because the model isn't good, it's because offshoring requires that someone be a manager and not just a coder. Great coders are hard to find, but truly great technical managers are even harder to find and without one (on either side) most offshore efforts will stumble.
Unless your project is very small or you are skilled manager, I'd skip oDesk and Elance and move towards a managed model where there is a domestic project manager OR an expat manager on the other side. Expect to pay somewhere between 40% to 70% of what you'd pay in the US if you are realistically budgeting for success. Good luck!
My two cents:
In terms of hiring developers, the best way to go about it (that is, to sort the wheat from the chaff) is:
Regarding graphics and design outsourcing, my experience to date informs me that it is largely a waste of time (especially if dealing with individual freelancers, etc.). The cultural divide becomes very evident. Beauty really is in the eye of the beholder you will find, and culture plays a very large part in notions of beauty. For design related work, I'd recommend going with a larger company which has experience dealing with Western clients. The problem with that route though is that you are unlikely to see the significant savings which justify the whole outsourcing process.
In my opinion I would hire offshore developers because it is a great way to save you cost and go green. I also believe that it is worth it because there are lots of small business company do this especially on start up. However, I would say that not all are capable to do the job but there are guides to help you look for the right one for the job. When hiring don’t focus only on one area or hiring only on job sites like monster.com for instance. It will miss you a great opportunity of hiring a highly talented person for the job. Another thing is before hiring tests them first so that you can effectively know what they are capable to do especially on the actual job.
With all the negativism surrounding off-shoring, I would like to point out that not all off-shoring efforts need to be associated with low cost, language-barrier, simplistic work.
I routinely work with developers / designers around the world to deliver projects that simply couldn't be done as easily with local resources. I work with the experts of open source communities & their global relationships to deliver complex solutions. Since many of these people choose to live where they do, and migrate throughout the world based on seasons, they are very capable individuals and are good at dealing with email / IRC / basecamp interactions to help bring the projects to a successful conclusion.
A general rule of thumb (speaking from experience): you get what you pay for.
I have worked with many offshore companies (my co-founder) is offshore and extremely competent. However, his rates were just as expensive as people nearby.
An hourly rate will be misleading since a "cheap" developer will take much much more time to accomplish the same task as an expensive developer.
In addition, you will serve as the PM when you outsource, whether you want too or not!
I would highly suggest finding someone local to become a co-founder, give up some equity and find someone willing to work as hard as you do -- which, should be about 24/7.
I did not- I had a hard time finding a US software developer for a program I wanted, but I'm glad that I connected with him. I wanted to be able to meet in person at least once and felt better about having someone nearby in case there were any issues. It was complicated enough getting things working that I am glad that I did not have language barriers, time barriers or the like. My family has used offshore developers for easier projects though and I think that they've been happy.
I have lived both sides of the argument and believe me its not an easy question to answer as a lot depends on you/your team and your offshore team. There can always be exceptions.
IMO offshoring can bring in value in the long run than in short run (esp. in software development). There are lots of areas where offshoring can bring in value (e.g. 24 x 7 maintenance, testing etc.,) directly.
You should take one step back and ask yourselves whether you have a technical founder to manage the software development process.
You should have a clear vision what you are looking for v1.0 before you decide on your team ... the nearer the team the faster the turnaronud could be.
Remember...you get what you ask for!
I would experiment with a small project and don't commit. If it doesn't work out, try a different developer or go for a local developer. You can usually tell a lot about the quality of a dev by the way they respond to the brief. Also whether they know anything about Agile, what is their testing procedure-- these are some questions to ask to find the quality of devs.