We plan to set up a virtual server that mirrors the production server and do our testing and development on that platform. When tests/development are completed and ready for production, at this point we plan to recreate the changes on the live site by hand.
We plan to use the Backup/Migrate module to attempt to keep the correct version of our live database backed-up and consistant with our development database. I'm not sure how this will work yet. We may call a halt on data entry on the live site when we're ready to move development work to the production server.
We plan to try out Subversion and see if it does what we need for our situation. Being a small shop, I suspect it may be overkill, especially since it is completely new to us and seems to have a steep learning curve. However, our consultants had this to say about our concerns:
Yes, Subversion can help coordinate changes among multiple developers, but the main reasons we recommend it (or any version control system) are valuable even for a team of one:
1) revision tracking, and
2) ease of moving changes from development to staging to production servers
Number 1 will give you the ability to rollback changes, but it also inherently backs up your site files (complementing a database backup system) and gives you an analysis tool if you need to sort things out. Number 2 is quite valuable even thought it only handles the files aspect of your site, not the configuration.
So we'll give Subversion a try, which means we'll need to subscribe to a svn repository as well.
Wish us luck...