Does quality suffer when you outsource?Yes if there is no shared definition of quality. It is generally a culture problem. Every organization has got its own codding standards, QA standards and ideals how software development should be done. It is not that the quality drops because of the talent is not as good in the outsourcing team it is just both sides could have different ideas about what quality is and how to measure it.
The trick is to try to have a joint culture about what quality is. Since it will take time you will not get the highest quality right from the start.
Also there is the concept that the organization "outsource a resource". This concept makes the whole thing a finance question and at this point you have dollars in and dollars out and some percentage discount. When one starts looking at outsourcing in that sense one effectively throws the concept of quality out.
How to structure the relationship with the outsourcing team?It will be good if you are able to give the outsourcing team a part or a segment of the work they can own. The scope of ownership should be large enough so that the outsourcing team to have an operationally focused engagement. Then they will know there is no end in sight. Because if they do a good job they will be operating the product for its entire lifetime. There is a lot more synergy with the business when the outsourcing team is operationally focused.
You are pretty much doomed to fail if you don't consider the outsourcing team part of your team. If you don't treat them as equals they will never perform as equals. When you start the outsourcing if there is an indication that you'll not consider them as equals better quit before you start.
Staff augmentation is much easier than project work because there is a necessity for the cultures to match right from the beginning and it is clear early on when it doesn't.
Bad reasons for outsourcing?Every time when you outsource only to save money you may lose some. As they say "Experts are expensive, but you have to see how expensive amateurs are!"
Good reasons for outsourcing?Scale is the obvious reason for outsourcing.
Expertise is a good reason e.g. cross industry domain knowledge.
Proximity to customers is another good reason.
Distributed work?Distributed work works when it is fully distributed or not at all. With the hybrid approach you have pockets of collaboration that are disjoint.
Be willing to invest the time and resources to make the outsourcing team successful. And... treat them as peers.