An old Debate that is still relevant; and there are a bunch of valid points on every side. Most arguments on all sides are reasonable and often correct and it all finally drops down to an individual or the company that makes the call.
The question is what’s best for me, for us?
Is cost alone the reason to make a choice?
Offshore has always been associated with lower cost and so when it comes to financial gains it without doubt will excel both the other options. But are you looking for the cheapest option or are you looking for the best option. If cheapest then you still have multiple choices of a location that you can choose from. Here again you have to make a choice that is sometimes beyond just cost.
Argument: Cost is not necessarily the reason in deciding where to get the work done. In business you don’t buy things because they are cheap.
Can Quality be the benchmark for Choice?
May be, May be not; Define what’s the quality you aim to achieve, Once you do that it might happen that you might have a different point of view. There are a few who believe that Onsite brings better quality of delivery than offshore; again debatable, and depends on what quality you envisage to bring into your product
Argument: Quality is very important, but just not strong enough a point to bank as every software fails, though some fail everywhere. You can always improve; process, time and money available is what will define the quality in the end. So again, not the one reason to choose your model
Should Control be your rationale?
Having the group next to you often in the next cubicles where you can call a quick stand up and address the issue then and there and rectify any fall outs. That sounds great and a real boon of having onsite resources. But then how many situations come up that demand blitz stand ups in a work week. If you have too many you have a problem, may be the process, the idea or the team. It is also possible that you are raising your hand for every single sign of doubt when what you should really be doing is give time. You have workarounds for daily stand ups even when the team is distributed, so control is not always about being together, but the knowledge that an option to be in one room if needed is not an impossibility
Argument: Get things done without meeting; and you are sure to get more done in the same time. Being able to control failures does not necessarily guarantee success.
Is there a reason that one can bank on making this choice; the answer is yes.
Market Readiness – The aim to be Market Ready fast and on Budget. This is the only reason a software company is in business and should be the only reason when they decide on anything
You could offshore; for cheap labor and end up with lost time, opportunity and future while saving a few bucks
You could Onshore; feel good the work did not go out side the country and yet be in the same state
You could do onsite; and risk running out of cash and not test enough, launch and then have a disaster
You could also choose to decide what Market Readiness means to you and direct your focus in getting the damn software out in the Market rather than chewing over models, because if you don’t decide what and when to release your product and achieve it as planned, it is not an issue how you do it
Assuming your idea is great, failure is always the failure in being ready on time. If you are market ready faster and cheaper you and your investors will know if your idea is worth putting more into.