Having separate teams makes it adversarial because both orgs end up reporting into separate hierarchies with independent goals.
Think about the metrics each team is measured on. Who resolves conflicts between them? How high up the org chart is it necessary to go to resolve the conflict? Can one team make different tradeoffs on code quality vs speed from another, or is it company-wide?