Deployment is a critical phase of the project after completion of the User Acceptance Testing in the sandbox environment since it affects the live environment and also determines the overall success of the project.
Here are some points which can help manage the deployment and mitigate the risks involved in deployment
Ensure before the deployment you have prepared the deployment schedule and have a sign-off on availability of various stakeholders involved in the deployment. Never do the deployments on Friday, we encourage the major deployments to be done on Monday so that you have a full week to monitor the new changes in production. It is important that the deployment schedule is prepared while in UAT phase and not have the deployment activities put till the last moment. It is suggested not to have new requirements/enhancements implemented after the completion of User Acceptance testing which might affect the deployment schedule.
During the preparation phase of the deployment few points to be considered pre-deployment are
- Creating Users in production
- Setting up Org wide defaults for the standard objects
- Installing any 3rd party AppExchange apps
- Salesforce configurations like setting default workflow user, lead owner, Case owner, enabling Chatter, Email deliverability, Salesforce to Outlook configurations, Enabling multiple currencies, configuring IP ranges for the organisation etc
- Creating and Publishing communities
- Taking backup of the existing data
- Ensure the code coverage is more than 75%
- Prepare a checklist of all the items to be deployed
- Prepare change management document
- Turn off the email notifications sent automatically via workflows
Apart from these points the most important process is to create the change sets with all the components involved in deployment and get the change set verified in production. If the deployment activities are well planned ahead of time, it gives the team sufficient time to verify all the components of change set before actual deployment.
Send out a notification to all the users suggesting down time before the actual deployment, it is necessary that the users are communicated beforehand of the downtime along with the new changes/enhancements they might expect when they login post deployment.
For the actual deployment, if the change sets are already validated in production as part of preparation process, it just needs to be deployed. In some complex org, the deployment may take few hours since all the test classes will run against the new enhancements. Please have sufficient buffer time for the actual deployment. We at Arxxus preferably do the deployment after business hours i.e. after 6 pm AEST.
Post the actual deployment, we would do the sanity testing in production to ensure if everything is working according to the requirement and in line with the user stories provided during the requirements. The post deployment sanity checks helps in identifying if there was any miss during the deployment.
The users should be notified after the sanity testing so that they can start using the live environment. The system should be monitored for a week before getting sign off on the deployment.
There is no foolproof process to follow the deployment process, but following these steps will definitely reduce the risks assoicated with the deployment and will ensure a successful deployment.