So you have decided to explore the 'outsourcing' option...great. You have thought through your objectives and decided on the 'functions' or 'domains' to outsource partially or outright?... great! so what is it that you are looking for?.... 'a reliable software development partner' did you say?.... buona fortuna.
Firstly get it in your head... embed it. Your organization is unique, and you must think hard about your best fit provider to gain 'across the board' benefits from a technology partner. You need the right 'tech' partner for 'YOU': a service provider whose skill sets, creativity, desire for success, innovative mindset, attitude, principles and values will complement and enhance your own.
It is not black and white it is a freakin' rainbow! if you want to get the best out of a team... the team must gel....that's common sense... for tech outsourcing to succeed your internal team (be it program management team or the in-house development team) and your external provider's team must work as a single business unit. Though it wont happen overnight you can maximize your success rate by being methodological about your partner selection.
At the start of my career as a technology entrepreneur I too made the most common of mistakes that I now see many companies making and have on occasions been called in to parachute their projects out of trouble for. That is jumping the gun on partner selection! you know what functions, projects and roles you want to outsource and you go full throttle looking for a partner without any consideration to the location model you ought to use. Yup... location, location, location as Kirstie Allsopp keeps reminding us!
Before you think of the partner you need to think what will work best for you: completely onshore? completely offshore? a mix of the two that is called hybrid, right shore, smart shore and a gazillion other things! Each location model has its merits and demerits, some are infinitely better than others but what will work like a charm for one project may not necessarily work the same charm on another. Onshore, near-shore, offshore or a hybrid model? ideally you should not have to choose one or the other, You should have what works best for you: and be able to chop and change as required.
I have a preference for a hybrid model: an onshore and offshore base for me is a must in any software services partner, it mitigates a number of risks automatically from cultural, exchange rate to territorial risks all in one go. How so? Simple... you contract with your selected partner onshore and hence are legally secured in your environment and are not at the mercy of an arbitrator or a court in a far flung land in case the worst does happen.
The most important requirement in my experience is to have the ability to interconnect as many skills and talents as possible and have the support to distribute work or requirements to the right skill sets wherever they may sit in the world. You need to think more along the lines of collaboration rather than making your weakness someone else's challenge! - which is frequently witnessed in outsourcing projects - it is not about washing your hands clean it is about building a deliverable together.
So the answer to the question: onshore? off shore? near shore? or Hybrid? is 'Anyshore' that works best for you! as I said earlier my preference and acceptable risk exposure meant I set up a hybrid operation with onshore and offshore delivery capabilities. And it has worked out really well for my own products, projects and my clients. Using a hybrid model provides the peace of mind of working with a local partner and the benefit of our offshore arm without the risks associated with a pure offshore operation.
An alternative scenario your software service partner may have an onshore presence and facility but you may not make use of it and concentrate on their offshore capabilities. I work with my clients on different models: some clients prefer to exclusively liaise with my onshore team and leave the management of delivery by the offshore teams with the onshore project managers, others who have their own internal project management capabilities choose to manage and liaise with the offshore team themselves. Ideally you need to have a partner that can offer both onshore and off shore or a mix of services best suited to your projects and processes.