we are using the each dev having own sandbox with svn & force.com ide method of team development outlined here (http://www.soliantconsulting.com/blog/2013/03/working-forcecom-ide-and-subversion-svn).
This works pretty well, some hiccups, but the biggest problem is spinning up a new developer. The problem we have is lots of chicken-egg problems with uploading to the server. The server complains one file is needed to compile the other and the other is needed to compile the other.
For example we have a ProjectTabs.page - page which has all our tabs, and it references about 6 pages as links for the tabs. Each of those pages includes the ProjectTabs page, so neither of them compile. If I comment out the tabs page, then save them to the server, then un-comment them, it works. But this is a hassle.
I saw this similar question How to avoid circular dependancy and understand how salesforce compiles classes but didnt really see a good answer there.
In watching this video https://www.youtube.com/watch?v=HmzppTJg6N8 it seems that some of the folks are using the ant migration tool to setup new environments. I can give this a try, but wanted to see if it would solve the circular dependency problem, or if I need to change the code.