I’ve had two experiences with off-shoring. The first time my former CTO brought in a near shore firm and they worked independently on a large project. There was no knowledge transfer or collaboration with the on shore devs. They built what was asked, it was over engineered and much was built of little value. We still have the software they wrote but it is a liability. The second time, I’m now in the CTO position, instead of having the nearshore people silo’d we work integrated. Everyone is on the same team, code reviews, pull requests, all mutually understood. It’s so much better. It all starts from the top and if you don’t have vision you’re doomed to fail.