Gamasutra has a couple of very interesting articles
Hiring Game Designers and Building A Great Game Team: Measuring Progress
Neither of these talk about the hiring process of building out the team as a whole. I believe that great development teams, no matter what you are building, are like rock bands. You can't have a band with all guitarists. I guess you could, but the music wouldn't sound that great. Instead of having 6 guitarists, it's better to have 1 drummer, 1 singer, 1 bassist, and 1 guitar player, other things are options like a tambourine or rythm guitar.
The way that this applies to programming teams is that you can't have a team full of OpenGL experts. You'll never get any art or music created, the story will be kind of crappy, and the multiplayer won't work that great. So, this might be filed under "completely obvious", but the way I see it there should be some fundamental roles of any team. These can be filled by an entire team or a single person but they must be filled:
- Design / Story / Play Mechanics
- Visuals (2d art, 3d art, Video)
- Sound (ambience, music, voice, etc)
- Game Code / (opengl and/or 2d drawing)
- Networking Code / Multiplayer / Match-making Services
Other specific things like game menus, build management, setup and deployment could be others. So first, are these the right 5 areas and/or am I missing anything? And furthermore how can we be sure we are putting the right people into these roles to get the best game?
Edit: I know this question is pretty vague, I kind of kept it that way for a reason. I'm looking for some general anecdotes from game industry veterans for what works well and what doesn't work when building a team given a blank slate. Echostorm's answer about community leader is a great example.