We are currently in the process of developing what will be the next big release of our main Salesforce app. Right now our sandbox situation is a mess. We have 7 different sandboxes which are being used for various reasons. Several are purely used for "experimental" type of development. Some are for very specific types of development. One is a purely configuration sandbox used as a backup for production. One is meant to be a picture of what our environment will look like after our upcoming release.
As it is today our "main" sandbox - which is meant to be a picture of what our production will be after our next release - is not really a perfect picture of that. That is because some of our developers thought it would be a good idea to do development directly into production because it was needed immediately, and some of that development will also be part of our upcoming release, some will not. Some of that is considered "temporary" and will be eliminated with the new release. Some of it will be incorporated into the new release. And to make it worse, that new development was not put into our "main" sandbox. There will need to be further "temporary" development between now and the release of our upcoming new version.
So, my strategy for cleaning up (and regulating) our sandbox situation will be this :
keeping the "experimental" development sandboxes. They're not hurting anything because any development that gets done there will inevitably be put into the "main" sandbox
creating a "Day To Day" sandbox which will always mirror the current production. Developers will be able to do any kind of development which will be needed immediately. That development may or may not be included in the upcoming release.
using a "New Release" sandbox. This will always be an exact indication of what our production will look like at the time of our new release
Is this the proper approach to this all ? Does anybody have any opinions or advice on this ? Do you see any potential problems with it ? Is there a better approach ? It seems like the "safest" approach, but I'm not sure if it is the best or most efficient one. I have other concerns but I won't go into it right now just because I don't want this post to get too confusing. (although it's probably too late for that)
Thank you for any advice or feedback you can give.