I’m simplifying but generally pods, our name for cross-functional teams of product, design and engineering, expect a unicorn. I hired people all with a core of product design skill but not everyone had the pixel-perfect UI skills expected by product managers. The agency model means specialties can be spread to multiple features, and design works closer together. The pros to me were unified design patterns, more collaboration, our styles meld together naturally through pairing, less requirements for style guides and documentation, move faster, etc. You want to cover the UX spectrum with a design team and nobody is excellent at every part of UX design. Competent yes but not excellent. The argument for cross-functional teams were that it works in larger companies like Facebook, teams can build, experiment, launch faster with more engineer and designer pairing, etc. My frustration was with non-design and non-engineers deciding this for me, and my mistake was not accepting and adapting faster, as well as making trade-offs concrete in dollar terms.