Thanks @Steve, @Jonathan and @Ajit for your comments.
Based on your comments and the ones found in previous conversations, I'll try to summarize it this way:
• Outsource Vs Offshore
It seems that outsourcing is a project-based approach while offshoring relates to having a dedicated team taking further responsibilities on the software development and growth, providing more buy in and commitment from the team in the long run.
I'll use the term outsource here after for both meanings to keep it simple.
• What do people outsource?
- product management
- high end QA
• Reasons to outsource IT developments?
- lower cost is the most common reason, especially to build an MVP for a startup
- time difference can be an asset (they produce while you sleep, then you revise when they sleep)
- highly skilled engineers at a lower cost
it seems that outsourcing leads to either successes and failures. But when the client is an engineer, or at least has IT development skills, chances of success are greater.
• Conditions of success
- send the entire project offshore, with the product manager
- if you are not an engineer, you need to have a CTO to do the interface, or find an IT firm who can do the interface for you
• Issues to look after:
- intellectual property
- language & cultural differences
So this leads to another question... which direction is this going to take?
If we consider that the demand for IT engineers is increasing pretty much every where in the western world, and elsewhere I presume... and the number of new engineers arriving on the market annually, is the demand going to exceed the supply, thus obliging us to outsource even more to remote locations like India, Costa Rica or Ukraine?
Which scenarios can we do?