In my rather unimportant opinion, I think the most people you can have meaningfully working on a single robot is 3-4. People dedicated to things like PR or online challenges don’t count towards this, but if a team member doesn’t even get to work on a robot then I can’t see them hanging around for long anyway. If you have more than 4 then the amount of conflict of opinions simply makes it impossible to settle on a design and work together, and the team breaks into 2 smaller teams with separate designs (aka. 2 teams).
Everyone should have input on the robot design, everyone should contribute to the build, and one of your primary builders/designers should be the programmer. If the programmer never puts a hand in on the design or build, then they are frustrated that their requirements as a programmer weren’t met (number of sensors and accuracy of build), and the rest of the team are frustrated that the robot can’t magically do what they picture it doing autonomously in their mind. This alone is enough reason for everyone to also have an overview of how the programming works.
In fact, in my opinion, everyone on the team should have a part in every piece of the robot. This means that strong personalities and ideas will overrule the ideas of quieter members, but welcome to engineering. There is a reason well-performing teams never seem to have internal issues, everyone knows each other well, which makes it easy to discuss the pros and cons of ideas without it turning into a full on fight. If you have two personalities who absolutely can’t work together, then forcing them to work on different aspects of the same robot won’t help, and it’s probably time to get a second team.
That said, I know there are large top teams who break into sub-groups, and perform very well, they just seem to be in the minority to the top teams who have a small focused group (or even a single person), who knows and contributes to every area of the robot. Credit to these teams for having that level of organisation and cooperation. Obviously this isn’t possible for teams with few parts and large number of interested, inexperienced members. Know your resources, and decide what kind of team you want to run based on them.
Driving is the number one hardest role on a team, it requires the most natural ability, the most practice, the most dedication, and is under the most pressure to perform perfectly 100% of the time. If you don’t have an amazing driver you simply cannot hope to win on a world stage, and there is a reason why the drivers are the rock-stars of the top teams. When I first started Vex, no one on our rookie team wanted the pressure of driving, and we ended up voting someone in simply because they had the most natural ability. He then practiced for hundreds of hours over two years to become one of the best drivers in Vex. The drivers who opt-in despite having no practice, without taking any thought for how much responsibility they carry for the team, are never going to be better than casual educational teams (which isn’t a bad thing, just a different set of goals). There is a reason why the robots skills winners correlate so strongly with the top teams in vex, and the value of an amazing driver should never be underestimated.
Also, I agree with the many people who insist that a single driver is better than two. No matter how well two people communicate, it will never be better than the neurons inside a single brain, and every disagreement in judgement between the two will slow you down. There are very few robots that are technically difficult enough to require a second driver just for extra fingers, it is simply a case of more practice. I think the only time two drivers are justified is when there are two independent set of decisions to be made (e.g. Tether bots.)
P.S. I don’t consider myself a top driver, not even a competent driver. I have simply had the opportunity to work with, and talk to, many of them. If you had seen the amount of time they have to put in, and the amount of pressure they work under, I’m sure you would see my point.
EDIT: Remember that VexU teams are in the unique position of being able to help their local regions a lot, mentoring, volunteering, and general organisation can all contribute a lot to the kids in a region, and you don’t need the most experienced members to do it, the more the merrier. You just need members who are enthusiastic enough to give up a few weekends for robots.