Outsourcing software is like burning all the design documentation for hardware your having someone else build. Even something as well known as injection molding tends to work vastly better if you have experienced staff as part of the design process. And software is worse than that because the design process is part of development, so outsourcing means you don't even understand the problem space.