Sandbox
Overview
A sandbox is a development or testing area where bug fixes, enhancements etc. can be made before being pushed to production.
How Are Sandboxes Used?
Developer/Developer Pro
Great for building, enhancements, writing code and testing. At the time of creation both have exact copies of the metadata (configuration) from their production environment.
Developer Pro
There is more space for Data in them than developer versions.
Partial Copy
Includes all metadata PLUS some real data from Production. They allow for real life scenario testing. The amount of data varies based upon the size of the Production org.
Full Sandboxes
Go even further than partials by providing a space that has a full clone of production data and metadata. These are great for integration and load testing, but do have a larger refresh interval than Dev and Partial copy instances.
Scratch Orgs
Quick disposable orgs. They don’t have production data in them and they are best used in Agile build processes, where you could use a clean slate to work configuration in and spin them up quickly.
Best Practices
While sandboxes are powerful tools, it’s crucial that they be used correctly starting with choosing the right type.
- Developer and Developer Pro for configuration
- Partial for testing with small data sets
- Full for comprehensive testing
- Scratch for agile development.
Sandbox Administration is key to helping plan refresh schedules, organize Sandbox Names to denote the use of the sandbox and control user access to ensure permissions aren’t too expansive or restrictive.
Ensuring source control and documentation is also important. Tools like Git, Bitbucket etc. allow you to have version control for metadata, tracking changes and allowing the ability to restore prior versions of configuration if necessary.
Documentation allows an avenue for all people to see change history, knowing the what and why configuration was implemented paints a picture and aids in understanding how process and functionality became what they are today.
Who is Impacted?
The impact and importance of sandboxes are felt by all users and admins of a Salesforce environment.
Admins have a space to make and test changes before deploying them to production, and end users have an area to test changes before introducing them into live environments.