Here at AutoRABIT, we gathered hundreds of responses from a user survey to the Salesforce DevOps community to help us better understand the problems faced when it comes time to deploy code updates.
Why It Matters: Salesforce deployments can be complicated and time consuming, leading to errors and faulty updates. Solving these issues increases data security and reliability across all DevOps projects.
To get a better understanding of our respondents’ deployment schedules, we asked them how many deployments they perform each week:
- 1-5 deployments: 14%
- 6-10 deployments: 35%
- 11-15 deployments: 28%
- 16-20 deployments: 14%
- More than 20 deployments: 9%
The respondents are split almost down the middle on who initiates the deployments in their DevOps approach. Fifty-four percent reported deployments being initiated by the developer, while 46% were initiated by the release team.
Now that we have a clearer view of the processes that inform these perspectives, let’s dig into the insights our respondents offered.
Most Common Challenges for Salesforce Deployments
Almost one-third of respondents reported code conflicts as their number one challenge, followed by almost a one-fourth of respondents listing data security/compliance as their main challenge. Performance, data migration, and testing/quality assurance follow behind the two most frequent issues.
Managing Dependencies Between Different Components of a Salesforce Application During Deployment
The responses we received for managing dependencies were incredibly varied. The most frequent response was to utilize metadata API. XML files, automated deployment management tools, and change sets were all mentioned as well.
Maintaining a high-level view of the aspects of the release will help ensure nothing is lost during deployment. As one respondent said, “I know all dependent components related to my code and include all those in my package for successful validation.”
Resolving Deployment Issues
Our respondents were almost uniform in their method of resolving issues that arise during the deployment process: they must first locate the source of the issue and then manually fix it.
This can be done with scanning tools or, in more manual pipelines, found through communicating with team members. According to one respondent, “We have to manually resolve it after talking with developers in the team.”
Managing the Complexity of Large-Scale Salesforce Deployments
Large deployments are notoriously difficult to complete in Salesforce. Many responses outline their approach to breaking up larger projects and only deploying individual components, dividing the deployment into chunks, and utilizing automated tools.
As with all complicated processes, a thoughtful approach is essential to a successful large-scale deployment. As one respondent said, “Proper planning and scoping of the deployment project is critical. This includes identifying the scope of the deployment, defining the success criteria, and setting realistic timelines and budgets.”
Amount and Adequacy of Testing Stages
Respondents reported anywhere from one to five layers of testing in their Salesforce deployment processes. Those who list fewer layers of testing said there aren’t enough to cover everything they’d like, while those on the higher end of the responses were satisfied with their testing results.
Here are some of the most frequently listed types of testing used:
- User Acceptance Testing (UAT)
- Regression Testing
- Integration Testing
- Unit Testing
Most Frequent Post-Deployment Challenges
As with many aspects of the Salesforce DevOps pipeline, manual steps challenge users to complete a deployment quickly and accurately. Changes in higher orgs require monitoring during refreshes, changing dependent IDs, missing configurations or permissions, and custom settings/object record creation were all frequently listed as issues.
The consensus? “There are too many manual steps that we need to carry out after the deployments.”
Hotfix Process
Fixing issues within a DevOps project involves finding the error, fixing it, testing it, and deploying it. The way our respondents approach this depends on the severity of the issue. Many reported fixing the issue in preproduction before shipping it to production. However, some even reported fixing issues directly in production before testing for proper stability.
“Some hot fixes are directly done in production if they are minor and then we rely on refresh activity. Some are done in the dev org and push to higher orgs until production.”
Manual Pre/Post-Deployment Steps
We wanted to learn more about the manual steps that give Salesforce DevOps teams problems. We received lengthy lists of issues, including:
- Profile changes
- Queues
- Managed package changes
- Standard Salesforce object-related changes
- Flow activation
- Permission set assignment
- Omniscript deactivation and activation
One user summed it up like this: “Almost every deployment has manual post deployment that must be done.”
Percentage of Successful Deployments
While only about 7% of respondents said their deployments were successful less than half the time, the majority maxed out at 75% of successful deployments.
Here’s the full breakdown of the responses:
Key Metrics for a Successful Salesforce Release Pipeline
Taking the time to reflect on the successes and trouble spots of a release informs how a DevOps team can improve in the future. Our respondents reported a series of KPIs they use to measure the success of a release.
These include
- The amount of time taken to complete a release
- The size of the release
- Number of issues before the release compared to afterwards
- Change failure rate
Comparing these metrics across multiple deployments will show areas for potential improvements.
Optimizing Salesforce Deployments
A main theme throughout these difficulties and solutions is the need to reduce manual processes, analyze existing methods for improvements, and conduct mindful planning at a procedural and structural level.
Salesforce deployments can be cumbersome, complicated, and time consuming. Utilizing automated DevOps tools to streamline manual processes reduces errors and expands the capacity of testing capabilities.
Next Step…
We know Salesforce deployments can be difficult. Maximizing productivity is a main concern—but not the only one. Prioritizing data security is becoming more of a necessity every day.
Check out our blog, “10 Tips to Secure Your Salesforce Deployment Process,” for helpful tips on launching safe applications and updates.