Use a Version Control system (VCS) such as Subversion or Git, and a code hosting website such as Github or Google Code. It takes some extra effort to learn, but it makes keeping track of your code changes a billion times easier, and if something happens you'll always have a backup copy of your code.
Always have code that compiles. When you make a substantial change to the robot, make a new branch (in version control) and make your changes to that branch instead of messing with your clean copy. When all the kinks have been worked out and everything works as expected, you can merge that branch into the master branch and continue the cycle.
Work in sprints. Set milestones that you want to achieve by the end of each week and try to hold yourselves to those deadlines as much as possible.
For other non-code materials such as reference guides, installers for software and compiled programs, we put them in a shared Dropbox folder or something similar (Google Drive, etc, but I prefer Dropbox.)
I can't comment on how to delegate work because our team has only had one programmer since its inception 2 years ago. Since he graduated and we gained a few new members who might be interested, I'll be interested to see how the other teams manage things.
Git (Version Control System) -
http://git-scm.com/
Github (Code Hosting) -
https://github.com/
Dropbox (Cloud Storage and Sharing) -
http://db.tt/EkhzyId
http://en.wikipedia.org/wiki/Agile_software_development