Teams in general should always be made up of specialists. Thats the point of teams, to have collaboration between people that know specifics of certain things. Teams of generalists will just be a bunch of people that are ok at a bunch of different stuff and will either end up specializing in one thing anyway, or just being mediocre at everything and bumping into each other.<p>One-man bands are a different story though, if a full engineering team is not feasible, a generalist who has a broad but shallow knowledge of lots of things is far preferable to a  specialist of one.