Recently, I witnessed a conversation with several true technology gurus I greatly respect. They are about to build a very advanced, if not revolutionary, product using top-notch technologies. Very fast, they realized that they didn't have engineers to make it (which was one reason I became part of this conversation). However, further development of this conversation made me sad as they quickly concluded that an outsourcing partner could not build a complex product from scratch.
Their arguments were very clear:
1) outsourcing companies don't have top-notch engineers required for such a complex product
2) vendor staff cannot work independently and requires close guidance
3) you cannot delegate decision-making to your vendor
Unfortunately, I understand where this is coming from. I've seen many projects fail while executed by outsourcers, and I must admit, not all vendors are equally good - some did a great job diminishing the entire application development and maintenance outsourcing model being driven by short-term results, not long-term value.
Moreover, a significant part of our project pipeline only exists because somebody else failed with delivery, architecture, or expectation management (and the proportion of such projects is growing).
But I'm strictly against concluding that outsourcing does not work for complex engineering and product development, in particular. This may be because I was blessed to work with great teams in the past and have a fantastic team right now. So I often see the opposite cases: when experts from outsourced local, remote, or distributed teams are working hard, having the highest sense of ownership of what they do, and contribute to building a better product but time, for example, by critical view on things and generating bright ideas.
This is not about your engagement model, this is about people (like most of the things in the IT services space). If you can find, develop, retain and motivate the best, and work with them like one team regardless of what is written in your MSA, outsourced talent is no different from in-house. It is naive to believe that legal frameworks or labor law regulations define your success when doing your R&D, facing uncertainty, or struggling to make optimal decisions.
If you work with a reputable and trusted outsourcing partner, you have lots of benefits (flexibility, easier access to expertise, cost efficiency, just to name a few) while still can feel like you are one team.