Why do companies outsource their IT departments and software development? It hurts them in the long run, as they lose control of the knowledge of how their company works. They also have trouble conveying the changes they need to make to people outside their company. And the their party can also get into trouble, go out of business, disappear etc.
Companies outsource because the connection between IT people and non-IT people has not been made. The non-IT people who run companies feel out of their depth in knowing how to build a proper IT infrastructure and software development for their business. So they just want someone else to do it for them who knows how to do it.
Software development has failed to create the intermediate communication medium that both IT and non-IT can use to think about their infrastructure and software development. Without a communication medium, non-IT people can not think about IT without becoming IT people.
The communication medium does not exist because software development has failed to find a way to have programs understand information. That is level 3 work. The focus of my work is to build the connection between IT people and non-IT people. Level 3 can solve the IT outsourcing problem.