I think the main thing that often gets lost is that all of these different teams are actually subsets of a larger team.
As with any team, it's important for everyone in it to be aware of what other team members are doing, what their needs are, and so forth. It doesn't matter if the team members are devs, support, design, management, etc. Everyone has to be on the same page and understand each other.