I work on a team of 15 devs, 5 product managers (POs), 4 testers and 2 designers. We currently use what I'd call a project-based model. As projects materialize, we spin up project teams to tackle those projects. Then we wind them down as project needs diminish.
I realize this isn't particularly agile for a number of reasons - chief among them (for us) is the fact that we can't possibly establish any kind of predictable velocity. Devs rotate in and out. The work becomes more about "what do I need to get done this sprint" vs. "what does my team need to get done."
So, we are exploring a more traditional model in which our 15 developers are split into 3 static teams. But that's where it gets murky, because each of those teams will need to share the other resources. For example there will be 2 teams with 2 POs each. Another team will have to have 2 testers. Meanwhile 1 team won't have a dedicated designer.
The loudest concern is coming from the Product side, and it goes like this: What happens if, say, 4 devs from each team of 5 are dedicated to medium/large projects (all contained within each team) with each 5th dev chipping away at the backlog ... and then there's suddenly a new medium/large project on the horizon?
In our current "projectized" model we'd be able to spin up a NEW team consisting of the 3 floating devs who are chipping away at the backlog. But obviously this would defeat the purpose of 3 static teams.
Thoughts are appreciated!!