Release Management is the process followed to release new features into a system. We’ll focus specifically on release management for Salesforce in this guide.
Releasing new features into Production can be a time-consuming and stressful process, and the last thing you want to do is release something into Production which can cause frustrating bugs, downtime for users – or something worse! I’ll be covering 5 ways you can make that process smoother – first, let’s look at where this fits into the change lifecycle, and why it’s so challenging.
What is Release Management?
Release management is a continuous process that has specific stages which should be followed for a successful release each and every time. Each step is important to ensure a stable release of new features, and each should be fully completed before moving onto the next stage. Today we’ll focus on two very important stages: Test and Release.
Why Salesforce Release Management is Challenging
The release management process applies to both metadata and reference data deployments. While these concepts are the same, the execution differs slightly. For metadata releases, such as new fields, page layouts & process builders, Salesforce has Change Sets built in to move these components.
What Salesforce doesn’t have is a built-in way to quickly and easily move data, particularly reference data between environments. This makes seeding a sandbox tedious, but the much larger problem is as a “clicks, not code” platform, many crucial settings in Salesforce apps are configured with reference data (the clicks are saved as records that Change Sets can’t move). For example, if you use Salesforce CPQ, Salesforce Advanced Approvals, FinancialForce, Field Service, Conga, or any other third party application which utilises reference data as part of its setup, you will be painstakingly moving data between environments using CSV files and VLOOKUPs to remap objects in each of your orgs.
As you can imagine, using CSV files is an extremely time-consuming and error-prone way to migrate reference data. This method also means there is no backup of your reference data stored anywhere. Imagine one VLOOKUP returns the wrong data, it could be the difference between releasing a new feature on time and on budget, to being delayed by hours or days.
If your Salesforce environment contains applications which utilize reference data, it is worth investing in a release management automation tool to help streamline your releases.
How to Improve Salesforce Release Management
1. Planning your releases
Planning your releases is the cornerstone of Release Management – and agile development overall. This is a crucial step to get right whether you are deploying a simple Process Builder, or a tricky Salesforce CPQ Product Rule.
Having conflicts in your releases can lead to deployment delays or bugs in Production if they are not caught during testing; therefore, it is key to plan the features in each release in advance, and understand the components being developed.
Once a release is planned, the components can be developed and unit tested in a development environment before starting their journey into Production.
2. Version Control Systems
Version Control Systems (VCS) are extremely useful during the journey of a new feature from a Sandbox to Production. They work like a middle man between your Sandbox & Production. This means the VCS is the single source of truth, rather than your Production org holding your master data. This is important because it will be easy to roll back changes to a previous version, should something go awry with your release.
The benefits of using Version Control Systems are:
- Teams can iterate faster and collaborate with each other (without overwriting each other’s work),
- You can provide a full audit trail of changes made to your Production environment, and also maintain SOX compliance.
- The VCS identifies and alerts you to any possible reference data conflicts which would normally be identified through rigorous regression testing in each environment to which you deploy. Having an automated solution for this ensures you are confident in your reference data before deploying to Production.
3. Seeding Sandboxes & Rollbacks
When working with an app that utilises reference data, such as Salesforce CPQ or Field Service, reference data is at the core of your development. Being able to have the most updated data in your sandbox when beginning a new build is key to a successful release.
Using a tool which integrates with a VCS means you’re no longer reliant on Production as your master source of data; you can pull from branches in the VCS to seed your sandbox. This is key to always ensure you are working with the most updated reference data because there may be changes in the VCS that are not yet in Production.
Above: VCS in action in AppOps by Prodly.
Rollbacks are another element of release management which is crucial in the event a change is released into Production which suddenly causes issues that were not identified during the testing cycle. Most DevOps tools allow you to rollback changes to a previous release fairly easily, but if you’re deploying reference data between environments using CSV files, there is no possibility to restore your data unless you have it backed up separately.
Instead, an admin will spend hours trying to locate a miskeyed reference across numerous files, resulting in possible crucial delays to a planned go-live, or even downtime in an org if, for example, the mistake is resulting in quotes not being able to be created.
4. Deployment Templates
When deploying reference data, there are usually multiple objects where you need to extract the data from and upload it to in the destination environment.
Example: deploying a single Salesforce CPQ Product Rule will require information from, at bare minimum, three objects: the Product Rule, Error Condition, and the Product Action object. That doesn’t even include any Summary Variables or Configuration Attributes which may be used in the Error Condition.
Having a tool which has deployment templates already setup can make reference data deployments quick and easy. Deployment templates are set up with the dependencies in mind so that records are created in the correct order.
Example continued: an Error Condition referencing a Summary Variable needs the Summary Variable record to exist before it can be referenced in the Error Condition record. This is just one example, however, multiply this across numerous product & price rules and your admin will have their work cut out for them!
Above: Prodly AppOps Release is one tool which comes setup with reference data deployment templates for Salesforce CPQ, Field Service & and many other apps.
Testing is the final stage before releasing new features into Production. While admins and developers will test new features specifically before pushing them through the deployment cycle, regression testing in a sandbox before releasing to production is key to any deployment.
Example: Deploying a new Salesforce CPQ Price Rule might seem simple, but having to manually test, and then verify the system’s calculations across multiple quote, amendment, renewal, and contract subscription/asset scenarios, is error-prone and time-consuming. This can become even more tedious if your org utilises the month+day calculation for pricing, which requires multiple manual pricing calculations by an admin (and are almost always off by a few pennies due to rounding differences).
How can an admin guarantee that what they’ve built is working if the expected result is hit and miss?
Investing in a tool which automates regression testing can remove the guesswork and enable admins to spend their time on other valuable tasks.
The benefits of incorporating automated testing tools into your release management process are:
- Tests run at scheduled intervals and alert you to any issues
- Having the ability to create individual test cases with expected outcomes, and add them to a test plan which can be run all at once. This removes the need to test individual test cases one by one,
- Dig into the granular steps to see at what point a test case failed, allowing admins to fix issues quickly and confidently,
- Re-run test plans again when fixing bugs, to ensure fixes are backwards compatible.
Release management is critical to master to ensure your Salesforce environment is always functioning in tip-top shape.
By including tools such as Prodly AppOps Release & AppOps Test into your internal release management process, Salesforce admins have peace of mind that their work has been thoroughly tested & is going to be successful when released into Production.