I am trying to budget our prototype development costs using offshore versus national (Spain in my case) developers.
Does anyone know what it costs to hire quality, let's say Indian or other Asian, developers on an hourly basis?
I have budgeted $10 per hour but I fear this is too little and that offshore developers and firms are charging more given the decline in the dollar.
Maybe $14-16 per developer per hour is more reasonable? This also represents the price at which I can hire junior developers in Spain as short term contract workers at current exchange rates.
Thanks in advance for any answers and my apologies if this question is too specific to my project.
Ask yourself what you want to get out of the outsourcing exactly and pay accordingly.
$10-$15/hr is probably in the range. It depends a lot on what you want those developers to do for you. Dealing with off site resources can be incredibly tricky. It's best to have a very solid plan for what you want to have done. Typical programming and QA tasks range in complexity from turn the crank to invent a new way of thinking. Have a solid understanding of the complexity of the problems you want outsourcing to solve, and act accordingly.
Consider getting bids for project rather than paying "time and material" If your tasks fit a waterfall method of development well, you can get bids on the completed specs which will often come in under what having the work done piecemeal would.
Simple or repetitive tasks require lots of supervision, but can be cost effective. You can probably pay on the lower end of the scale if you just need grunt work taken care of. It's critical that you package up the work into bite size verifiable chunks. A good example might be an API you want to have tested. You can easily measure code coverage and pay to automate testing to 100% coverage. Make sure you carefully review everything you get back. The opportunities for misunderstanding are magnified. There are lots of examples of these mechanical tasks and outsourcing can be a cost effective way to free up the home team to work on the hard stuff. Expect to have one full time employee on the home team with a primary job to manage the outsource team. That person will likely need to shift office hours to spend quality time in each time zone.
Complex tasks and problem solving command a premium. Imagine you hire a recent college grad to work in your building. They are smart, but lack context and experience. It's not a big problem because you and other mentors can check in and answer questions very quickly. Now imagine they are working on an island and only get internet access after 10:00pm. When you outsource cycle time is often increased from minutes to days. This is incredibly dangerous. If you need to outsource thinking, be sure to carve off big enough chunks and set clear enough goals that the team can work independently. Then be prepared to pay up and be sure to insist on senior workers who are on the hook for delivering the results you want.
Outsourcing is often a tradeoff of time for money. Having teams in remote location slows your cycle time. Even just having them across town hurts, and across the globe magnifies the problem. If you can afford to develop your idea slowly (say you are using your income from a full time job to fund development) outsourcing can be workable. If you need to nail your idea and keep ahead of your competitors, it's probably not cost effective.
Leave your work culture assumptions at the door. In many U.S. based companies you are expected to say no to your boss, but hit your deadlines. In other countries the default expectation is that you never say no to your boss, but deadlines are the bosses problem to closely monitor. Imagine that you sent a batch of work over the wall with an agreement it would be done by Friday. If you overloaded the team, they may not tell you. Worse, they may not complain or give any status updates up to the due date. It's not that the team didn't work hard, they just didn't understand the assumptions you had that were different.
Build explicit feedback loops into the system. Every email or work item needs to be peer reviewed before it goes over the fence in either direction. If you want a suite of tests run, send a small subset to be run on the first day and carefully review the work to make sure there is a strong understanding of the problem and the results. You might send the team off for a week to provide performance benchmarks only to find the report you get back doesn't answer any of the questions you need it to. Document procedures (wiki's are great for this) and get feedback on them before the team starts the task. Monitor results and provide a constant stream of feedback.
$10 per hour is a bit too cheap... I've been quoted between £1500 and £2000 per developer on a monthly basis for offshore (India) resource, which works out at between $15 and $20 per hour. Usually you will have the choice of having senior developers or more junior ones working for you so the cost will vary depending on experience.