The biggest challenge for us is losing a ton of members every year (we've lost about 50% of our team every year for one reason or another). We have 3 original members (2 juniors and a senior from our first year in 2010). I find that commitment is the most important factor, especially in small teams because if you don't have at least a few committed students you can't possibly get anything done.
Also CAD EVERYTHING. It helps so much. I know everyone says this but it's so true.
Commitment ultimately leads down to our real problem. (We have 3 people there 100%, 3 or 4 there 75%, and then about 6 there 15% of the time.) This is also bad for team sustainability since most of new recruits have not really learned enough to maintain the team since they just simply don't attend enough meetings.
However, on a more positive note, having a small team allows everyone to get a little bit of everything. Being one of few dedicated members, I worked on almost every subsystem this year. It's amazing to see the integration. You probably sacrifice some quality and the ability to build a practice bot, but you learn a hell of a lot.
I just REALLY hope my team doesn't fall apart when I graduate
