CAF shared development


I’m looking for comment or environment management tips on shared development in CAF projects. If anyone has established an environment management guide I’d welcome any information.

In particular:

Is it best to have developers use a local MWS server to test changes or a shared dev MWS server.

If a shared MWS dev server how is it best to handle things like branching & versioning - for example someone is working on Portlet B that works with Portlet A v1 whilst someone else is working on Portlet A v2.

What are the best ways to manage deployment - for example Portlet A v1 needs to be deployed to UAT / Production but the current version on the dev server is Portlet A v2

Any automated build / deploy processesm particularly that integrate to subversion.