Small and incremental deployments of features to a Salesforce production org are a best practice. However, there are times when you need to simultaneously release multiple or large areas of functionality. Accordingly, a large-scale Salesforce deployment can invoke a high degree of ambivalence among the team involved in its preparation.
On one hand, there should be a great degree of excitement. Chances are the functionality you are preparing to implement will alleviate pain points in your existing org, or perhaps greatly simplify existing workflows. On the contrary, it’s also quite normal to feel a degree of anxiety.
A Large-scale Salesforce deployment merits significant planning and attention in order to ensure a successful rollout. You should take specific steps to minimize disruption of the production environment and operation. With these practices in place, you can help to ensure that any deployment is truly successful.
Thoroughly Test End-to-end
Often times, end-to-end testing may be neglected in favor of unit tests, to focus on specific details. Conduct proper end-to-tend testing of the features entailed in your deployment to ensure a positive and engaging user experience post-deployment. For added benefit and confidence, the impacted user groups should complete this testing.
Test Corner and Edge Cases
Salesforce deployments require that code being deployed to production have tests that provide 75% code coverage. While this is often covered by granular, code-based unit tests, applications that are business-oriented should also be subjected to efficient, yet thorough end-to-end testing. This ensures maintenance of the integrity of complex business processes.
Users typically conduct these tests, allowing for better detection of potential user-experience issues. Accordingly, after this user-based end-to-end testing, you should feel much more comfortable about user experience post-deployment.
Leverage a Full Sandbox
The Salesforce platform’s multi-tenant architecture creates significant limits when developing custom applications. Some of these limits can only be tested with large amounts of data. As such, you should conduct your user acceptance testing in a full sandbox environment. This is particularly important, as it is the only environment that supports performance and load testing. Moreover, it allows your testing environment to be a complete replica of your production org – encompassing all data (including metadata), object records, and apps.
While the cost of a full sandbox may make your team hesitant, it is entirely justified with the invaluable test coverage provided. This, in turn, greatly lowers the risk of post-deployment issues and accordingly results in saving the time and costs associated with encountering such issues.
Copy the Existing Production Environment
Version control tools, such as Git and Subversion, are an excellent way of capturing the state of an org’s codebase through each release. If you do not have a version control system in place, having a backup copy of the existing production environment allows you to swiftly roll back to the previous system. You can do this through a sandbox refresh to a version prior to your Salesforce deployment in the event of a critical issue. Additionally, schedule weekly Organization Data Exports to ensure you back up all of your Org data on a consistent basis.
Set up a Standby Team
While you certainly want to feel confident that your deployment will go off without a hitch, it’s invaluable to have resources readily available to handle any reported issues. To take things a step further, it is even more beneficial to proactively discuss a triaging plan with your team – such that you know precisely who would handle different types of issues.
Establish a Formal Go/No go Plan Prior to the Release
When initially completing a deployment plan, one of the most crucial dates to set is when to make a formal “go/no go” decision with the team. Assess and determine this in a meeting that includes all parties involved in the deployment. Prior to this meeting, it’s imperative to outline all facets you should take into consideration. Make sure to separate the truly critical components from areas you can refine beyond the designated “go/no go” date, or potentially after deployment.
Other Salesforce Deployment Considerations
There are also a few additional steps that are important to consider. You’ll want to develop some comprehensive communication and distribute it to the user base, detailing the new functionality. It’s also greatly beneficial to offer any training that may be necessary. Finally, you’ll want both your development team and business stakeholders to verify the changes in production upon deployment.
It is inevitable to feel some of the inherent anxiety that comes along with a large-scale Salesforce deployment. However, by following these best practices, your team should feel confident. You will have comprehensively covered all areas and are headed towards another successful release.
Launch Your Salesforce Deployment
If you have any questions, please leave a comment on this post or contact our Salesforce team today. We’re happy to share our insights on how to plan a successful and streamlined deployment.