This question might be a little too open-ended, because there are so many variables involved. I'm sure someone could describe a modern take on Brooks' Surgical Team from MMM.
I'm wondering what people's opinions are on specialists vs. generalists. Should you build a team of people who can pretty much do it all (jack-of-all-trades), or should each person be totaly focused on one aspect of software engineering, leaving the big picture to the development lead?
I tend to prefer generalists, because it gives you a lot more flexibility when things change, and developers who understand the big picture, how every part of an application interacts with every other part, tend to waste less time designing things that just won't fit.
The counter-argument to that, of course, is that a generalist doesn't have time to truly master all the intricate details of each technology, and therefore will be less effective than a specialist.