Best practices with multiple developers for Umbraco?

We set up an Umbraco website which is now Live using Umbraco 7.1.6.

We are going to start having multiple developers work on the website building controls, models, etc. 

So what I did was set up a Visual Studio project using NuGet, Umbraco and the current files from our website.
I tossed it up on Beanstalk Subversion.  

Now... What is the best practice for developing using Umbraco.  Since the nodes, media, package info, and doctypes are tied to the DB, what would be the best approach.

Our plan is to have a local dev (per developer tied to SVN), a Test Website and a Live (Production) website.

What is the best approach for the DB?
Should every developer have their own copy of the Live DB?
Should all local dev site point to the Test Website DB?
How should we port Doctypes, Media and Content nodes to from local Dev, to Test to Production? (Courier is an option we are exploring).

But we want to eventually have all DB's in sync. What would be the best approach to have all DB's in sync as well as all the dev/Test/Live website.

Thoughts?  I would be interested to hear how the Umbraco crew does their development.


This is a companion discussion topic for the original entry at https://our.umbraco.com/forum/57719-best-practices-with-multiple-developers-for-umbraco