The problem is, internal people often are afraid to take risks to implement something brand new because they know they will be going through performance reviews. When the internal staff is empowered by management then it can be done but managers are often not inclined to trust their people enough to empower them at the required level to take on high risk projects.
There's also a liability aspect in publicly traded companies. It's easier to lay blame on the outsourcing company when the project fails and conversely take the credit when it succeeds. Either way, the outsourcing company wins because they get the latitude to design and program their way and get paid as well as experience.
For public companies, outsourcing is a win/win and the cycle continues.
You payed a billion dollars for a solution and instead of a product that can be used you get to throw the blame of the failure in someone else? I can see your point regarding internal people making hard decisions, but this is simply a "hide my ass" win/win.
If your managers/team can't manage your innovation projects you should get someone that can, otherwise the market will eat you after a couple of those "wins", in the long term you are losing.
I wasn't advocating, just mentioning what I've seen. your message is right, management needs to trust their people more is what it comes down to. Incidentally, it's paid.
There's also a liability aspect in publicly traded companies. It's easier to lay blame on the outsourcing company when the project fails and conversely take the credit when it succeeds. Either way, the outsourcing company wins because they get the latitude to design and program their way and get paid as well as experience.
For public companies, outsourcing is a win/win and the cycle continues.